diff options
author | HacktheTime <l4bg0jb7@duck.com> | 2023-09-26 19:49:04 +0200 |
---|---|---|
committer | HacktheTime <l4bg0jb7@duck.com> | 2023-09-26 19:49:04 +0200 |
commit | 29f560cc2d3fcaa4e741b4db35af1ed154da9e96 (patch) | |
tree | bfb8900b0ac88c85df8ce23f305ef0548b943cd6 | |
parent | 1e8c85d2bbf1d8a6fb7bc125becd790c15654dbe (diff) | |
download | BBsentials-29f560cc2d3fcaa4e741b4db35af1ed154da9e96.tar.gz BBsentials-29f560cc2d3fcaa4e741b4db35af1ed154da9e96.tar.bz2 BBsentials-29f560cc2d3fcaa4e741b4db35af1ed154da9e96.zip |
lots of bug fixes and improved punishment system ba making it as custom packet.
9 files changed, 118 insertions, 38 deletions
diff --git a/src/main/java/de/hype/bbsentials/client/BBsentials.java b/src/main/java/de/hype/bbsentials/client/BBsentials.java index b74e633..a8e326b 100644 --- a/src/main/java/de/hype/bbsentials/client/BBsentials.java +++ b/src/main/java/de/hype/bbsentials/client/BBsentials.java @@ -29,7 +29,7 @@ import static de.hype.bbsentials.chat.Chat.*; public class BBsentials implements ClientModInitializer { public static Config config; - public static BBsentialConnection bbserver; + public static BBsentialConnection connection; public static CommandsOLD coms; public static ScheduledExecutorService executionService = Executors.newScheduledThreadPool(1000); public static boolean splashLobby; @@ -45,9 +45,22 @@ public class BBsentials implements ClientModInitializer { connectToBBserver(config.connectToBeta); } + /** + * Checks if still connected to the Server. + * @return true if it connected; false if old connection is kept. + */ + public static boolean conditionalReconnectToBBserver() { + if (!connection.isConnected()) { + Chat.sendPrivateMessageToSelf("Reconnecting"); + connectToBBserver(config.connectToBeta); + return true; + } + return false; + } + public static void connectToBBserver(boolean beta) { - if (bbserver != null) { - bbserver.sendHiddenMessage("exit"); + if (connection != null) { + connection.sendHiddenMessage("exit"); } if (bbthread != null) { if (bbthread.isAlive()) { @@ -55,14 +68,14 @@ public class BBsentials implements ClientModInitializer { } } bbthread = new Thread(() -> { - bbserver = new BBsentialConnection(); + connection = new BBsentialConnection(); coms = new CommandsOLD(); - bbserver.setMessageReceivedCallback(message -> executionService.execute(() -> bbserver.onMessageReceived(message))); + connection.setMessageReceivedCallback(message -> executionService.execute(() -> connection.onMessageReceived(message))); if (beta) { - bbserver.connect(config.getBBServerURL(), 5011); + connection.connect(config.getBBServerURL(), 5011); } else { - bbserver.connect(config.getBBServerURL(), 5000); + connection.connect(config.getBBServerURL(), 5000); } executionService.scheduleAtFixedRate(new DebugThread(), 0, 20, TimeUnit.SECONDS); }); @@ -83,7 +96,7 @@ public class BBsentials implements ClientModInitializer { splashLobby = false; if (!initialised) { config = Config.load(); - Options.setGamma(10); + if (config.doGammaOverride) Options.setGamma(10); Chat chat = new Chat(); if (Config.isBingoTime() || config.overrideBingoTime()) { connectToBBserver(); @@ -92,6 +105,7 @@ public class BBsentials implements ClientModInitializer { } }); } + { ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> { dispatcher.register(ClientCommandManager.literal("bbi") diff --git a/src/main/java/de/hype/bbsentials/client/BBsentialsConfigScreemFactory.java b/src/main/java/de/hype/bbsentials/client/BBsentialsConfigScreemFactory.java index 39da980..2ecc2e5 100644 --- a/src/main/java/de/hype/bbsentials/client/BBsentialsConfigScreemFactory.java +++ b/src/main/java/de/hype/bbsentials/client/BBsentialsConfigScreemFactory.java @@ -16,7 +16,7 @@ public class BBsentialsConfigScreemFactory { ConfigBuilder builder = ConfigBuilder.create() .setParentScreen(parent) .setTitle(Text.of("BBsentials Config")); - //builder.setSavingRunnable(BBsentials.getConfig()::save); + builder.setSavingRunnable(BBsentials.getConfig()::save); ConfigEntryBuilder entryBuilder = builder.entryBuilder(); ConfigCategory server = builder.getOrCreateCategory(Text.of("Server")); if (config.getUsername().equalsIgnoreCase("Hype_the_Time")) { @@ -96,6 +96,11 @@ public class BBsentialsConfigScreemFactory { .build()); //other ConfigCategory other = builder.getOrCreateCategory(Text.of("Other")); + other.addEntry(entryBuilder.startBooleanToggle(Text.of("Gamma Override"), config.doGammaOverride) + .setDefaultValue(true) + .setTooltip(Text.of("Select if you want BBsentials to enable full bright")) + .setSaveConsumer(newValue -> config.doGammaOverride = newValue) + .build()); other.addEntry(entryBuilder.startBooleanToggle(Text.of("Accept Reparties"), config.acceptReparty) .setDefaultValue(true) .setTooltip(Text.of("Select if you want BBsentials to automatically accept reparties")) diff --git a/src/main/java/de/hype/bbsentials/client/Commands/CommandsOLD.java b/src/main/java/de/hype/bbsentials/client/Commands/CommandsOLD.java index 74de17a..31a283a 100644 --- a/src/main/java/de/hype/bbsentials/client/Commands/CommandsOLD.java +++ b/src/main/java/de/hype/bbsentials/client/Commands/CommandsOLD.java @@ -158,7 +158,7 @@ public class CommandsOLD { .then(ClientCommandManager.argument("Z", IntegerArgumentType.integer()) .then(ClientCommandManager.argument("ContactWay", StringArgumentType.string()) .suggests(((context, builder) -> { - return CommandSource.suggestMatching(new String[]{"\"/msg " + getConfig().getUsername() + " bb:party me\"", "\"/p join " + config.getUsername()+"\""}, builder); + return CommandSource.suggestMatching(new String[]{"\"/msg " + getConfig().getUsername() + " bb:party me\"", "\"/p join " + config.getUsername() + "\""}, builder); })) .executes((context) -> { String item = StringArgumentType.getString(context, "Item"); @@ -167,7 +167,7 @@ public class CommandsOLD { int z = IntegerArgumentType.getInteger(context, "Z"); String contactWay = StringArgumentType.getString(context, "ContactWay"); - bbserver.sendPacket(new ChChestPacket("", ChChestItems.getItem(item.split(";")), x + " " + y + " " + z, contactWay, "")); + connection.sendPacket(new ChChestPacket("", ChChestItems.getItem(item.split(";")), x + " " + y + " " + z, contactWay, "")); return 1; } ) @@ -217,29 +217,53 @@ public class CommandsOLD { ); });/*bAnnounce*/ event.register((dispatcher, registryAccess) -> { - dispatcher.register( - ClientCommandManager.literal("bmute") - .then(ClientCommandManager.argument("message", StringArgumentType.greedyString()) - .executes((context) -> { - String message = StringArgumentType.getString(context, "message"); - sendCommand("?mute " + message); - return 1; - }) + dispatcher.register(ClientCommandManager.literal("bmute") + .then(ClientCommandManager.argument("userId/mcusername", StringArgumentType.string()) + .then(ClientCommandManager.argument("[Duration(d/h/m/s) | 0 forever]", StringArgumentType.string()) + .then(ClientCommandManager.argument("reason", StringArgumentType.greedyString()) + .executes((context) -> { + String identification = StringArgumentType.getString(context, "userId/mcusername"); + String duration = StringArgumentType.getString(context,"[Duration(d/h/m/s) | 0 forever]"); + String reason = StringArgumentType.getString(context, "reason"); + int userId = -1; + String mcusername = ""; + if (identification.replaceAll("[\\d]","").trim().isEmpty()){ + userId=Integer.parseInt(identification); + }else { + mcusername=identification; + } + sendPacket(new PunishUserPacket(PunishUserPacket.PUNISHMENT_TYPE_MUTE,userId,mcusername,duration,reason)); + return 1; + }) + ) ) + ) ); });/*bmute*/ event.register((dispatcher, registryAccess) -> { - dispatcher.register( - ClientCommandManager.literal("bban") - .then(ClientCommandManager.argument("message", StringArgumentType.greedyString()) - .executes((context) -> { - String message = StringArgumentType.getString(context, "message"); - sendCommand("?bban " + message); - return 1; - }) + dispatcher.register(ClientCommandManager.literal("bban") + .then(ClientCommandManager.argument("userId/mcusername", StringArgumentType.string()) + .then(ClientCommandManager.argument("[Duration(d/h/m/s) | 0 forever]", StringArgumentType.string()) + .then(ClientCommandManager.argument("reason", StringArgumentType.greedyString()) + .executes((context) -> { + String identification = StringArgumentType.getString(context, "userId/mcusername"); + String duration = StringArgumentType.getString(context,"[Duration(d/h/m/s) | 0 forever]"); + String reason = StringArgumentType.getString(context, "reason"); + int userId = -1; + String mcusername = ""; + if (identification.replaceAll("[\\d]","").trim().isEmpty()){ + userId=Integer.parseInt(identification); + }else { + mcusername=identification; + } + sendPacket(new PunishUserPacket(PunishUserPacket.PUNISHMENT_TYPE_BAN,userId,mcusername,duration,reason)); + return 1; + }) + ) ) + ) ); - });/*bmute*/ + });/*ban*/ } if (getConfig().hasBBRoles("splasher")) { event.register((dispatcher, registryAccess) -> { @@ -292,7 +316,7 @@ public class CommandsOLD { dispatcher.register( ClientCommandManager.literal(commandName) .executes((context) -> { - BBsentials.bbserver.sendPacket(new InternalCommandPacket(commandName, parameters)); + BBsentials.connection.sendPacket(new InternalCommandPacket(commandName, parameters)); return 1; }) ); @@ -303,7 +327,7 @@ public class CommandsOLD { ClientCommandManager.literal(commandName) .executes((context) -> { try { - BBsentials.bbserver.sendPacket(new MiningEventPacket(event, + BBsentials.connection.sendPacket(new MiningEventPacket(event, config.getUsername(), Objects.requireNonNull(BBUtils.getCurrentIsland()))); } catch (Exception e) { Chat.sendPrivateMessageToSelf("§c" + e.getMessage()); @@ -319,10 +343,10 @@ public class CommandsOLD { public void sendCommand(String message) { - BBsentials.bbserver.sendCommand(message); + BBsentials.connection.sendCommand(message); } public <E extends AbstractPacket> void sendPacket(E packet) { - BBsentials.bbserver.sendPacket(packet); + BBsentials.connection.sendPacket(packet); } }
\ No newline at end of file diff --git a/src/main/java/de/hype/bbsentials/client/Config.java b/src/main/java/de/hype/bbsentials/client/Config.java index f0d4dcf..ab4440b 100644 --- a/src/main/java/de/hype/bbsentials/client/Config.java +++ b/src/main/java/de/hype/bbsentials/client/Config.java @@ -39,6 +39,7 @@ public class Config implements Serializable { public boolean allowBBinviteMe = true; public boolean doDesktopNotifications = false; public boolean showSplashStatusUpdates = true; + public boolean doGammaOverride = true; public boolean acceptReparty; public boolean autoSplashStatusUpdates; public String nickname; diff --git a/src/main/java/de/hype/bbsentials/client/DebugThread.java b/src/main/java/de/hype/bbsentials/client/DebugThread.java index 418cb2d..fe5e583 100644 --- a/src/main/java/de/hype/bbsentials/client/DebugThread.java +++ b/src/main/java/de/hype/bbsentials/client/DebugThread.java @@ -2,13 +2,11 @@ package de.hype.bbsentials.client; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.PlayerListEntry; -import net.minecraft.scoreboard.Scoreboard; import java.util.ArrayList; import java.util.List; public class DebugThread implements Runnable { - Scoreboard temp; @Override public void run() { diff --git a/src/main/java/de/hype/bbsentials/client/SplashManager.java b/src/main/java/de/hype/bbsentials/client/SplashManager.java index 8077c4c..cc33c66 100644 --- a/src/main/java/de/hype/bbsentials/client/SplashManager.java +++ b/src/main/java/de/hype/bbsentials/client/SplashManager.java @@ -43,7 +43,7 @@ public class SplashManager { else { where = "Hub"; } - BBsentials.bbserver.splashHighlightItem("HUB #" + splash.hub, 20); + BBsentials.connection.splashHighlightItem("HUB #" + splash.hub, 20); Chat.sendPrivateMessageToSelf("§6" + splash.splasherUsername + " is Splashing in " + where + " #" + splash.hub + " at " + splash.location + ":" + splash.extraMessage); } diff --git a/src/main/java/de/hype/bbsentials/communication/BBsentialConnection.java b/src/main/java/de/hype/bbsentials/communication/BBsentialConnection.java index a40c621..33b1777 100644 --- a/src/main/java/de/hype/bbsentials/communication/BBsentialConnection.java +++ b/src/main/java/de/hype/bbsentials/communication/BBsentialConnection.java @@ -66,7 +66,7 @@ public class BBsentialConnection { return true; } else { - BBsentials.bbserver.sendCommand("?emergency server-hacked? chchest command " + command); + BBsentials.connection.sendCommand("?emergency server-hacked? chchest command " + command); String emergencyMessage = "We detected that there was a command used which is not configured to be safe! " + command + " please check if its safe. IMMEDIATELY report this to the Admins and Developer Hype_the_Time (@hackthetime). If it is not safe immediately remove BBsentials!!!!!!!! "; System.out.println(emergencyMessage); Chat.sendPrivateMessageToSelf("§4" + emergencyMessage + "\n\n"); @@ -445,7 +445,12 @@ public class BBsentialConnection { } public void onDisconnectPacket(DisconnectPacket packet) { - + Chat.sendPrivateMessageToSelf(packet.displayMessage); + for (int i : packet.waitBeforeReconnect) { + executionService.schedule(() -> { + BBsentials.conditionalReconnectToBBserver(); + }, i, TimeUnit.SECONDS); + } } public void onDisplayMessagePacket(DisplayMessagePacket packet) { @@ -503,4 +508,13 @@ public class BBsentialConnection { public interface MessageReceivedCallback { void onMessageReceived(String message); } + + public boolean isConnected() { + try { + socket.isConnected(); + return true; + } catch (Exception e) { + return false; + } + } }
\ No newline at end of file diff --git a/src/main/java/de/hype/bbsentials/mixins/ItemRendererMixin.java b/src/main/java/de/hype/bbsentials/mixins/ItemRendererMixin.java index d0d3290..cfc1c2a 100644 --- a/src/main/java/de/hype/bbsentials/mixins/ItemRendererMixin.java +++ b/src/main/java/de/hype/bbsentials/mixins/ItemRendererMixin.java @@ -27,7 +27,7 @@ public class ItemRendererMixin { @Inject(method = "renderItem", at = @At("HEAD"), cancellable = true) private void renderItemMixin(ItemStack stack, ModelTransformationMode renderMode, boolean leftHanded, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, BakedModel model, CallbackInfo ci) { if (BBsentials.config.highlightitem) { - setCustomName(stack, BBsentials.bbserver.getItemName()); + setCustomName(stack, BBsentials.connection.getItemName()); } } diff --git a/src/main/java/de/hype/bbsentials/packets/packets/PunishUserPacket.java b/src/main/java/de/hype/bbsentials/packets/packets/PunishUserPacket.java new file mode 100644 index 0000000..43cb6e5 --- /dev/null +++ b/src/main/java/de/hype/bbsentials/packets/packets/PunishUserPacket.java @@ -0,0 +1,24 @@ +package de.hype.bbsentials.packets.packets; + +import de.hype.bbsentials.packets.AbstractPacket; + +public class PunishUserPacket extends AbstractPacket { + public static final String PUNISHMENT_TYPE_BAN = "BAN"; + public static final String PUNISHMENT_TYPE_MUTE = "MUTE"; + + public PunishUserPacket(String punishmentType,int userId, String username, String duration, String reason) { + super(1, 1); + this.type = punishmentType; + this.username = username; + this.userId = userId; + this.duration = duration; + this.reason = reason; + } + + public final String username; + public final String type; + public final int userId; + public final String duration; + public final String reason; + +} |