Added IteratorUtil
This commit is contained in:
parent
40d0950d22
commit
33e9e749a0
@ -9,18 +9,16 @@ import eu.mhsl.craftattack.spawn.appliances.countdown.command.ProjectStartResetC
|
|||||||
import eu.mhsl.craftattack.spawn.appliances.countdown.listener.PlayerInvincibleListener;
|
import eu.mhsl.craftattack.spawn.appliances.countdown.listener.PlayerInvincibleListener;
|
||||||
import eu.mhsl.craftattack.spawn.config.Configuration;
|
import eu.mhsl.craftattack.spawn.config.Configuration;
|
||||||
import eu.mhsl.craftattack.spawn.util.ComponentUtil;
|
import eu.mhsl.craftattack.spawn.util.ComponentUtil;
|
||||||
|
import eu.mhsl.craftattack.spawn.util.IteratorUtil;
|
||||||
import net.kyori.adventure.sound.Sound;
|
import net.kyori.adventure.sound.Sound;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
import org.bukkit.block.Block;
|
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Consumer;
|
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
import static java.util.Map.entry;
|
import static java.util.Map.entry;
|
||||||
|
|
||||||
@ -121,8 +119,8 @@ public class Countdown extends Appliance {
|
|||||||
public void projectStart() {
|
public void projectStart() {
|
||||||
setEnabled(false);
|
setEnabled(false);
|
||||||
|
|
||||||
worldIterator(World::getWorldBorder, worldBorder -> worldBorder.setSize(worldBorder.getMaxSize()));
|
IteratorUtil.worlds(World::getWorldBorder, worldBorder -> worldBorder.setSize(worldBorder.getMaxSize()));
|
||||||
worldIterator(world -> world, world -> setGamerules(gamerulesAfterStart, false));
|
IteratorUtil.worlds(world -> setGamerules(gamerulesAfterStart, false));
|
||||||
|
|
||||||
Bukkit.getOnlinePlayers().forEach(player -> {
|
Bukkit.getOnlinePlayers().forEach(player -> {
|
||||||
player.setFoodLevel(20);
|
player.setFoodLevel(20);
|
||||||
@ -151,23 +149,19 @@ public class Countdown extends Appliance {
|
|||||||
public void restoreBeforeStart() {
|
public void restoreBeforeStart() {
|
||||||
setEnabled(true);
|
setEnabled(true);
|
||||||
|
|
||||||
worldIterator(World::getWorldBorder, worldBorder -> {
|
IteratorUtil.worlds(World::getWorldBorder, worldBorder -> {
|
||||||
worldBorder.setSize(localConfig().getLong("worldborder-before"));
|
worldBorder.setSize(localConfig().getLong("worldborder-before"));
|
||||||
worldBorder.setWarningDistance(0);
|
worldBorder.setWarningDistance(0);
|
||||||
worldBorder.setDamageAmount(0);
|
worldBorder.setDamageAmount(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
worldIterator(world -> world, world -> setGamerules(gamerulesAfterStart, true));
|
IteratorUtil.worlds(world -> world, world -> setGamerules(gamerulesAfterStart, true));
|
||||||
|
|
||||||
glassLocation.getBlock().setType(defaultGlassColor);
|
glassLocation.getBlock().setType(defaultGlassColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setGamerules(Map<GameRule<Boolean>, Boolean> rules, boolean inverse) {
|
private void setGamerules(Map<GameRule<Boolean>, Boolean> rules, boolean inverse) {
|
||||||
rules.forEach((gameRule, value) -> worldIterator(world -> world, world -> world.setGameRule(gameRule, value ^ inverse)));
|
rules.forEach((gameRule, value) -> IteratorUtil.worlds(world -> world.setGameRule(gameRule, value ^ inverse)));
|
||||||
}
|
|
||||||
|
|
||||||
private <T> void worldIterator(Function<World, T> selector, Consumer<T> worldBorder) {
|
|
||||||
Bukkit.getWorlds().forEach(world -> worldBorder.accept(selector.apply(world)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isRunning() {
|
public boolean isRunning() {
|
||||||
|
@ -0,0 +1,22 @@
|
|||||||
|
package eu.mhsl.craftattack.spawn.util;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
public class IteratorUtil {
|
||||||
|
public static void worlds(Consumer<World> world) {
|
||||||
|
worlds(w -> w, world);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> void worlds(Function<World, T> selector, Consumer<T> selected) {
|
||||||
|
Bukkit.getWorlds().forEach(world -> selected.accept(selector.apply(world)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void onlinePlayers(Consumer<Player> player) {
|
||||||
|
Bukkit.getOnlinePlayers().forEach(player);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user