Fix AttributeRemoveCommand showing whole attribute instead of name
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
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:
Ursprung
f2978a16c0
Commit
bf2de904dc
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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('&', '§');
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -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()) {
|
||||||
|
@ -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,
|
||||||
|
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren