From b66328d636cb50f53fc04757693f94fbad05ab85 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Sun, 12 Mar 2023 21:08:08 +0100 Subject: [PATCH 1/7] Fix crash on gangwar start --- .../unicacityaddon/base/abstraction/UPlayerImpl.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/rettichlp/unicacityaddon/base/abstraction/UPlayerImpl.java b/src/main/java/com/rettichlp/unicacityaddon/base/abstraction/UPlayerImpl.java index e8c46acf5..55dd423fa 100644 --- a/src/main/java/com/rettichlp/unicacityaddon/base/abstraction/UPlayerImpl.java +++ b/src/main/java/com/rettichlp/unicacityaddon/base/abstraction/UPlayerImpl.java @@ -25,6 +25,7 @@ import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; +import java.util.List; import java.util.Map; import java.util.UUID; import java.util.stream.Collectors; @@ -228,13 +229,16 @@ public boolean isPrioritizedMember() { boolean hasAnyPlayerHigherRank = filteredPlayerMap.entrySet().stream() .anyMatch(stringIntegerEntry -> stringIntegerEntry.getValue() > getRank()); // has a higher rank than himself - boolean hasRankPriority = filteredPlayerMap.entrySet().stream() + List rankPlayerList = filteredPlayerMap.entrySet().stream() .filter(stringIntegerEntry -> stringIntegerEntry.getValue().equals(getRank())) .map(Map.Entry::getKey) .sorted() - .collect(Collectors.toList()) - .get(0) - .equals(getName()); + .collect(Collectors.toList()); + + boolean hasRankPriority = false; + if (!rankPlayerList.isEmpty()) { + hasRankPriority = rankPlayerList.get(0).equals(getName()); + } return !hasAnyPlayerHigherRank && hasRankPriority; } From 483ea64247643acec1fa18a984a41a005f5873ff Mon Sep 17 00:00:00 2001 From: rettichlp Date: Sun, 12 Mar 2023 21:09:40 +0100 Subject: [PATCH 2/7] Reverse order of revives in ReviveStatsCommand --- .../unicacityaddon/commands/api/ReviveStatsCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/rettichlp/unicacityaddon/commands/api/ReviveStatsCommand.java b/src/main/java/com/rettichlp/unicacityaddon/commands/api/ReviveStatsCommand.java index 9987aca07..c18bb9e92 100644 --- a/src/main/java/com/rettichlp/unicacityaddon/commands/api/ReviveStatsCommand.java +++ b/src/main/java/com/rettichlp/unicacityaddon/commands/api/ReviveStatsCommand.java @@ -145,7 +145,7 @@ public int compareTo(@Nonnull ICommand o) { private void sendList(List reviveList) { reviveList.stream() - .sorted(Comparator.comparing(Revive::getCurrentWeekReviveAmount)) + .sorted(Comparator.comparing(Revive::getCurrentWeekReviveAmount).reversed()) .forEach(revive -> { int currentWeekReviveAmount = revive.getCurrentWeekReviveAmount(); int lastWeekReviveAmount = revive.getLastWeekReviveAmount(); From e653c209f8ee6250e673b457407ecdd72309aa77 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Tue, 14 Mar 2023 20:25:05 +0100 Subject: [PATCH 3/7] Update revive stats message and command --- .../commands/api/ReviveStatsCommand.java | 232 ++++++++++++------ 1 file changed, 157 insertions(+), 75 deletions(-) diff --git a/src/main/java/com/rettichlp/unicacityaddon/commands/api/ReviveStatsCommand.java b/src/main/java/com/rettichlp/unicacityaddon/commands/api/ReviveStatsCommand.java index c18bb9e92..8d83e5550 100644 --- a/src/main/java/com/rettichlp/unicacityaddon/commands/api/ReviveStatsCommand.java +++ b/src/main/java/com/rettichlp/unicacityaddon/commands/api/ReviveStatsCommand.java @@ -22,7 +22,6 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.Collections; -import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -63,54 +62,16 @@ public void execute(@Nonnull MinecraftServer server, @Nonnull ICommandSender sen UnicacityAddon.MINECRAFT.ingameGUI.setOverlayMessage(ColorCode.AQUA.getCode() + FormattingCode.BOLD.getCode() + "Revivestats werden geladen...", true); new Thread(() -> { - if (args.length > 0 && MathUtils.isInteger(args[0])) { - List reviveList = Syncer.getReviveRankList(Integer.parseInt(args[0])); - p.sendEmptyMessage(); - p.sendMessage(Message.getBuilder() - .of("Revivestats (Rang " + args[0] + "):").color(ColorCode.DARK_AQUA).bold().advance() - .createComponent()); - sendList(reviveList); - p.sendEmptyMessage(); - } else if (args.length > 0) { - Revive revive = Syncer.getRevivePlayer(args[0]); - - if (revive != null) { - int currentWeekReviveAmount = revive.getCurrentWeekReviveAmount(); - int lastWeekReviveAmount = revive.getLastWeekReviveAmount(); - - int difference = currentWeekReviveAmount - lastWeekReviveAmount; - String differenceString = ColorCode.GREEN.getCode() + (difference > 0 ? "+" : "") + difference; - - p.sendEmptyMessage(); - p.sendMessage(Message.getBuilder() - .of("Revivestats von").color(ColorCode.DARK_AQUA).advance().space() - .of(args[0]).color(ColorCode.AQUA).advance() - .of(":").color(ColorCode.DARK_AQUA).advance().space() - .of(String.valueOf(currentWeekReviveAmount)).color(ColorCode.AQUA).advance().space() - .of("(").color(ColorCode.DARK_GRAY).advance() - .of(differenceString).color(difference >= 0 ? ColorCode.GREEN : ColorCode.RED) - .hoverEvent(HoverEvent.Action.SHOW_TEXT, Message.getBuilder() - .of("Diese Woche:").color(ColorCode.GRAY).advance().space() - .of(String.valueOf(currentWeekReviveAmount)).color(ColorCode.RED).advance().newline() - .of("Letzte Woche:").color(ColorCode.GRAY).advance().space() - .of(String.valueOf(lastWeekReviveAmount)).color(ColorCode.RED).advance() - .createComponent()) - .advance() - .of(")").color(ColorCode.DARK_GRAY).advance() - .createComponent()); - - p.sendEmptyMessage(); - } + if (args.length == 0) { + sendRevivestatsPlayer(p, p.getName()); + } else if (MathUtils.isInteger(args[0])) { + sendRevivestatsRank(p, Integer.parseInt(args[0])); + } else if (args[0].equalsIgnoreCase("all")) { + sendRevivestatsAll(p); + } else if (args[0].equalsIgnoreCase("old")) { + sendRevivestatsOld(p); } else { - List reviveList = Syncer.getReviveList(); - if (!reviveList.isEmpty()) { - p.sendEmptyMessage(); - p.sendMessage(Message.getBuilder() - .of("Revivestats:").color(ColorCode.DARK_AQUA).bold().advance() - .createComponent()); - sendList(reviveList); - p.sendEmptyMessage(); - } + sendRevivestatsPlayer(p, args[0]); } }).start(); } @@ -119,12 +80,12 @@ public void execute(@Nonnull MinecraftServer server, @Nonnull ICommandSender sen @Nonnull public List getTabCompletions(@Nonnull MinecraftServer server, @Nonnull ICommandSender sender, @Nonnull String[] args, @Nullable BlockPos targetPos) { return TabCompletionBuilder.getBuilder(args) + .addAtIndex(1, "all", "old", "0", "1", "2", "3", "4", "5", "6") .addAtIndex(1, Syncer.PLAYERFACTIONMAP.entrySet().stream() .filter(stringFactionEntry -> stringFactionEntry.getValue().equals(Faction.RETTUNGSDIENST)) .map(Map.Entry::getKey) .sorted() .collect(Collectors.toList())) - .addAtIndex(1, "0", "1", "2", "3", "4", "5", "6") .build(); } @@ -143,31 +104,152 @@ public int compareTo(@Nonnull ICommand o) { return 0; } - private void sendList(List reviveList) { - reviveList.stream() - .sorted(Comparator.comparing(Revive::getCurrentWeekReviveAmount).reversed()) - .forEach(revive -> { - int currentWeekReviveAmount = revive.getCurrentWeekReviveAmount(); - int lastWeekReviveAmount = revive.getLastWeekReviveAmount(); - - int difference = currentWeekReviveAmount - lastWeekReviveAmount; - String differenceString = ColorCode.GREEN.getCode() + (difference > 0 ? "+" : "") + difference; - - AbstractionLayer.getPlayer().sendMessage(Message.getBuilder() - .of("»").color(ColorCode.GRAY).advance().space() - .of(revive.getMinecraftName() + ":").color(ColorCode.GRAY).advance().space() - .of(String.valueOf(currentWeekReviveAmount)).color(ColorCode.AQUA).advance().space() - .of("(").color(ColorCode.DARK_GRAY).advance() - .of(differenceString).color(difference >= 0 ? ColorCode.GREEN : ColorCode.RED) - .hoverEvent(HoverEvent.Action.SHOW_TEXT, Message.getBuilder() - .of("Diese Woche:").color(ColorCode.GRAY).advance().space() - .of(String.valueOf(currentWeekReviveAmount)).color(ColorCode.RED).advance().newline() - .of("Letzte Woche:").color(ColorCode.GRAY).advance().space() - .of(String.valueOf(lastWeekReviveAmount)).color(ColorCode.RED).advance() - .createComponent()) - .advance() - .of(")").color(ColorCode.DARK_GRAY).advance() - .createComponent()); - }); + private void sendRevivestatsPlayer(UPlayer p, String name) { + Revive revive = Syncer.getRevivePlayer(name); + + if (revive != null) { + int currentWeekReviveAmount = revive.getCurrentWeekReviveAmount(); + int lastWeekReviveAmount = revive.getLastWeekReviveAmount(); + + int difference = currentWeekReviveAmount - lastWeekReviveAmount; + String differenceString = ColorCode.GREEN.getCode() + (difference > 0 ? "+" : "") + difference; + + p.sendEmptyMessage(); + p.sendMessage(Message.getBuilder() + .of("Revivestats von").color(ColorCode.DARK_AQUA).advance().space() + .of(name).color(ColorCode.AQUA).advance() + .of(":").color(ColorCode.GRAY).advance().space() + .of(String.valueOf(currentWeekReviveAmount)).color(ColorCode.AQUA).advance().space() + .of("(").color(ColorCode.DARK_GRAY).advance() + .of(differenceString).color(difference >= 0 ? ColorCode.GREEN : ColorCode.RED) + .hoverEvent(HoverEvent.Action.SHOW_TEXT, Message.getBuilder() + .of("Diese Woche:").color(ColorCode.GRAY).advance().space() + .of(String.valueOf(currentWeekReviveAmount)).color(ColorCode.RED).advance().newline() + .of("Letzte Woche:").color(ColorCode.GRAY).advance().space() + .of(String.valueOf(lastWeekReviveAmount)).color(ColorCode.RED).advance() + .createComponent()) + .advance() + .of(")").color(ColorCode.DARK_GRAY).advance() + .createComponent()); + + p.sendEmptyMessage(); + } + } + + private void sendRevivestatsRank(UPlayer p, int i) { + List reviveList = Syncer.getReviveRankList(i); + + p.sendEmptyMessage(); + p.sendMessage(Message.getBuilder() + .of("Revivestats").color(ColorCode.DARK_AQUA).bold().advance().space() + .of("(").color(ColorCode.GRAY).bold().advance() + .of(String.valueOf(i)).color(ColorCode.AQUA).bold().advance() + .of(")").color(ColorCode.GRAY).bold().advance() + .of(":").color(ColorCode.DARK_AQUA).bold().advance() + .createComponent()); + + reviveList.forEach(revive -> { + int currentWeekReviveAmount = revive.getCurrentWeekReviveAmount(); + int lastWeekReviveAmount = revive.getLastWeekReviveAmount(); + + int difference = currentWeekReviveAmount - lastWeekReviveAmount; + String differenceString = ColorCode.GREEN.getCode() + (difference > 0 ? "+" : "") + difference; + + p.sendMessage(Message.getBuilder() + .of("»").color(ColorCode.GRAY).advance().space() + .of(revive.getMinecraftName() + ":").color(ColorCode.GRAY).advance().space() + .of(String.valueOf(currentWeekReviveAmount)).color(ColorCode.AQUA).advance().space() + .of("(").color(ColorCode.DARK_GRAY).advance() + .of(differenceString).color(difference >= 0 ? ColorCode.GREEN : ColorCode.RED) + .hoverEvent(HoverEvent.Action.SHOW_TEXT, Message.getBuilder() + .of("Diese Woche:").color(ColorCode.GRAY).advance().space() + .of(String.valueOf(currentWeekReviveAmount)).color(ColorCode.RED).advance().newline() + .of("Letzte Woche:").color(ColorCode.GRAY).advance().space() + .of(String.valueOf(lastWeekReviveAmount)).color(ColorCode.RED).advance() + .createComponent()) + .advance() + .of(")").color(ColorCode.DARK_GRAY).advance() + .createComponent()); + }); + + p.sendEmptyMessage(); + } + + private void sendRevivestatsAll(UPlayer p) { + List reviveList = Syncer.getReviveList(); + if (!reviveList.isEmpty()) { + p.sendEmptyMessage(); + p.sendMessage(Message.getBuilder() + .of("Revivestats:").color(ColorCode.DARK_AQUA).bold().advance() + .createComponent()); + sendList(p, reviveList, false); + p.sendEmptyMessage(); + } + } + + private void sendRevivestatsOld(UPlayer p) { + List reviveList = Syncer.getReviveList(); + if (!reviveList.isEmpty()) { + p.sendEmptyMessage(); + p.sendMessage(Message.getBuilder() + .of("Revivestats:").color(ColorCode.DARK_AQUA).bold().advance() + .createComponent()); + sendList(p, reviveList, true); + p.sendEmptyMessage(); + } + } + + private void sendList(UPlayer p, List reviveList, boolean onlyOld) { + Message.Builder overAllMessage = Message.getBuilder(); + + int allReviveAmount = 0; + for (int i = 6; i >= 0; i--) { + ColorCode colorCode = i % 2 == 0 ? ColorCode.WHITE : ColorCode.YELLOW; + + int finalI = i; + List rankReviveList = reviveList.stream() + .filter(revive -> Syncer.PLAYERRANKMAP.getOrDefault(revive.getMinecraftName(), -1).equals(finalI)) + .collect(Collectors.toList()); + + int rankReviveAmount = onlyOld ? rankReviveList.stream().map(Revive::getLastWeekReviveAmount).reduce(0, Integer::sum) : rankReviveList.stream().map(Revive::getCurrentWeekReviveAmount).reduce(0, Integer::sum); + allReviveAmount += rankReviveAmount; + overAllMessage + .of("Rang " + i + ":").color(ColorCode.GRAY).advance().space() + .of(String.valueOf(rankReviveAmount)).color(ColorCode.RED).advance().newline(); + + rankReviveList.forEach(revive -> { + int currentWeekReviveAmount = revive.getCurrentWeekReviveAmount(); + int lastWeekReviveAmount = revive.getLastWeekReviveAmount(); + + int difference = currentWeekReviveAmount - lastWeekReviveAmount; + String differenceString = ColorCode.GREEN.getCode() + (difference > 0 ? "+" : "") + difference; + + p.sendMessage(Message.getBuilder() + .of("»").color(ColorCode.GRAY).advance().space() + .of(revive.getMinecraftName() + ":").color(colorCode).advance().space() + .of(String.valueOf(onlyOld ? lastWeekReviveAmount : currentWeekReviveAmount)).color(ColorCode.AQUA).advance().space() + .of(onlyOld ? "" : "(").color(ColorCode.DARK_GRAY).advance() + .of(onlyOld ? "" : differenceString).color(difference >= 0 ? ColorCode.GREEN : ColorCode.RED) + .hoverEvent(HoverEvent.Action.SHOW_TEXT, Message.getBuilder() + .of("Diese Woche:").color(ColorCode.GRAY).advance().space() + .of(String.valueOf(currentWeekReviveAmount)).color(ColorCode.RED).advance().newline() + .of("Letzte Woche:").color(ColorCode.GRAY).advance().space() + .of(String.valueOf(lastWeekReviveAmount)).color(ColorCode.RED).advance() + .createComponent()) + .advance() + .of(onlyOld ? "" : ")").color(ColorCode.DARK_GRAY).advance() + .createComponent()); + }); + } + + p.sendMessage(Message.getBuilder() + .of("➡").color(ColorCode.GRAY).advance().space() + .of("Gesamt:").color(ColorCode.DARK_AQUA) + .hoverEvent(HoverEvent.Action.SHOW_TEXT, overAllMessage.createComponent()) + .advance().space() + .of(String.valueOf(allReviveAmount)).color(ColorCode.AQUA) + .hoverEvent(HoverEvent.Action.SHOW_TEXT, overAllMessage.createComponent()) + .advance() + .createComponent()); } } \ No newline at end of file From 96cffd0a20a70e5fef586dff8db43d3e125801d2 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Tue, 14 Mar 2023 20:52:39 +0100 Subject: [PATCH 4/7] Update duty check for names which are cut of in tablist --- .../base/manager/FactionManager.java | 3 +- .../unicacityaddon/commands/DutyCommand.java | 89 +++++++++++++++++++ 2 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/rettichlp/unicacityaddon/commands/DutyCommand.java diff --git a/src/main/java/com/rettichlp/unicacityaddon/base/manager/FactionManager.java b/src/main/java/com/rettichlp/unicacityaddon/base/manager/FactionManager.java index 0d96f11ae..ee6d560f8 100644 --- a/src/main/java/com/rettichlp/unicacityaddon/base/manager/FactionManager.java +++ b/src/main/java/com/rettichlp/unicacityaddon/base/manager/FactionManager.java @@ -4,7 +4,6 @@ import com.rettichlp.unicacityaddon.base.utils.ForgeUtils; import com.rettichlp.unicacityaddon.events.TabListEventHandler; -import java.util.Objects; import java.util.stream.Collectors; /** @@ -21,7 +20,7 @@ public static boolean checkPlayerDuty(String playerName) { .collect(Collectors.toList()).stream() .map(ForgeUtils::stripColor) .map(ForgeUtils::stripPrefix) - .anyMatch(s -> Objects.equals(s.substring(0, Math.min(s.length(), 13)), playerName.substring(0, Math.min(playerName.length(), 13)))); + .anyMatch(playerName::startsWith); } return duty; } diff --git a/src/main/java/com/rettichlp/unicacityaddon/commands/DutyCommand.java b/src/main/java/com/rettichlp/unicacityaddon/commands/DutyCommand.java new file mode 100644 index 000000000..7dbb06e27 --- /dev/null +++ b/src/main/java/com/rettichlp/unicacityaddon/commands/DutyCommand.java @@ -0,0 +1,89 @@ +package com.rettichlp.unicacityaddon.commands; + +import com.rettichlp.unicacityaddon.base.abstraction.AbstractionLayer; +import com.rettichlp.unicacityaddon.base.abstraction.UPlayer; +import com.rettichlp.unicacityaddon.base.builder.TabCompletionBuilder; +import com.rettichlp.unicacityaddon.base.manager.FactionManager; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCCommand; +import com.rettichlp.unicacityaddon.base.text.ColorCode; +import com.rettichlp.unicacityaddon.base.text.Message; +import net.minecraft.command.ICommand; +import net.minecraft.command.ICommandSender; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.math.BlockPos; +import net.minecraftforge.client.IClientCommand; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.Collections; +import java.util.List; + +/** + * @author RettichLP + */ +@UCCommand +public class DutyCommand implements IClientCommand { + + @Override + @Nonnull + public String getName() { + return "checkduty"; + } + + @Override + @Nonnull + public String getUsage(@Nonnull ICommandSender sender) { + return "/checkduty [Spieler]"; + } + + @Override + @Nonnull + public List getAliases() { + return Collections.emptyList(); + } + + @Override + public boolean checkPermission(@Nonnull MinecraftServer server, @Nonnull ICommandSender sender) { + return AbstractionLayer.getPlayer().isSuperUser(); + } + + @Override + public void execute(@Nonnull MinecraftServer server, @Nonnull ICommandSender sender, @Nonnull String[] args) { + UPlayer p = AbstractionLayer.getPlayer(); + + if (args.length == 0) { + p.sendSyntaxMessage(getUsage(sender)); + return; + } + + boolean isDuty = FactionManager.checkPlayerDuty(args[0]); + + p.sendMessage(Message.getBuilder() + .of("Der Spieler").color(ColorCode.GRAY).advance().space() + .of(args[0]).color(ColorCode.AQUA).advance().space() + .of("befindet sich für das UnicacityAddon").color(ColorCode.GRAY).advance().space() + .of((isDuty ? "" : "nicht ") + "im Dienst").color(isDuty ? ColorCode.GREEN : ColorCode.RED).advance() + .createComponent()); + } + + @Override + @Nonnull + public List getTabCompletions(@Nonnull MinecraftServer server, @Nonnull ICommandSender sender, @Nonnull String[] args, @Nullable BlockPos targetPos) { + return TabCompletionBuilder.getBuilder(args).build(); + } + + @Override + public boolean isUsernameIndex(@Nonnull String[] args, int index) { + return false; + } + + @Override + public boolean allowUsageWithoutPrefix(ICommandSender sender, String message) { + return false; + } + + @Override + public int compareTo(@Nonnull ICommand o) { + return 0; + } +} \ No newline at end of file From ef74c6119b55392526821a3763b7eaea552f5cde Mon Sep 17 00:00:00 2001 From: rettichlp Date: Tue, 14 Mar 2023 21:02:44 +0100 Subject: [PATCH 5/7] Update message in DutyCommand --- .../java/com/rettichlp/unicacityaddon/commands/DutyCommand.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/rettichlp/unicacityaddon/commands/DutyCommand.java b/src/main/java/com/rettichlp/unicacityaddon/commands/DutyCommand.java index 7dbb06e27..e4822f036 100644 --- a/src/main/java/com/rettichlp/unicacityaddon/commands/DutyCommand.java +++ b/src/main/java/com/rettichlp/unicacityaddon/commands/DutyCommand.java @@ -63,6 +63,7 @@ public void execute(@Nonnull MinecraftServer server, @Nonnull ICommandSender sen .of(args[0]).color(ColorCode.AQUA).advance().space() .of("befindet sich für das UnicacityAddon").color(ColorCode.GRAY).advance().space() .of((isDuty ? "" : "nicht ") + "im Dienst").color(isDuty ? ColorCode.GREEN : ColorCode.RED).advance() + .of(".").color(ColorCode.GRAY).advance() .createComponent()); } From e11ed40fd074ac8c34af210366741ecf290989da Mon Sep 17 00:00:00 2001 From: rettichlp Date: Tue, 14 Mar 2023 23:26:45 +0100 Subject: [PATCH 6/7] Fix lag during execution of sync and stats command --- .../unicacityaddon/base/api/Syncer.java | 22 ++--- .../events/AccountEventHandler.java | 84 ++++++++++--------- 2 files changed, 55 insertions(+), 51 deletions(-) diff --git a/src/main/java/com/rettichlp/unicacityaddon/base/api/Syncer.java b/src/main/java/com/rettichlp/unicacityaddon/base/api/Syncer.java index 6ea3c8c45..e11377741 100644 --- a/src/main/java/com/rettichlp/unicacityaddon/base/api/Syncer.java +++ b/src/main/java/com/rettichlp/unicacityaddon/base/api/Syncer.java @@ -37,18 +37,20 @@ public class Syncer { public static List WANTEDREASONLIST = new ArrayList<>(); public static void syncAll() { - Thread t1 = syncPlayerAddonGroupMap(); - Thread t2 = syncPlayerFactionData(); + new Thread(() -> { + try { + Thread t1 = syncPlayerAddonGroupMap(); + Thread t2 = syncPlayerFactionData(); - try { - t1.start(); - t1.join(); + t1.start(); + t1.join(); - t2.start(); - t2.join(); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } + t2.start(); + t2.join(); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + }).start(); new Thread(() -> { if (!(HOUSEBANLIST = getHouseBanList()).isEmpty()) diff --git a/src/main/java/com/rettichlp/unicacityaddon/events/AccountEventHandler.java b/src/main/java/com/rettichlp/unicacityaddon/events/AccountEventHandler.java index 29dd45dbf..c46c71b18 100644 --- a/src/main/java/com/rettichlp/unicacityaddon/events/AccountEventHandler.java +++ b/src/main/java/com/rettichlp/unicacityaddon/events/AccountEventHandler.java @@ -92,47 +92,49 @@ public void run() { } if (PatternHandler.ACCOUNT_TREUEBONUS_PATTERN.matcher(msg).find()) { - try { - JsonObject gameplayJsonObject = APIRequest.sendStatisticRequest().getAsJsonObject("gameplay"); - int deaths = gameplayJsonObject.get("deaths").getAsInt(); - int kills = gameplayJsonObject.get("kills").getAsInt(); - float kd = gameplayJsonObject.get("kd").getAsFloat(); - int playTime = gameplayJsonObject.get("playTime").getAsInt(); - - p.sendMessage(Message.getBuilder() - .space().space() - .of("-").color(ColorCode.DARK_GRAY).advance().space() - .of("Tode").color(ColorCode.GOLD).advance() - .of(":").color(ColorCode.DARK_GRAY).advance().space() - .of(deaths + " Tode").color(ColorCode.RED).advance() - .createComponent()); - - p.sendMessage(Message.getBuilder() - .space().space() - .of("-").color(ColorCode.DARK_GRAY).advance().space() - .of("Kills").color(ColorCode.GOLD).advance() - .of(":").color(ColorCode.DARK_GRAY).advance().space() - .of(kills + " Kills").color(ColorCode.RED).advance() - .createComponent()); - - p.sendMessage(Message.getBuilder() - .space().space() - .of("-").color(ColorCode.DARK_GRAY).advance().space() - .of("K/D").color(ColorCode.GOLD).advance() - .of(":").color(ColorCode.DARK_GRAY).advance().space() - .of(MathUtils.DECIMAL_FORMAT.format(kd)).color(ColorCode.RED).advance() - .createComponent()); - - p.sendMessage(Message.getBuilder() - .space().space() - .of("-").color(ColorCode.DARK_GRAY).advance().space() - .of("Spielzeit").color(ColorCode.GOLD).advance() - .of(":").color(ColorCode.DARK_GRAY).advance().space() - .of(playTime + (playTime == 1 ? " Stunde" : " Stunden")).color(ColorCode.RED).advance() - .createComponent()); - } catch (APIResponseException ex) { - ex.sendInfo(); - } + new Thread(() -> { + try { + JsonObject gameplayJsonObject = APIRequest.sendStatisticRequest().getAsJsonObject("gameplay"); + int deaths = gameplayJsonObject.get("deaths").getAsInt(); + int kills = gameplayJsonObject.get("kills").getAsInt(); + float kd = gameplayJsonObject.get("kd").getAsFloat(); + int playTime = gameplayJsonObject.get("playTime").getAsInt(); + + p.sendMessage(Message.getBuilder() + .space().space() + .of("-").color(ColorCode.DARK_GRAY).advance().space() + .of("Tode").color(ColorCode.GOLD).advance() + .of(":").color(ColorCode.DARK_GRAY).advance().space() + .of(deaths + " Tode").color(ColorCode.RED).advance() + .createComponent()); + + p.sendMessage(Message.getBuilder() + .space().space() + .of("-").color(ColorCode.DARK_GRAY).advance().space() + .of("Kills").color(ColorCode.GOLD).advance() + .of(":").color(ColorCode.DARK_GRAY).advance().space() + .of(kills + " Kills").color(ColorCode.RED).advance() + .createComponent()); + + p.sendMessage(Message.getBuilder() + .space().space() + .of("-").color(ColorCode.DARK_GRAY).advance().space() + .of("K/D").color(ColorCode.GOLD).advance() + .of(":").color(ColorCode.DARK_GRAY).advance().space() + .of(MathUtils.DECIMAL_FORMAT.format(kd)).color(ColorCode.RED).advance() + .createComponent()); + + p.sendMessage(Message.getBuilder() + .space().space() + .of("-").color(ColorCode.DARK_GRAY).advance().space() + .of("Spielzeit").color(ColorCode.GOLD).advance() + .of(":").color(ColorCode.DARK_GRAY).advance().space() + .of(playTime + (playTime == 1 ? " Stunde" : " Stunden")).color(ColorCode.RED).advance() + .createComponent()); + } catch (APIResponseException ex) { + ex.sendInfo(); + } + }).start(); return; } From bf72238846ec40293b6e9ed182190ceb7292fa2e Mon Sep 17 00:00:00 2001 From: rettichlp Date: Wed, 15 Mar 2023 00:59:21 +0100 Subject: [PATCH 7/7] Update version to 1.9.2 --- .github/ISSUE_TEMPLATE/bug-oder-fehler.md | 2 +- build.gradle | 2 +- src/main/java/com/rettichlp/unicacityaddon/UnicacityAddon.java | 2 +- src/main/resources/mcmod.info | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug-oder-fehler.md b/.github/ISSUE_TEMPLATE/bug-oder-fehler.md index bf001e721..bbf029634 100644 --- a/.github/ISSUE_TEMPLATE/bug-oder-fehler.md +++ b/.github/ISSUE_TEMPLATE/bug-oder-fehler.md @@ -25,4 +25,4 @@ Füge gegebenenfalls Screenshots hinzu, um das Problem zu erläutern. **Weitere Informationen (bitte ausfüllen):** Minecraft Version: `1.12.2` -Addon Version: `1.9.1` +Addon Version: `1.9.2` diff --git a/build.gradle b/build.gradle index cc29b7c6d..905536001 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,7 @@ apply plugin: 'net.minecraftforge.gradle' apply plugin: 'idea' apply plugin: 'maven-publish' -version = '1.9.1' +version = '1.9.2' group = 'com.rettichlp' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'UnicacityAddon' diff --git a/src/main/java/com/rettichlp/unicacityaddon/UnicacityAddon.java b/src/main/java/com/rettichlp/unicacityaddon/UnicacityAddon.java index b22b42a44..51cb5c02e 100644 --- a/src/main/java/com/rettichlp/unicacityaddon/UnicacityAddon.java +++ b/src/main/java/com/rettichlp/unicacityaddon/UnicacityAddon.java @@ -36,7 +36,7 @@ @Mod(name = "UnicacityAddon", modid = "unicacityaddon", version = UnicacityAddon.VERSION, clientSideOnly = true, acceptedMinecraftVersions = "[1.12,1.12.2]") public class UnicacityAddon extends LabyModAddon { - public static final String VERSION = "1.9.1"; + public static final String VERSION = "1.9.2"; public static final Minecraft MINECRAFT = Minecraft.getMinecraft(); public static UnicacityAddon ADDON; public static final Logger LOGGER = LogManager.getLogger(); diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index a3b94edca..9ccd7b741 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "unicacityaddon", "name": "UnicacityAddon", "description": "This addon is a modification for UnicaCity providing specialized and nice-to-have features and utilities for everyday gameplay.", - "version": "1.9.1", + "version": "1.9.2", "mcversion": "1.12.2", "url": "", "updateUrl": "",