SteamWar/BauSystem2.0
Archiviert
12
0

Fix AttributeRemoveCommand showing whole attribute instead of name
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful

Add AutostartListener Chest capability
Update InfoCommand coloring
Add DesignEndStone recalc
Fix KillcheckerVisualizer area for double kills

Signed-off-by: yoyosource <yoyosource@nidido.de>
Dieser Commit ist enthalten in:
yoyosource 2023-09-16 22:55:14 +02:00
Ursprung f2978a16c0
Commit bf2de904dc
8 geänderte Dateien mit 89 neuen und 27 gelöschten Zeilen

Datei anzeigen

@ -140,22 +140,21 @@ BAU_INFO_ITEM_NAME = §eBau-Management
## This is used in BauInfoBauGuiItem.java ## This is used in BauInfoBauGuiItem.java
BAU_INFO_ITEM_LORE_TNT = §7TNT§8: §e{0} BAU_INFO_ITEM_LORE_TNT = §7TNT§8: §e{0}
BAU_INFO_ITEM_LORE_FREEZE = §7Freeze§8: §e{0} BAU_INFO_ITEM_LORE_FREEZE = §7Freeze§8: §e{0}
BAU_INFO_ITEM_LORE_DAMAGE=
BAU_INFO_ITEM_LORE_FIRE = §7Fire§8: §e{0} BAU_INFO_ITEM_LORE_FIRE = §7Fire§8: §e{0}
BAU_INFO_ITEM_LORE_COLOR = §7Color§8: §e{0} BAU_INFO_ITEM_LORE_COLOR = §7Color§8: §e{0}
BAU_INFO_ITEM_LORE_PROTECT = §7Protect§8: §e{0} BAU_INFO_ITEM_LORE_PROTECT = §7Protect§8: §e{0}
BAU_INFO_ITEM_LORE_ITEMS = §7Items§8: §e{0} BAU_INFO_ITEM_LORE_ITEMS = §7Items§8: §e{0}
BAU_INFO_COMMAND_HELP = §8/§ebauinfo §8- §7Information regarding this build server BAU_INFO_COMMAND_HELP = §8/§ebauinfo §8- §7Information regarding this build server
BAU_INFO_COMMAND_OWNER = §7Owner: §e{0} BAU_INFO_COMMAND_OWNER = §7Owner§8: §e{0}
BAU_INFO_COMMAND_MEMBER = §7Member: §e BAU_INFO_COMMAND_MEMBER = §7Member §8[§7{0}§8]§8: §e
BAU_INFO_MEMBER_INFO = §e{0}§8[{1}§8,{2}§8] §8 BAU_INFO_MEMBER_INFO = §e{0}§8[{1}§8,{2}§8] §8
BAU_INFO_MEMBER_WE_ALLOW = §aWE BAU_INFO_MEMBER_WE_ALLOW = §aWE
BAU_INFO_MEMBER_WE_DISALLOW = §cWE BAU_INFO_MEMBER_WE_DISALLOW = §cWE
BAU_INFO_MEMBER_WORLD_ALLOW = §aW BAU_INFO_MEMBER_WORLD_ALLOW = §aW
BAU_INFO_MEMBER_WORLD_DISALLOW = §cW BAU_INFO_MEMBER_WORLD_DISALLOW = §cW
BAU_INFO_COMMAND_FLAG = §e{0} §8: §7{1} BAU_INFO_COMMAND_FLAG = §7{0}§8: §7{1}
BAU_INFO_COMMAND_TPS = TPS:§e BAU_INFO_COMMAND_TPS = §7TPS§8:§e
# Countingwand # Countingwand
COUNTINGWAND_COMMAND_HELP = §8/§ecountingwand §8- §7Receive a CountingWand COUNTINGWAND_COMMAND_HELP = §8/§ecountingwand §8- §7Receive a CountingWand
@ -168,10 +167,10 @@ COUNTINGWAND_MESSAGE_VOLUME = §e{0}
COUNTINGWAND_MESSAGE_DIMENSION = §e{0}§8, §e{1}§8, §e{2} COUNTINGWAND_MESSAGE_DIMENSION = §e{0}§8, §e{1}§8, §e{2}
# Design Endstone # Design Endstone
DESIGN_ENDSTONE_COMMAND_HELP = §8/§edesign endstone §8- §7Show where Endstone is DESIGN_ENDSTONE_COMMAND_HELP = §8/§edesignendstone §8- §7Highlight endstone in design
DESIGN_ENDSTONE_REGION_ERROR = §cThis region has no build area DESIGN_ENDSTONE_REGION_ERROR = §cThis region has no build area
DESIGN_ENDSTONE_ENABLE = §aEndstone is activated DESIGN_ENDSTONE_ENABLE = §aEndstone is highlighted
DESIGN_ENDSTONE_DISABLE = §cEndstone is deactivated DESIGN_ENDSTONE_DISABLE = §cEndstone is no longer hightlighted
# Detonator # Detonator
DETONATOR_LOC_REMOVE = §e{0} removed DETONATOR_LOC_REMOVE = §e{0} removed
@ -202,7 +201,7 @@ DETONATOR_INVALID_POINT=§cOne point could not be activated
DETONATOR_INVALID_POINTS=§c{0} points could not be activated DETONATOR_INVALID_POINTS=§c{0} points could not be activated
DETONATOR_INVALID_BLOCK=§eThe block could not be addded DETONATOR_INVALID_BLOCK=§eThe block could not be addded
# Hotbar # Hotbar
HOTBAR_HELP_GENERIC=§7Saves a hotbar. While joining a bau with an empty inventory this hotbar will be used HOTBAR_HELP_GENERIC=§7Saves a hotbar. While joining a bau with an empty inventory this hotbar will be used.
HOTBAR_HELP_SAVE=§8/§ehotbar save §8-§7 Saves your current hotbar HOTBAR_HELP_SAVE=§8/§ehotbar save §8-§7 Saves your current hotbar
HOTBAR_HELP_LOAD=§8/§ehotbar load §8-§7 Loads the saved hotbar HOTBAR_HELP_LOAD=§8/§ehotbar load §8-§7 Loads the saved hotbar
HOTBAR_HELP_SHOW=§8/§ehotbar show §8-§7 Displays the saved hotbar HOTBAR_HELP_SHOW=§8/§ehotbar show §8-§7 Displays the saved hotbar

Datei anzeigen

@ -144,15 +144,15 @@ BAU_INFO_ITEM_LORE_COLOR = §7Farbe§8: §e{0}
BAU_INFO_ITEM_LORE_PROTECT = §7Protect§8: §e{0} BAU_INFO_ITEM_LORE_PROTECT = §7Protect§8: §e{0}
BAU_INFO_COMMAND_HELP = §8/§ebauinfo §8- §7Gibt Informationen über den Bau BAU_INFO_COMMAND_HELP = §8/§ebauinfo §8- §7Gibt Informationen über den Bau
BAU_INFO_COMMAND_OWNER = §7Besitzer: §e{0} BAU_INFO_COMMAND_OWNER = §7Besitzer§8: §e{0}
BAU_INFO_COMMAND_MEMBER = §7Mitglieder: §e BAU_INFO_COMMAND_MEMBER = §7Mitglieder §8[§7{0}§8]§8: §e
BAU_INFO_MEMBER_INFO = §e{0}§8[{1}§8,{2}§8] §8 BAU_INFO_MEMBER_INFO = §e{0}§8[{1}§8,{2}§8] §8
BAU_INFO_MEMBER_WE_ALLOW = §aWE BAU_INFO_MEMBER_WE_ALLOW = §aWE
BAU_INFO_MEMBER_WE_DISALLOW = §cWE BAU_INFO_MEMBER_WE_DISALLOW = §cWE
BAU_INFO_MEMBER_WORLD_ALLOW = §aW BAU_INFO_MEMBER_WORLD_ALLOW = §aW
BAU_INFO_MEMBER_WORLD_DISALLOW = §cW BAU_INFO_MEMBER_WORLD_DISALLOW = §cW
BAU_INFO_COMMAND_FLAG = §e{0} §8: §7{1} BAU_INFO_COMMAND_FLAG = §7{0}§8: §7{1}
BAU_INFO_COMMAND_TPS = TPS:§e BAU_INFO_COMMAND_TPS = §7TPS§8:§e
# Countingwand # Countingwand
COUNTINGWAND_COMMAND_HELP = §8/§ecountingwand §8- §7Gibt dir ein CountingWand COUNTINGWAND_COMMAND_HELP = §8/§ecountingwand §8- §7Gibt dir ein CountingWand
@ -165,10 +165,10 @@ COUNTINGWAND_MESSAGE_VOLUME = §e{0}
COUNTINGWAND_MESSAGE_DIMENSION = §e{0}§8, §e{1}§8, §e{2} COUNTINGWAND_MESSAGE_DIMENSION = §e{0}§8, §e{1}§8, §e{2}
# Design Endstone # Design Endstone
DESIGN_ENDSTONE_COMMAND_HELP = §8/§edesign endstone §8- §7Zeige wo Endstone ist DESIGN_ENDSTONE_COMMAND_HELP = §8/§edesign endstone §8- §7Zeige End Stone im Design
DESIGN_ENDSTONE_REGION_ERROR = §cDiese Region hat keinen Baubereich DESIGN_ENDSTONE_REGION_ERROR = §cDiese Region hat keinen Baubereich
DESIGN_ENDSTONE_ENABLE = §aEndstone ist aktiviert DESIGN_ENDSTONE_ENABLE = §aEndstone im Design ist angezeigt
DESIGN_ENDSTONE_DISABLE = §cEndstone ist deaktiviert DESIGN_ENDSTONE_DISABLE = §cEndstone im Design ist versteckt
# Detonator # Detonator
DETONATOR_LOC_REMOVE = §e{0} entfernt DETONATOR_LOC_REMOVE = §e{0} entfernt

Datei anzeigen

@ -73,7 +73,7 @@ public class AttributeRemoveCommand extends SWCommand {
BauSystem.MESSAGE.send("ATTRIBUTE_REMOVE_NOT_FOUND", player); BauSystem.MESSAGE.send("ATTRIBUTE_REMOVE_NOT_FOUND", player);
return; return;
} }
lore.removeIf(s -> s.equals("§8-§7 " + attribute)); lore.removeIf(s -> s.startsWith("§8-§7 " + attribute + "§8:"));
if (lore.size() == 1) { if (lore.size() == 1) {
itemStack.setItemMeta(null); itemStack.setItemMeta(null);
} else { } else {
@ -99,15 +99,13 @@ public class AttributeRemoveCommand extends SWCommand {
return lore.stream() return lore.stream()
.skip(1) .skip(1)
.map(s1 -> s1.substring(6)) .map(s1 -> s1.substring(6))
.map(s1 -> s1.replace('§', '&')) .map(s1 -> s1.substring(0, s1.indexOf("§8:")))
.map(s1 -> s1.replace(' ', '_'))
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
@Override @Override
public String map(CommandSender commandSender, PreviousArguments previousArguments, String s) { public String map(CommandSender commandSender, PreviousArguments previousArguments, String s) {
return s.replace('_', ' ') return s;
.replace('&', '§');
} }
}; };
} }

Datei anzeigen

@ -30,10 +30,12 @@ import de.steamwar.inventory.SWItem;
import de.steamwar.linkage.Linked; import de.steamwar.linkage.Linked;
import lombok.Getter; import lombok.Getter;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.data.type.Chest;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -70,9 +72,28 @@ public class AutostartListener implements Listener {
if (event.getClickedBlock() == null) { if (event.getClickedBlock() == null) {
return; return;
} }
if (event.getClickedBlock().getBlockData() instanceof Chest) {
return;
}
activate(event.getPlayer()); activate(event.getPlayer());
} }
@EventHandler
public void onInventoryClose(InventoryCloseEvent event) {
if (!(event.getPlayer() instanceof Player)) {
return;
}
if (!ItemUtils.isItem(event.getPlayer().getInventory().getItemInMainHand(), "autostart")) {
return;
}
if (event.getInventory().getLocation() == null) {
return;
}
if (event.getInventory().getLocation().getBlock().getBlockData() instanceof Chest) {
activate((Player) event.getPlayer());
}
}
public void activate(Player player) { public void activate(Player player) {
Region region = Region.getRegion(player.getLocation()); Region region = Region.getRegion(player.getLocation());
if (region.isGlobal()) { if (region.isGlobal()) {

Datei anzeigen

@ -52,7 +52,7 @@ public class InfoCommand extends SWCommand {
List<BauweltMember> members = BauweltMember.getMembers(bauServer.getOwnerID()); List<BauweltMember> members = BauweltMember.getMembers(bauServer.getOwnerID());
StringBuilder membermessage = new StringBuilder(); StringBuilder membermessage = new StringBuilder();
membermessage.append(BauSystem.MESSAGE.parsePrefixed("BAU_INFO_COMMAND_MEMBER", p)); membermessage.append(BauSystem.MESSAGE.parsePrefixed("BAU_INFO_COMMAND_MEMBER", p, members.size()));
for (BauweltMember member : members) { for (BauweltMember member : members) {
membermessage.append(BauSystem.MESSAGE.parse("BAU_INFO_MEMBER_INFO", p, membermessage.append(BauSystem.MESSAGE.parse("BAU_INFO_MEMBER_INFO", p,

Datei anzeigen

@ -55,7 +55,7 @@ public class DesignEndStone {
this.maxZ = region.getMaxPointBuild().getZ(); this.maxZ = region.getMaxPointBuild().getZ();
} }
private void calc() { public void calc() {
entities.forEach(REntity::die); entities.forEach(REntity::die);
entities.clear(); entities.clear();
locations.clear(); locations.clear();
@ -98,12 +98,17 @@ public class DesignEndStone {
if (players.contains(player)) { if (players.contains(player)) {
players.remove(player); players.remove(player);
entityServer.removePlayer(player); entityServer.removePlayer(player);
BauSystem.MESSAGE.send("DESIGN_ENDSTONE_DISABLE", player, ChatMessageType.ACTION_BAR); BauSystem.MESSAGE.sendPrefixless("DESIGN_ENDSTONE_DISABLE", player, ChatMessageType.ACTION_BAR);
} else { } else {
players.add(player); players.add(player);
entityServer.addPlayer(player); entityServer.addPlayer(player);
calc(); calc();
BauSystem.MESSAGE.send("DESIGN_ENDSTONE_ENABLE", player, ChatMessageType.ACTION_BAR); BauSystem.MESSAGE.sendPrefixless("DESIGN_ENDSTONE_ENABLE", player, ChatMessageType.ACTION_BAR);
} }
} }
public boolean removePlayer(Player player) {
players.remove(player);
return players.isEmpty();
}
} }

Datei anzeigen

@ -24,13 +24,19 @@ import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.region.utils.RegionType; import de.steamwar.bausystem.region.utils.RegionType;
import de.steamwar.command.SWCommand; import de.steamwar.command.SWCommand;
import de.steamwar.linkage.Linked; import de.steamwar.linkage.Linked;
import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@Linked @Linked
public class DesignEndStoneCommand extends SWCommand { public class DesignEndStoneCommand extends SWCommand implements Listener {
public DesignEndStoneCommand() { public DesignEndStoneCommand() {
super("designendstone"); super("designendstone");
@ -47,4 +53,37 @@ public class DesignEndStoneCommand extends SWCommand {
} }
designEndStoneMap.computeIfAbsent(region, DesignEndStone::new).toggle(player); designEndStoneMap.computeIfAbsent(region, DesignEndStone::new).toggle(player);
} }
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event) {
Region region = Region.getRegion(event.getPlayer().getLocation());
DesignEndStone designEndStone = designEndStoneMap.get(region);
if (designEndStone == null) {
return;
}
if (designEndStone.removePlayer(event.getPlayer())) {
designEndStoneMap.remove(region);
}
}
@EventHandler
public void onBlockPlace(BlockPlaceEvent event) {
update(event.getBlock().getLocation());
}
@EventHandler
public void onBlockBreak(BlockBreakEvent event) {
BauSystem.runTaskLater(BauSystem.getInstance(), () -> {
update(event.getBlock().getLocation());
}, 1);
}
private void update(Location location) {
Region region = Region.getRegion(location);
DesignEndStone designEndStone = designEndStoneMap.get(region);
if (designEndStone == null) {
return;
}
designEndStone.calc();
}
} }

Datei anzeigen

@ -48,7 +48,7 @@ public class KillcheckerVisualizer {
private static final Material[] MATERIALS = new Material[] {Material.YELLOW_STAINED_GLASS, Material.ORANGE_STAINED_GLASS, Material.RED_STAINED_GLASS, Material.PURPLE_STAINED_GLASS, Material.BLACK_STAINED_GLASS}; private static final Material[] MATERIALS = new Material[] {Material.YELLOW_STAINED_GLASS, Material.ORANGE_STAINED_GLASS, Material.RED_STAINED_GLASS, Material.PURPLE_STAINED_GLASS, Material.BLACK_STAINED_GLASS};
private static final World WORLD = Bukkit.getWorlds().get(0); private static final World WORLD = Bukkit.getWorlds().get(0);
private static final double SURROUND = 4; private static final double SURROUND = 4.5;
private final Point minPoint; private final Point minPoint;
private final Point maxPoint; private final Point maxPoint;