aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHacktheTime <l4bg0jb7@duck.com>2023-09-26 19:49:04 +0200
committerHacktheTime <l4bg0jb7@duck.com>2023-09-26 19:49:04 +0200
commit29f560cc2d3fcaa4e741b4db35af1ed154da9e96 (patch)
treebfb8900b0ac88c85df8ce23f305ef0548b943cd6
parent1e8c85d2bbf1d8a6fb7bc125becd790c15654dbe (diff)
downloadBBsentials-29f560cc2d3fcaa4e741b4db35af1ed154da9e96.tar.gz
BBsentials-29f560cc2d3fcaa4e741b4db35af1ed154da9e96.tar.bz2
BBsentials-29f560cc2d3fcaa4e741b4db35af1ed154da9e96.zip
lots of bug fixes and improved punishment system ba making it as custom packet.
-rw-r--r--src/main/java/de/hype/bbsentials/client/BBsentials.java30
-rw-r--r--src/main/java/de/hype/bbsentials/client/BBsentialsConfigScreemFactory.java7
-rw-r--r--src/main/java/de/hype/bbsentials/client/Commands/CommandsOLD.java70
-rw-r--r--src/main/java/de/hype/bbsentials/client/Config.java1
-rw-r--r--src/main/java/de/hype/bbsentials/client/DebugThread.java2
-rw-r--r--src/main/java/de/hype/bbsentials/client/SplashManager.java2
-rw-r--r--src/main/java/de/hype/bbsentials/communication/BBsentialConnection.java18
-rw-r--r--src/main/java/de/hype/bbsentials/mixins/ItemRendererMixin.java2
-rw-r--r--src/main/java/de/hype/bbsentials/packets/packets/PunishUserPacket.java24
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;
+
+}