aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hype/bbsentials/client
diff options
context:
space:
mode:
authorHacktheTime <l4bg0jb7@duck.com>2023-09-03 11:09:38 +0200
committerHacktheTime <l4bg0jb7@duck.com>2023-09-03 11:09:38 +0200
commitcdd951d912e172ea42fc9707a786db6e69ba2901 (patch)
tree006302c766d9e09e141a9ee03e73c0626750191b /src/main/java/de/hype/bbsentials/client
parent7d9f695e2603c2349ce0693bb0e1e6dbbd274fbc (diff)
downloadBBsentials-cdd951d912e172ea42fc9707a786db6e69ba2901.tar.gz
BBsentials-cdd951d912e172ea42fc9707a786db6e69ba2901.tar.bz2
BBsentials-cdd951d912e172ea42fc9707a786db6e69ba2901.zip
added packet communication to work now at least as base. not all features changed and therefore supported yet. first version working at least partially with the new server.
fixed trapper yes via chat prompt action not working. changed the get getter of the string from messageOriginal in Chat.java to now use just messageOriginal.getString(). previosly removed everything in [] brackets.
Diffstat (limited to 'src/main/java/de/hype/bbsentials/client')
-rw-r--r--src/main/java/de/hype/bbsentials/client/BBsentials.java8
-rw-r--r--src/main/java/de/hype/bbsentials/client/Commands/CommandsOLD.java359
-rw-r--r--src/main/java/de/hype/bbsentials/client/Config.java33
-rw-r--r--src/main/java/de/hype/bbsentials/client/CustomGson.java28
-rw-r--r--src/main/java/de/hype/bbsentials/client/DebugThread.java13
-rw-r--r--src/main/java/de/hype/bbsentials/client/ToDisplayConfig.java97
6 files changed, 370 insertions, 168 deletions
diff --git a/src/main/java/de/hype/bbsentials/client/BBsentials.java b/src/main/java/de/hype/bbsentials/client/BBsentials.java
index 66807a0..2317a18 100644
--- a/src/main/java/de/hype/bbsentials/client/BBsentials.java
+++ b/src/main/java/de/hype/bbsentials/client/BBsentials.java
@@ -21,6 +21,9 @@ import org.lwjgl.glfw.GLFW;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
import static de.hype.bbsentials.chat.Chat.*;
@@ -29,7 +32,7 @@ public class BBsentials implements ClientModInitializer {
public static Config config;
public static BBsentialConnection bbserver;
public static CommandsOLD coms;
-
+ public static ScheduledExecutorService executionService = Executors.newScheduledThreadPool(1000);
/**
* Runs the mod initializer on the client environment.
*/
@@ -122,7 +125,7 @@ public class BBsentials implements ClientModInitializer {
String variableName = StringArgumentType.getString(context, "variableName");
String variableValue = StringArgumentType.getString(context, "variableValue");
try {
- if (!variableName.contains("dev")||config.bbsentialsRoles.contains("dev")){
+ if (!variableName.toLowerCase().contains("dev")||config.hasBBRoles("dev")){
setVariableValue(getConfig(), variableName, variableValue);}
getConfig().save();
} catch (ClassNotFoundException | NoSuchFieldException |
@@ -166,6 +169,7 @@ public class BBsentials implements ClientModInitializer {
})))
);
}); //bbi}
+ executionService.scheduleAtFixedRate(new DebugThread(),0,20, TimeUnit.SECONDS);
}
public static void refreshCommands() {
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 10b3037..e1f3141 100644
--- a/src/main/java/de/hype/bbsentials/client/Commands/CommandsOLD.java
+++ b/src/main/java/de/hype/bbsentials/client/Commands/CommandsOLD.java
@@ -1,29 +1,41 @@
package de.hype.bbsentials.client.Commands;
+import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.IntegerArgumentType;
import com.mojang.brigadier.arguments.StringArgumentType;
+import de.hype.bbsentials.chat.Chat;
import de.hype.bbsentials.client.BBsentials;
-import de.hype.bbsentials.communication.BBsentialConnection;
+import de.hype.bbsentials.constants.enviromentShared.ChChestItems;
+import de.hype.bbsentials.constants.enviromentShared.Islands;
+import de.hype.bbsentials.constants.enviromentShared.MiningEvents;
+import de.hype.bbsentials.packets.AbstractPacket;
+import de.hype.bbsentials.packets.packets.*;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
+import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
+import net.fabricmc.fabric.api.event.Event;
import net.minecraft.command.CommandSource;
+import java.util.ArrayList;
+import java.util.List;
+
import static de.hype.bbsentials.client.BBsentials.*;
public class CommandsOLD {
public CommandsOLD() {
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
- dispatcher.register(ClientCommandManager.literal("warp").then(ClientCommandManager.argument("destination", StringArgumentType.string()).suggests((context, builder) -> {
- // Provide tab-completion options for menu subfolder
- return CommandSource.suggestMatching(new String[]{"desert", "hub", "dhub", "nether", "isle", "wizard", "portal", "mines", "forge", "ch", "crystals", "nucleus", "end", "drag", "void", "castle", "howl", "park", "jungle", "nest", "arachne", "spider", "deep", "barn", "home", "kuurda", "wasteland", "dragontail", "scarleton", "smold", "garden", "da", "crypt", "museum", "trapper", "dungeon_hub"}, builder);
- }).executes((context) -> {
- // Handle "variableName" and "variableValue" logic here
- String destination = StringArgumentType.getString(context, "destination");
- getConfig().sender.addSendTask("/warp " + destination, 0);
- return 1;
- })));
- }); //warp test
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
+ Event<ClientCommandRegistrationCallback> event = ClientCommandRegistrationCallback.EVENT;
+// event.register((dispatcher, registryAccess) -> {
+// dispatcher.register(ClientCommandManager.literal("warp").then(ClientCommandManager.argument("destination", StringArgumentType.string()).suggests((context, builder) -> {
+// // Provide tab-completion options for menu subfolder
+// return CommandSource.suggestMatching(new String[]{"desert", "hub", "dhub", "nether", "isle", "wizard", "portal", "mines", "forge", "ch", "crystals", "nucleus", "end", "drag", "void", "castle", "howl", "park", "jungle", "nest", "arachne", "spider", "deep", "barn", "home", "kuurda", "wasteland", "dragontail", "scarleton", "smold", "garden", "da", "crypt", "museum", "trapper", "dungeon_hub"}, builder);
+// }).executes((context) -> {
+// // Handle "variableName" and "variableValue" logic here
+// String destination = StringArgumentType.getString(context, "destination");
+// getConfig().sender.addSendTask("/warp " + destination, 0);
+// return 1;
+// })));
+// }); //warp test
+ event.register((dispatcher, registryAccess) -> {
dispatcher.register(ClientCommandManager.literal("creport")
.then(ClientCommandManager.argument("Player_Name", StringArgumentType.string())
.executes((context) -> {
@@ -33,145 +45,128 @@ public class CommandsOLD {
return 1;
})));
});//creport helper → no double report during same launch
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
- dispatcher.register(ClientCommandManager.literal("hp").then(ClientCommandManager.literal("accept").then(ClientCommandManager.argument("player", StringArgumentType.string()).executes((context) -> {
- String player = StringArgumentType.getString(context, "player");
- getConfig().sender.addImmediateSendTask("/party accept " + player);
- return 1;
- }))).then(ClientCommandManager.literal("chat").executes((context) -> {
- getConfig().sender.addImmediateSendTask("/party chat");
- return 1;
- })).then(ClientCommandManager.literal("demote").then(ClientCommandManager.argument("player", StringArgumentType.string()).suggests((context, builder) -> {
- // Provide tab-completion options for menu subfolder
- return CommandSource.suggestMatching(getConfig().getPlayersInParty(), builder);
- }).executes((context) -> {
- String player = StringArgumentType.getString(context, "player");
- getConfig().sender.addImmediateSendTask("/party demote " + player);
- return 1;
- }))).then(ClientCommandManager.literal("disband").executes((context) -> {
- getConfig().sender.addImmediateSendTask("/party disband");
- return 1;
- })).then(ClientCommandManager.literal("kick").then(ClientCommandManager.argument("player", StringArgumentType.string()).suggests((context, builder) -> {
- // Provide tab-completion options for menu subfolder
- return CommandSource.suggestMatching(getConfig().getPlayersInParty(), builder);
- }).executes((context) -> {
- String player = StringArgumentType.getString(context, "player");
- getConfig().sender.addImmediateSendTask("/party kick " + player);
- return 1;
- }))).then(ClientCommandManager.literal("kickoffline").executes((context) -> {
- getConfig().sender.addImmediateSendTask("/party kickoffline");
- return 1;
- })).then(ClientCommandManager.literal("leave").executes((context) -> {
- getConfig().sender.addImmediateSendTask("/party leave");
- return 1;
- })).then(ClientCommandManager.literal("list").executes((context) -> {
- getConfig().sender.addImmediateSendTask("/party list");
- return 1;
- })).then(ClientCommandManager.literal("mute").executes((context) -> {
- getConfig().sender.addImmediateSendTask("/party mute");
- return 1;
- })).then(ClientCommandManager.literal("poll").then(ClientCommandManager.argument("question/answer/answer/answer", StringArgumentType.greedyString()).executes((context) -> {
- String questionAndAnswers = StringArgumentType.getString(context, "question answer answer (answer)");
- getConfig().sender.addImmediateSendTask("/party poll " + questionAndAnswers);
- return 1;
- }))).then(ClientCommandManager.literal("private").executes((context) -> {
- getConfig().sender.addImmediateSendTask("/party private");
- return 1;
- })).then(ClientCommandManager.literal("promote").then(ClientCommandManager.argument("player", StringArgumentType.string()).suggests((context, builder) -> {
- // Provide tab-completion options for menu subfolder
- return CommandSource.suggestMatching(getConfig().getPlayersInParty(), builder);
- }).executes((context) -> {
- String player = StringArgumentType.getString(context, "player");
- getConfig().sender.addImmediateSendTask("/party promote " + player);
- return 1;
- }))).then(ClientCommandManager.literal("setting").then(ClientCommandManager.literal("allinvite")).executes((context) -> {
- String setting = StringArgumentType.getString(context, "setting");
- getConfig().sender.addImmediateSendTask("/party setting " + setting);
- return 1;
- })
-
- ).then(ClientCommandManager.literal("transfer").then(ClientCommandManager.argument("player", StringArgumentType.string()).suggests((context, builder) -> {
- // Provide tab-completion options for menu subfolder
- return CommandSource.suggestMatching(getConfig().getPlayersInParty(), builder);
- }).executes((context) -> {
- String player = StringArgumentType.getString(context, "player");
- getConfig().sender.addImmediateSendTask("/party transfer " + player);
- return 1;
- }))).then(ClientCommandManager.literal("warp").executes((context) -> {
- getConfig().sender.addImmediateSendTask("/party warp");
- return 1;
- })).executes(context -> {
- getConfig().sender.addImmediateSendTask("/p");
- return 1;
- }));
- }); //party test
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
- dispatcher.register(
- ClientCommandManager.literal("goblinraid")
- .executes((context) -> {
- bbserver.sendMessage("?dwevent goblinraid");
- return 1;
- })
- );
+// event.register((dispatcher, registryAccess) -> {
+// dispatcher.register(ClientCommandManager.literal("hp").then(ClientCommandManager.literal("accept").then(ClientCommandManager.argument("player", StringArgumentType.string()).executes((context) -> {
+// String player = StringArgumentType.getString(context, "player");
+// getConfig().sender.addImmediateSendTask("/party accept " + player);
+// return 1;
+// }))).then(ClientCommandManager.literal("chat").executes((context) -> {
+// getConfig().sender.addImmediateSendTask("/party chat");
+// return 1;
+// })).then(ClientCommandManager.literal("demote").then(ClientCommandManager.argument("player", StringArgumentType.string()).suggests((context, builder) -> {
+// // Provide tab-completion options for menu subfolder
+// return CommandSource.suggestMatching(getConfig().getPlayersInParty(), builder);
+// }).executes((context) -> {
+// String player = StringArgumentType.getString(context, "player");
+// getConfig().sender.addImmediateSendTask("/party demote " + player);
+// return 1;
+// }))).then(ClientCommandManager.literal("disband").executes((context) -> {
+// getConfig().sender.addImmediateSendTask("/party disband");
+// return 1;
+// })).then(ClientCommandManager.literal("kick").then(ClientCommandManager.argument("player", StringArgumentType.string()).suggests((context, builder) -> {
+// // Provide tab-completion options for menu subfolder
+// return CommandSource.suggestMatching(getConfig().getPlayersInParty(), builder);
+// }).executes((context) -> {
+// String player = StringArgumentType.getString(context, "player");
+// getConfig().sender.addImmediateSendTask("/party kick " + player);
+// return 1;
+// }))).then(ClientCommandManager.literal("kickoffline").executes((context) -> {
+// getConfig().sender.addImmediateSendTask("/party kickoffline");
+// return 1;
+// })).then(ClientCommandManager.literal("leave").executes((context) -> {
+// getConfig().sender.addImmediateSendTask("/party leave");
+// return 1;
+// })).then(ClientCommandManager.literal("list").executes((context) -> {
+// getConfig().sender.addImmediateSendTask("/party list");
+// return 1;
+// })).then(ClientCommandManager.literal("mute").executes((context) -> {
+// getConfig().sender.addImmediateSendTask("/party mute");
+// return 1;
+// })).then(ClientCommandManager.literal("poll").then(ClientCommandManager.argument("question/answer/answer/answer", StringArgumentType.greedyString()).executes((context) -> {
+// String questionAndAnswers = StringArgumentType.getString(context, "question answer answer (answer)");
+// getConfig().sender.addImmediateSendTask("/party poll " + questionAndAnswers);
+// return 1;
+// }))).then(ClientCommandManager.literal("private").executes((context) -> {
+// getConfig().sender.addImmediateSendTask("/party private");
+// return 1;
+// })).then(ClientCommandManager.literal("promote").then(ClientCommandManager.argument("player", StringArgumentType.string()).suggests((context, builder) -> {
+// // Provide tab-completion options for menu subfolder
+// return CommandSource.suggestMatching(getConfig().getPlayersInParty(), builder);
+// }).executes((context) -> {
+// String player = StringArgumentType.getString(context, "player");
+// getConfig().sender.addImmediateSendTask("/party promote " + player);
+// return 1;
+// }))).then(ClientCommandManager.literal("setting").then(ClientCommandManager.literal("allinvite")).executes((context) -> {
+// String setting = StringArgumentType.getString(context, "setting");
+// getConfig().sender.addImmediateSendTask("/party setting " + setting);
+// return 1;
+// })
+//
+// ).then(ClientCommandManager.literal("transfer").then(ClientCommandManager.argument("player", StringArgumentType.string()).suggests((context, builder) -> {
+// // Provide tab-completion options for menu subfolder
+// return CommandSource.suggestMatching(getConfig().getPlayersInParty(), builder);
+// }).executes((context) -> {
+// String player = StringArgumentType.getString(context, "player");
+// getConfig().sender.addImmediateSendTask("/party transfer " + player);
+// return 1;
+// }))).then(ClientCommandManager.literal("warp").executes((context) -> {
+// getConfig().sender.addImmediateSendTask("/party warp");
+// return 1;
+// })).executes(context -> {
+// getConfig().sender.addImmediateSendTask("/p");
+// return 1;
+// }));
+// }); //party test
+ event.register((dispatcher, registryAccess) -> {
+ miningEvent(dispatcher, "goblinraid", MiningEvents.GOBLIN_RAID);
});/*goblinraid*/
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
- dispatcher.register(
- ClientCommandManager.literal("2xpowder")
- .executes((context) -> {
- bbserver.sendMessage("?dwevent 2xpowder");
- return 1;
- })
- );
+ event.register((dispatcher, registryAccess) -> {
+ miningEvent(dispatcher, "2xpowder", MiningEvents.DOUBLE_POWDER);
});/*2xpowder*/
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
- dispatcher.register(
- ClientCommandManager.literal("bettertogether")
- .executes((context) -> {
- bbserver.sendMessage("?dwevent bettertogether");
- return 1;
- })
- );
+ event.register((dispatcher, registryAccess) -> {
+ miningEvent(dispatcher, "bettertogether", MiningEvents.BETTER_TOGETHER);
});/*b2g*/
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
- dispatcher.register(
- ClientCommandManager.literal("raffle")
- .executes((context) -> {
- bbserver.sendMessage("?dwevent raffle");
- return 1;
- })
- );
+ event.register((dispatcher, registryAccess) -> {
+ miningEvent(dispatcher, "raffle", MiningEvents.RAFFLE);
});/*raffle*/
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
- dispatcher.register(
- ClientCommandManager.literal("gonewiththewind")
- .executes((context) -> {
- bbserver.sendMessage("?dwevent gonewiththewind");
- return 1;
- })
- );
+ event.register((dispatcher, registryAccess) -> {
+ miningEvent(dispatcher, "gonewiththewind", MiningEvents.GONE_WITH_THE_WIND);
+ });/*gonewiththewind*/
+ event.register((dispatcher, registryAccess) -> {
+ miningEvent(dispatcher, "mithrilgourmand", MiningEvents.MITHRIL_GOURMAND);
});/*gonewiththewind*/
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
+ event.register((dispatcher, registryAccess) -> {
dispatcher.register(ClientCommandManager.literal("chchest")
.then(ClientCommandManager.argument("Item", StringArgumentType.string())
.suggests((context, builder) -> {
- return CommandSource.suggestMatching(new String[]{"PrehistoricEgg", "Pickonimbus2000", "ElectronTransmitter", "FTX3070", "RobotronReflector", "ControlSwitch", "SyntheticHeart", "SuperliteMotor", "BlueGoblinEgg", "YellowGoblinEgg", "FlawlessAmberGemstone", "FlawlessJadeGemstone", "FlawlessSapphireGemstone", "FlawlessRubyGemstone", "FlawlessAmethystGemstone", "JungleHeart", "FlawlessTopazGemstone", "FlawlessJasperGemstone"}, builder);
+ String[] items = new String[]{"PrehistoricEgg", "Pickonimbus2000", "ElectronTransmitter", "FTX3070", "RobotronReflector", "ControlSwitch", "SyntheticHeart", "SuperliteMotor", "BlueGoblinEgg", "YellowGoblinEgg", "FlawlessAmberGemstone", "FlawlessJadeGemstone", "FlawlessSapphireGemstone", "FlawlessRubyGemstone", "FlawlessAmethystGemstone", "JungleHeart", "FlawlessTopazGemstone", "FlawlessJasperGemstone"};
+ String input = builder.getRemaining().toLowerCase();
+ int lastSemicolonIndex = input.lastIndexOf(";");
+ List<String> suggestions = new ArrayList<>();
+ if (lastSemicolonIndex >= 0) {
+ String inputBeforeSemicolon = input.substring(0, lastSemicolonIndex + 1); // Include the semicolon
+
+ for (String item : items) {
+ suggestions.add(inputBeforeSemicolon + item);
+ }
+ }
+ return CommandSource.suggestMatching(suggestions, builder);
})
.then(ClientCommandManager.argument("X", IntegerArgumentType.integer())
.then(ClientCommandManager.argument("Y", IntegerArgumentType.integer())
.then(ClientCommandManager.argument("Z", IntegerArgumentType.integer())
- .then(ClientCommandManager.argument("ContactWay", StringArgumentType.greedyString())
+ .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);
}))
.executes((context) -> {
- String destination = StringArgumentType.getString(context, "Item");
+ String item = StringArgumentType.getString(context, "Item");
int x = IntegerArgumentType.getInteger(context, "X");
int y = IntegerArgumentType.getInteger(context, "Y");
int z = IntegerArgumentType.getInteger(context, "Z");
String contactWay = StringArgumentType.getString(context, "ContactWay");
- String combinedString = "?chchest " + destination + " " + x + " " + y + " " + z + " " + contactWay;
- bbserver.sendMessage(combinedString);
+ bbserver.sendPacket(new ChChestPackage("", ChChestItems.getItem(item.split(";")), x + "" + y + "" + z, contactWay, ""));
return 1;
}
)
@@ -182,7 +177,7 @@ public class CommandsOLD {
)
);
}); /*chchest*/
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
+ event.register((dispatcher, registryAccess) -> {
dispatcher.register(
ClientCommandManager.literal("bbserver")
.then(ClientCommandManager.argument("Message", StringArgumentType.greedyString())
@@ -190,7 +185,8 @@ public class CommandsOLD {
String message = StringArgumentType.getString(context, "Message");
if (message.equals("bb:reconnect")) {
BBsentials.connectToBBserver();
- } else {
+ }
+ else {
BBsentials.bbserver.sendMessage(message);
}
return 1;
@@ -198,33 +194,33 @@ public class CommandsOLD {
)
);
});/*BBserver*/
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
+ event.register((dispatcher, registryAccess) -> {
dispatcher.register(
ClientCommandManager.literal("bc")
.then(ClientCommandManager.argument("Message to Bingo Chat", StringArgumentType.greedyString())
.executes((context) -> {
String message = StringArgumentType.getString(context, "Message to Bingo Chat");
- sendCommand("?bingochat " + message);
+ sendPacket(new BingoChatMessagePacket("", "", message, 0));
return 1;
})
)
);
});/*BincoChatShort*/
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
+ event.register((dispatcher, registryAccess) -> {
dispatcher.register(
ClientCommandManager.literal("bingochat")
.then(ClientCommandManager.argument("Message to Bingo Chat", StringArgumentType.greedyString())
.executes((context) -> {
String message = StringArgumentType.getString(context, "Message to Bingo Chat");
- sendCommand("?bingochat " + message);
+ sendPacket(new BingoChatMessagePacket("", "", message, 0));
return 1;
})
)
);
});/*BingoChatLong*/
if (getConfig().bbsentialsRoles != null) {
- if (getConfig().bbsentialsRoles.contains("mod")) {
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
+ if (getConfig().hasBBRoles("mod")) {
+ event.register((dispatcher, registryAccess) -> {
dispatcher.register(
ClientCommandManager.literal("bannounce")
.then(ClientCommandManager.argument("message", StringArgumentType.greedyString())
@@ -236,7 +232,7 @@ public class CommandsOLD {
)
);
});/*bAnnounce*/
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
+ event.register((dispatcher, registryAccess) -> {
dispatcher.register(
ClientCommandManager.literal("bmute")
.then(ClientCommandManager.argument("message", StringArgumentType.greedyString())
@@ -248,7 +244,7 @@ public class CommandsOLD {
)
);
});/*bmute*/
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
+ event.register((dispatcher, registryAccess) -> {
dispatcher.register(
ClientCommandManager.literal("bban")
.then(ClientCommandManager.argument("message", StringArgumentType.greedyString())
@@ -261,47 +257,84 @@ public class CommandsOLD {
);
});/*bmute*/
}
- if (getConfig().bbsentialsRoles.contains("splasher")) {
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
+ if (getConfig().hasBBRoles("splasher")) {
+ event.register((dispatcher, registryAccess) -> {
dispatcher.register(
ClientCommandManager.literal("splashAnnounce")
.then(ClientCommandManager.argument("Hub", IntegerArgumentType.integer(1, 28))
.then(ClientCommandManager.argument("location", StringArgumentType.string())
.suggests((context, builder) -> {
- return CommandSource.suggestMatching(new String[]{"kat","bea","guild-house"}, builder);
+ return CommandSource.suggestMatching(new String[]{"kat", "bea", "guild-house"}, builder);
})
- .then(ClientCommandManager.argument("extramessage", StringArgumentType.greedyString())
+ .then(ClientCommandManager.argument("lasswaste", StringArgumentType.string())
+ .suggests((context, builder) -> {
+ return CommandSource.suggestMatching(new String[]{"true", "false"}, builder);
+ })
+ .then(ClientCommandManager.argument("extramessage", StringArgumentType.greedyString())
+ .executes((context) -> {
+ int hub = IntegerArgumentType.getInteger(context, "Hub");
+ String extramessage = StringArgumentType.getString(context, "extramessage");
+ String location = StringArgumentType.getString(context, "location");
+ boolean lessWaste = Boolean.parseBoolean(StringArgumentType.getString(context, "lasswaste"));
+ sendPacket(new SplashNotifyPacket(hub, config.getUsername(), location, Islands.HUB, extramessage, lessWaste));
+ return 1;
+ })
+ )
.executes((context) -> {
- int hub_Number = IntegerArgumentType.getInteger(context, "Hub");
- String extramessage = StringArgumentType.getString(context, "extramessage");
- String location = StringArgumentType.getString(context, "location");
- sendCommand("?splash " + hub_Number + " " + location+" "+extramessage);
+ int hub = IntegerArgumentType.getInteger(context, "Hub");
+ String location = "bea";
+ boolean lessWaste = Boolean.parseBoolean(StringArgumentType.getString(context, "lasswaste"));
+ sendPacket(new SplashNotifyPacket(hub, config.getUsername(), location, Islands.HUB, "", lessWaste));
return 1;
})
- )
- .executes((context) -> {
- int hub_Number = IntegerArgumentType.getInteger(context, "Hub");
- String message = "";
- String location = "bea";
- sendCommand("?splash " + hub_Number + " "+location+" " + message);
- return 1;
- })
- )
+ ))
.executes((context) -> {
- int hub_Number = IntegerArgumentType.getInteger(context, "Hub");
- String message = "";
+ int hub = IntegerArgumentType.getInteger(context, "Hub");
String location = StringArgumentType.getString(context, "location");
- sendCommand("?splash " + hub_Number + " "+location+" " + message);
+ sendPacket(new SplashNotifyPacket(hub, config.getUsername(), location, Islands.HUB, "", true));
return 1;
})
+
)
);
});/*SplashAnnounce*/
- } else {
+ }
+ else {
}
}
}
- public void sendCommand(String message){
+
+ private static void simpleCommand(CommandDispatcher<FabricClientCommandSource> dispatcher, String commandName, String[] parameters) {
+ dispatcher.register(
+ ClientCommandManager.literal(commandName)
+ .executes((context) -> {
+ BBsentials.bbserver.sendPacket(new InternalCommandPacket(commandName, parameters));
+ return 1;
+ })
+ );
+ }
+
+ private static void miningEvent(CommandDispatcher<FabricClientCommandSource> dispatcher, String commandName, MiningEvents event) {
+ dispatcher.register(
+ ClientCommandManager.literal(commandName)
+ .executes((context) -> {
+ try {
+ BBsentials.bbserver.sendPacket(new MiningEventPacket(event,//TODO get the island
+ config.getUsername(), Islands.HUB));
+ } catch (Exception e) {
+ Chat.sendPrivateMessageToSelf("§c" + e.getMessage());
+ }
+ return 1;
+ })
+ );
+ }
+
+
+ public void sendCommand(String message) {
BBsentials.bbserver.sendCommand(message);
}
+
+ public <E extends AbstractPacket> void sendPacket(E packet) {
+ BBsentials.bbserver.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 35ba61f..131b067 100644
--- a/src/main/java/de/hype/bbsentials/client/Config.java
+++ b/src/main/java/de/hype/bbsentials/client/Config.java
@@ -15,6 +15,7 @@ import java.util.ArrayList;
public class Config implements Serializable {
// Helper class for sending chat messages
+ public int version = 1;
public transient final Sender sender = new Sender();
public transient boolean highlightitem = false;
@@ -28,13 +29,14 @@ public class Config implements Serializable {
private transient boolean isLeader;
private transient String alreadyReported = "";
private String bbServerURL = "static.204.177.34.188.clients.your-server.de";
- public String bbsentialsRoles = "";
+ public String[] bbsentialsRoles = {""};
public static ArrayList<String> partyMembers = new ArrayList<>();
// Set via load / default
private String bbsentialsCommandPrefix = ".";
private String apiKey = "";
private boolean leaveDungeonAutomatically;
+ public boolean showBingoChat = true;
private boolean allowBBinviteMe = true;
private boolean leaveKuudraAutomatically;
private boolean devMode = false;
@@ -42,6 +44,8 @@ public class Config implements Serializable {
private boolean acceptReparty;
private String nickname;
private String getNotifForParty;
+ private final int apiVersion = 1;
+ public transient ToDisplayConfig toDisplayConfig = ToDisplayConfig.loadFromFile();
// Set default attribute values
private void setDefaults() {
@@ -146,16 +150,22 @@ public class Config implements Serializable {
} catch (IOException e) {
e.printStackTrace();
settings = new Config(); // Use default values if loading fails
+ settings.save();
+ }catch (IllegalStateException e){
+ System.out.println("Error loading config. Resetting it.");
+ settings = new Config();
+ settings.save();
}
}
else {
settings = new Config(); // Use default values if the file doesn't exist
settings.username = MinecraftClient.getInstance().player.getName().getString();
}
- if (!settings.bbsentialsRoles.contains("dev")) {
+ if (!settings.hasBBRoles("dev")) {
settings.detailedDevMode = false;
settings.devMode = false;
}
+ settings.save();
return settings;
}
@@ -244,7 +254,7 @@ public class Config implements Serializable {
return isBefore || isInRange;
}
- public boolean overrideBingoTime() {
+ public boolean overrideBingoTime() {
return overrideBingoTime;
}
@@ -263,4 +273,21 @@ public class Config implements Serializable {
public void setLastChatPromptAnswer(String lastChatPromptAnswer) {
this.lastChatPromptAnswer = lastChatPromptAnswer;