aboutsummaryrefslogtreecommitdiff
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
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.
-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())
.then(ClientCommandManager.argument("Y", IntegerArgumentType.integer())
.then(ClientCommandManager.argument("Z", IntegerArgumentType.integer())
- .then(ClientCommandManager.argument("ContactWay", StringArgumentType.greedyString())
+ .t