Fix some more issues

This commit is contained in:
2025-07-10 14:01:19 +02:00
parent c9b4e6ab45
commit 7e61db5e58
5 changed files with 24 additions and 23 deletions
@@ -22,10 +22,9 @@ package de.steamwar.bausystem.features.region.items;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.bausystem.region.Color;
import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.region.flags.Flag;
import de.steamwar.bausystem.region.flags.ColorMode;
import de.steamwar.bausystem.region.flags.Flag;
import de.steamwar.inventory.SWItem;
import de.steamwar.inventory.SWListInv;
import de.steamwar.linkage.Linked;
@@ -45,7 +44,7 @@ public class ColorBauGuiItem extends BauGuiItem {
super(2);
}
private static Material mapColor(Color color) {
private static Material mapColor(ColorMode color) {
switch (color) {
case RED:
return Material.RED_CONCRETE;
@@ -85,17 +84,17 @@ public class ColorBauGuiItem extends BauGuiItem {
@Override
public ItemStack getItem(Player player) {
Region region = Region.getRegion(player.getLocation());
ColorMode mode = region.getPlain(Flag.COLOR, ColorMode.class);
return new SWItem(mapColor(mode.getColor()), BauSystem.MESSAGE.parse("REGION_ITEM_COLOR", player, BauSystem.MESSAGE.parse(mode.getChatValue(), player))).getItemStack();
ColorMode mode = region.getFlags().get(Flag.COLOR).orElse(ColorMode.PINK);
return new SWItem(mapColor(mode), BauSystem.MESSAGE.parse("REGION_ITEM_COLOR", player, BauSystem.MESSAGE.parse(mode.getChatValue(), player))).getItemStack();
}
@Override
public boolean click(ClickType click, Player p) {
p.closeInventory();
ColorMode current = Region.getRegion(p.getLocation()).getPlain(Flag.COLOR, ColorMode.class);
ColorMode current = Region.getRegion(p.getLocation()).getFlags().get(Flag.COLOR).orElse(ColorMode.PINK);
List<SWListInv.SWListEntry<ColorMode>> items = new ArrayList<>();
for (ColorMode value : ColorMode.values()) {
items.add(new SWListInv.SWListEntry<>(new SWItem(mapColor(value.getColor()), (byte) 0, "§f" + BauSystem.MESSAGE.parse(value.getChatValue(), p), Collections.emptyList(), value == current, clickType -> {
items.add(new SWListInv.SWListEntry<>(new SWItem(mapColor(value), (byte) 0, "§f" + BauSystem.MESSAGE.parse(value.getChatValue(), p), Collections.emptyList(), value == current, clickType -> {
}), value));
}
SWListInv<ColorMode> inv = new SWListInv<>(p, BauSystem.MESSAGE.parse("REGION_ITEM_COLOR_CHOOSE", p), items, (clickType, colorMode) -> {
@@ -23,7 +23,6 @@ import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.SWUtils;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.bausystem.region.GlobalRegion;
import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.utils.ScoreboardElement;
import de.steamwar.bausystem.utils.TickEndEvent;
@@ -85,14 +84,14 @@ public class TPSSystem implements Listener {
private void bossbar() {
if ((TickManager.impl.isStepping() || TickManager.impl.isSprinting()) && TickManager.impl.getRemainingTicks() > 0) {
Bukkit.getOnlinePlayers().forEach(player -> {
BauSystemBossbar bossbar = BossBarService.instance.get(player, GlobalRegion.getInstance(), "TickStep");
BauSystemBossbar bossbar = BossBarService.instance.get(player, Region.getGlobalRegion(), "TickStep");
bossbar.setColor(BarColor.YELLOW);
bossbar.setTitle(BauSystem.MESSAGE.parse("TICK_BOSSBAR", player, TickManager.impl.getDoneTicks(), TickManager.impl.getTotalTicks()));
bossbar.setProgress(TickManager.impl.getDoneTicks() / (double) TickManager.impl.getTotalTicks());
});
} else {
Bukkit.getOnlinePlayers().forEach(player -> {
BossBarService.instance.remove(player, GlobalRegion.getInstance(), "TickStep");
BossBarService.instance.remove(player, Region.getGlobalRegion(), "TickStep");
});
}
}
@@ -28,7 +28,7 @@ import com.sk89q.worldedit.util.formatting.text.TextComponent;
import com.sk89q.worldedit.util.formatting.text.TranslatableComponent;
import de.steamwar.bausystem.features.world.WorldEditListener;
import de.steamwar.bausystem.features.worldedit.utils.SpecialReplace;
import de.steamwar.bausystem.region.Color;
import de.steamwar.bausystem.region.flags.ColorMode;
import de.steamwar.bausystem.shared.Pair;
import de.steamwar.bausystem.utils.WorldEditUtils;
import de.steamwar.command.PreviousArguments;
@@ -63,7 +63,7 @@ public class ColorReplaceCommand extends SWCommand {
@Register(description = "COLORREPLACE_HELP")
@SneakyThrows
public void genericCommand(@Validator Player player, Pair<Integer, Color> from, Color to) {
public void genericCommand(@Validator Player player, Pair<Integer, ColorMode> from, ColorMode to) {
if (from.getValue() == to) {
BukkitAdapter.adapt(player).printInfo(TranslatableComponent.of("worldedit.replace.replaced", new Component[]{TextComponent.of(0)}));
return;
@@ -89,23 +89,23 @@ public class ColorReplaceCommand extends SWCommand {
}
@ClassMapper(value = Pair.class, local = true)
public TypeMapper<Pair<Integer, Color>> typeMapper() {
return new TypeMapper<Pair<Integer, Color>>() {
public TypeMapper<Pair<Integer, ColorMode>> typeMapper() {
return new TypeMapper<Pair<Integer, ColorMode>>() {
@Override
public Pair<Integer, Color> map(CommandSender commandSender, PreviousArguments previousArguments, String s) {
public Pair<Integer, ColorMode> map(CommandSender commandSender, PreviousArguments previousArguments, String s) {
if (s.contains("%")) {
String[] split = s.split("%");
if (split.length != 2) {
return null;
}
Color color = Color.valueOf(split[1].toUpperCase());
ColorMode color = ColorMode.valueOf(split[1].toUpperCase());
try {
return new Pair<>(Integer.parseInt(split[0]), color);
} catch (NumberFormatException e) {
return null;
}
}
return new Pair<>(100, Color.valueOf(s.toUpperCase()));
return new Pair<>(100, ColorMode.valueOf(s.toUpperCase()));
}
@Override
@@ -113,12 +113,12 @@ public class ColorReplaceCommand extends SWCommand {
if (s.matches("[0-9].*")) {
if (s.contains("%")) {
String sub = s.substring(0, s.indexOf("%") + 1);
return Arrays.stream(Color.values()).map(Color::name).map(t -> sub + t.toLowerCase()).collect(Collectors.toSet());
return Arrays.stream(ColorMode.values()).map(ColorMode::name).map(t -> sub + t.toLowerCase()).collect(Collectors.toSet());
} else {
return Arrays.asList(s);
}
} else {
return Arrays.stream(Color.values()).map(Color::name).map(String::toLowerCase).collect(Collectors.toSet());
return Arrays.stream(ColorMode.values()).map(ColorMode::name).map(String::toLowerCase).collect(Collectors.toSet());
}
}
};
@@ -34,6 +34,9 @@ public interface Region {
static Region getRegion(Location location) {
return RegionSystem.INSTANCE.get(location);
}
static Region getGlobalRegion() {
return RegionSystem.INSTANCE.getGlobalRegion();
}
UUID getID();
@@ -26,8 +26,8 @@ import com.sk89q.worldedit.math.BlockVector3;
import com.sk89q.worldedit.world.block.BaseBlock;
import com.sk89q.worldedit.world.block.BlockType;
import com.sk89q.worldedit.world.block.BlockTypes;
import de.steamwar.bausystem.region.Color;
import de.steamwar.bausystem.region.Point;
import de.steamwar.bausystem.region.flags.ColorMode;
import de.steamwar.sql.SchematicData;
import de.steamwar.sql.SchematicNode;
import lombok.Getter;
@@ -102,8 +102,8 @@ public class PasteBuilder {
return this;
}
public PasteBuilder color(Color color) {
if (color == Color.PINK) return this;
public PasteBuilder color(ColorMode color) {
if (color == ColorMode.PINK) return this;
Map<String, BaseBlock> blockCache = new HashMap<>();
return map((clipboard, blockVector3) -> {
@@ -122,7 +122,7 @@ public class PasteBuilder {
}
/**
* Can only be used before {@link #color(Color)}.
* Can only be used before {@link #color(ColorMode)}.
*/
public PasteBuilder onlyColors(boolean onlyColors) {
if (!onlyColors) return this;