aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/hype/bbsentials/chat/Chat.java66
-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
-rw-r--r--src/main/java/de/hype/bbsentials/communication/BBsentialConnection.java283
-rw-r--r--src/main/java/de/hype/bbsentials/constants/BBDisplayNameProvider.java23
-rw-r--r--src/main/java/de/hype/bbsentials/constants/BBDisplayNameProviderWithCustom.java6
-rw-r--r--src/main/java/de/hype/bbsentials/constants/annotations/BBSelectableChChestPingRole.java11
-rw-r--r--src/main/java/de/hype/bbsentials/constants/annotations/BBSelectableMiningEventPingRole.java11
-rw-r--r--src/main/java/de/hype/bbsentials/constants/annotations/BBSelectableRole.java12
-rw-r--r--src/main/java/de/hype/bbsentials/constants/enviromentShared/AuthenticationConstants.java7
-rw-r--r--src/main/java/de/hype/bbsentials/constants/enviromentShared/ChChestItem.java46
-rw-r--r--src/main/java/de/hype/bbsentials/constants/enviromentShared/ChChestItems.java87
-rw-r--r--src/main/java/de/hype/bbsentials/constants/enviromentShared/EnumUtils.java209
-rw-r--r--src/main/java/de/hype/bbsentials/constants/enviromentShared/InternalReasonConstants.java14
-rw-r--r--src/main/java/de/hype/bbsentials/constants/enviromentShared/Islands.java39
-rw-r--r--src/main/java/de/hype/bbsentials/constants/enviromentShared/MiningEvents.java40
-rw-r--r--src/main/java/de/hype/bbsentials/packets/AbstractPacket.java67
-rw-r--r--src/main/java/de/hype/bbsentials/packets/EnviromentPacketConfig.java7
-rw-r--r--src/main/java/de/hype/bbsentials/packets/Packet.java26
-rw-r--r--src/main/java/de/hype/bbsentials/packets/PacketManager.java48
-rw-r--r--src/main/java/de/hype/bbsentials/packets/PacketUtils.java122
-rw-r--r--src/main/java/de/hype/bbsentials/packets/packets/BingoChatMessagePacket.java26
-rw-r--r--src/main/java/de/hype/bbsentials/packets/packets/BroadcastMessagePacket.java17
-rw-r--r--src/main/java/de/hype/bbsentials/packets/packets/ChChestPackage.java24
-rw-r--r--src/main/java/de/hype/bbsentials/packets/packets/DisconnectPacket.java20
-rw-r--r--src/main/java/de/hype/bbsentials/packets/packets/DisplayMessagePacket.java14
-rw-r--r--src/main/java/de/hype/bbsentials/packets/packets/DisplayTellrawMessagePacket.java13
-rw-r--r--src/main/java/de/hype/bbsentials/packets/packets/InternalCommandPacket.java18
-rw-r--r--src/main/java/de/hype/bbsentials/packets/packets/InvalidCommandFeedbackPacket.java25
-rw-r--r--src/main/java/de/hype/bbsentials/packets/packets/MiningEventPacket.java26
-rw-r--r--src/main/java/de/hype/bbsentials/packets/packets/RequestConnectPacket.java21
-rw-r--r--src/main/java/de/hype/bbsentials/packets/packets/SplashNotifyPacket.java26
-rw-r--r--src/main/java/de/hype/bbsentials/packets/packets/WelcomeClientPacket.java19
37 files changed, 1582 insertions, 329 deletions
diff --git a/src/main/java/de/hype/bbsentials/chat/Chat.java b/src/main/java/de/hype/bbsentials/chat/Chat.java
index 7a9c53a..00380ff 100644
--- a/src/main/java/de/hype/bbsentials/chat/Chat.java
+++ b/src/main/java/de/hype/bbsentials/chat/Chat.java
@@ -7,6 +7,7 @@ import net.fabricmc.fabric.api.client.message.v1.ClientSendMessageEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
+
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
@@ -57,13 +58,11 @@ public class Chat {
if (java.lang.reflect.Modifier.isTransient(field.getModifiers())) {
continue;
}
-
String variableName = field.getName();
String variablePackageName = clazz.getPackage().getName();
String variableClassName = clazz.getSimpleName();
- String variableInfo = variableName;
- variableInfoList.add(variableInfo);
+ variableInfoList.add(variableName);
}
return variableInfoList.toArray(new String[variableInfoList.size()]);
@@ -167,7 +166,7 @@ public class Chat {
//Handle in client
public Text handleInClient(Text messageOriginal) {
- String message = extractPlainText(messageOriginal.toString()).trim();
+ String message = messageOriginal.getString().trim();
if (getConfig().messageFromAlreadyReported(message) && getPlayerNameFromMessage(message) != " " && getPlayerNameFromMessage(message) != "") {
System.out.println("Message: " + message);
sendPrivateMessageToSelf(Formatting.RED + "B: " + message);
@@ -243,35 +242,6 @@ public class Chat {
}
}
- } //Everything containing party is processed differently (split so fewer checks)
- else if (message.contains("unlocked Wither Essence") && message.startsWith(getConfig().getUsername())) {
- if (BBsentials.getConfig().isLeader()) {
- repartyActive = true;
- sendCommand("/pl");
- }
- else {
- System.out.println("No Reparty because not leader");
- }
- if (getConfig().isLeaveDungeonAutomatically()) {
- config.sender.addSendTask("/warp dhub", 3);
- }
- }
- else if (message.contains("unlocked Crimson Essence") && message.startsWith(getConfig().getUsername())) {
- if (BBsentials.getConfig().isLeader()) {
- repartyActive = true;
- sendCommand("/pl");
- }
- else {
- System.out.println("No Reparty because not leader");
- }
- try {
- Thread.sleep(3000);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- if (getConfig().isLeaveKuudraAutomatically()) {
- sendCommand("/warp kuudra");
- }
}
else if (message.contains("bb:test")) {
sendPrivateMessageToSelf(test());
@@ -321,19 +291,7 @@ public class Chat {
}
}
}
- else if (message.equals("You laid an Egg!")) {
- Thread eggThread = new Thread(() -> {
- try {
- Thread.sleep(21000); // Wait for 21 seconds (in milliseconds)
- sendPrivateMessageToSelf("Chicken Head is ready");
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- });
-
- eggThread.start();
- }
- else if (message.contains("[OPEN MENU]") || message.contains("YES")) {
+ else if (message.contains("[OPEN MENU]") || message.contains("[YES]")) {
setChatPromtId(messageOriginal.toString());
}
@@ -535,7 +493,11 @@ public class Chat {
new Thread(new Runnable() {
@Override
public void run() {
- BBsentials.getConfig().setLastChatPromptAnswer("/cb " + finalLastPrompt1);
+ String promptCommand = "/cb " + finalLastPrompt1;
+ BBsentials.getConfig().setLastChatPromptAnswer(promptCommand);
+ if (config.isDevModeEnabled()) {
+ Chat.sendPrivateMessageToSelf("set the last prompt action too + \""+promptCommand+"\"");
+ }
try {
Thread.sleep(10 * 1000);
} catch (InterruptedException e) {
@@ -552,13 +514,17 @@ public class Chat {
new Thread(new Runnable() {
@Override
public void run() {
- BBsentials.getConfig().setLastChatPromptAnswer("/chatprompt " + finalLastPrompt + " YES");
+ String promptCommand = "/chatprompt " + finalLastPrompt + " YES";
+ getConfig().setLastChatPromptAnswer(promptCommand);
+ if (config.isDevModeEnabled()) {
+ Chat.sendPrivateMessageToSelf("set the last prompt action too + \""+promptCommand+"\"");
+ }
try {
Thread.sleep(10 * 1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
- BBsentials.getConfig().setLastChatPromptAnswer(null);
+ getConfig().setLastChatPromptAnswer(null);
return;
}
}).start();
@@ -575,4 +541,4 @@ public class Chat {
Text output = Text.Serializer.fromJson(text);
return output;
}
-} \ No newline at end of file
+}
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())
.the