aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java16
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/commands/dev/EnableStorageCommand.java39
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/commands/dev/NullzeeSphereCommand.java61
-rw-r--r--src/main/kotlin/io/github/moulberry/notenoughupdates/commands/dev/SimpleDevCommands.kt53
-rw-r--r--src/main/kotlin/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.kt11
-rw-r--r--src/main/kotlin/io/github/moulberry/notenoughupdates/util/brigadier/dsl.kt4
6 files changed, 64 insertions, 120 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java
index 4bf3380c..812aca9d 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java
@@ -22,21 +22,13 @@ package io.github.moulberry.notenoughupdates.commands;
import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
import io.github.moulberry.notenoughupdates.commands.dev.DiagCommand;
import io.github.moulberry.notenoughupdates.commands.dev.DungeonWinTestCommand;
-import io.github.moulberry.notenoughupdates.commands.dev.EnableStorageCommand;
-import io.github.moulberry.notenoughupdates.commands.dev.NullzeeSphereCommand;
import io.github.moulberry.notenoughupdates.commands.dev.PackDevCommand;
-import io.github.moulberry.notenoughupdates.commands.dev.SimpleDevCommands;
import io.github.moulberry.notenoughupdates.commands.dev.ResetRepoCommand;
import io.github.moulberry.notenoughupdates.commands.dev.StatsCommand;
import io.github.moulberry.notenoughupdates.commands.dungeon.DhCommand;
import io.github.moulberry.notenoughupdates.commands.dungeon.DnCommand;
import io.github.moulberry.notenoughupdates.commands.dungeon.JoinDungeonCommand;
import io.github.moulberry.notenoughupdates.commands.dungeon.MapCommand;
-import io.github.moulberry.notenoughupdates.commands.help.FeaturesCommand;
-import io.github.moulberry.notenoughupdates.commands.help.HelpCommand;
-import io.github.moulberry.notenoughupdates.commands.help.LinksCommand;
-import io.github.moulberry.notenoughupdates.commands.help.SettingsCommand;
-import io.github.moulberry.notenoughupdates.commands.help.StorageViewerWhyCommand;
import io.github.moulberry.notenoughupdates.commands.misc.AhCommand;
import io.github.moulberry.notenoughupdates.commands.misc.CalculatorCommand;
import io.github.moulberry.notenoughupdates.commands.misc.CalendarCommand;
@@ -59,21 +51,13 @@ public class Commands {
public Commands() {
// Help Commands
- ClientCommandHandler.instance.registerCommand(new LinksCommand());
- ClientCommandHandler.instance.registerCommand(new HelpCommand());
- ClientCommandHandler.instance.registerCommand(new StorageViewerWhyCommand());
- ClientCommandHandler.instance.registerCommand(new FeaturesCommand());
- ClientCommandHandler.instance.registerCommand(new SettingsCommand());
// Dev Commands
ClientCommandHandler.instance.registerCommand(new PackDevCommand());
ClientCommandHandler.instance.registerCommand(new DungeonWinTestCommand());
ClientCommandHandler.instance.registerCommand(new StatsCommand());
- ClientCommandHandler.instance.registerCommand(new NullzeeSphereCommand());
ClientCommandHandler.instance.registerCommand(new DiagCommand());
- ClientCommandHandler.instance.registerCommand(new SimpleDevCommands());
ClientCommandHandler.instance.registerCommand(new ResetRepoCommand());
- ClientCommandHandler.instance.registerCommand(new EnableStorageCommand());
// Profile Commands
ClientCommandHandler.instance.registerCommand(new PeekCommand());
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/EnableStorageCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/EnableStorageCommand.java
deleted file mode 100644
index 3415b030..00000000
--- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/EnableStorageCommand.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2022 NotEnoughUpdates contributors
- *
- * This file is part of NotEnoughUpdates.
- *
- * NotEnoughUpdates is free software: you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation, either
- * version 3 of the License, or (at your option) any later version.
- *
- * NotEnoughUpdates is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with NotEnoughUpdates. If not, see <https://www.gnu.org/licenses/>.
- */
-
-package io.github.moulberry.notenoughupdates.commands.dev;
-
-import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
-import io.github.moulberry.notenoughupdates.commands.ClientCommandBase;
-import net.minecraft.command.CommandException;
-import net.minecraft.command.ICommandSender;
-
-public class EnableStorageCommand extends ClientCommandBase {
-
- public EnableStorageCommand() {
- super("neuenablestorage");
- }
-
- @Override
- public void processCommand(ICommandSender sender, String[] args) throws CommandException {
- NotEnoughUpdates.INSTANCE.config.storageGUI.enableStorageGUI3 = true;
- NotEnoughUpdates.INSTANCE.saveConfig();
- }
-
-}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/NullzeeSphereCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/NullzeeSphereCommand.java
deleted file mode 100644
index 3a9ce90f..00000000
--- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/NullzeeSphereCommand.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2022 NotEnoughUpdates contributors
- *
- * This file is part of NotEnoughUpdates.
- *
- * NotEnoughUpdates is free software: you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation, either
- * version 3 of the License, or (at your option) any later version.
- *
- * NotEnoughUpdates is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with NotEnoughUpdates. If not, see <https://www.gnu.org/licenses/>.
- */
-
-package io.github.moulberry.notenoughupdates.commands.dev;
-
-import io.github.moulberry.notenoughupdates.commands.ClientCommandBase;
-import io.github.moulberry.notenoughupdates.miscfeatures.NullzeeSphere;
-import net.minecraft.client.entity.EntityPlayerSP;
-import net.minecraft.command.CommandException;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.util.BlockPos;
-import net.minecraft.util.ChatComponentText;
-import net.minecraft.util.EnumChatFormatting;
-
-public class NullzeeSphereCommand extends ClientCommandBase {
-
- public NullzeeSphereCommand() {
- super("neuzeesphere");
- }
-
- @Override
- public void processCommand(ICommandSender sender, String[] args) throws CommandException {
- if (args.length != 1) {
- sender.addChatMessage(new ChatComponentText(
- EnumChatFormatting.RED + "Usage: /neuzeesphere [on/off] or /neuzeesphere (radius) or /neuzeesphere setCenter"));
- return;
- }
- if (args[0].equalsIgnoreCase("on")) {
- NullzeeSphere.enabled = true;
- } else if (args[0].equalsIgnoreCase("off")) {
- NullzeeSphere.enabled = false;
- } else if (args[0].equalsIgnoreCase("setCenter")) {
- EntityPlayerSP p = ((EntityPlayerSP) sender);
- NullzeeSphere.centerPos = new BlockPos(p.posX, p.posY, p.posZ);
- NullzeeSphere.overlayVBO = null;
- } else {
- try {
- NullzeeSphere.size = Float.parseFloat(args[0]);
- NullzeeSphere.overlayVBO = null;
- } catch (Exception e) {
- sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Can't parse radius: " + args[0]));
- }
- }
- }
-}
diff --git a/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/dev/SimpleDevCommands.kt b/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/dev/SimpleDevCommands.kt
index 51e00c02..a42fc412 100644
--- a/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/dev/SimpleDevCommands.kt
+++ b/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/dev/SimpleDevCommands.kt
@@ -19,15 +19,17 @@
package io.github.moulberry.notenoughupdates.commands.dev
+import com.mojang.brigadier.arguments.FloatArgumentType.floatArg
import com.mojang.brigadier.arguments.StringArgumentType.string
import io.github.moulberry.notenoughupdates.NotEnoughUpdates
import io.github.moulberry.notenoughupdates.autosubscribe.NEUAutoSubscribe
import io.github.moulberry.notenoughupdates.dungeons.DungeonWin
import io.github.moulberry.notenoughupdates.events.RegisterBrigadierCommandEvent
-import io.github.moulberry.notenoughupdates.util.brigadier.get
-import io.github.moulberry.notenoughupdates.util.brigadier.reply
-import io.github.moulberry.notenoughupdates.util.brigadier.thenArgumentExecute
-import io.github.moulberry.notenoughupdates.util.brigadier.thenExecute
+import io.github.moulberry.notenoughupdates.miscfeatures.NullzeeSphere
+import io.github.moulberry.notenoughupdates.util.brigadier.*
+import net.minecraft.client.entity.EntityPlayerSP
+import net.minecraft.event.ClickEvent
+import net.minecraft.util.BlockPos
import net.minecraft.util.ResourceLocation
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
@@ -50,5 +52,48 @@ class SimpleDevCommands {
reply("Changed the dungeon win display")
}
}
+ event.command("neuenablestorage") {
+ thenLiteralExecute("disable") {
+ NotEnoughUpdates.INSTANCE.config.storageGUI.enableStorageGUI3 = true
+ NotEnoughUpdates.INSTANCE.saveConfig()
+ reply("Disabled the NEU storage overlay. Click here to enable again") {
+ chatStyle.chatClickEvent = ClickEvent(
+ ClickEvent.Action.SUGGEST_COMMAND,
+ "/neuenablestorage"
+ )
+ }
+ }
+ thenExecute {
+ NotEnoughUpdates.INSTANCE.config.storageGUI.enableStorageGUI3 = true
+ NotEnoughUpdates.INSTANCE.saveConfig()
+ reply("Enabled the NEU storage overlay. Click here to disable again") {
+ chatStyle.chatClickEvent = ClickEvent(
+ ClickEvent.Action.SUGGEST_COMMAND,
+ "/neuenablestorage disable"
+ )
+ }
+ }
+ }
+ event.command("neuzeesphere") {
+ thenLiteralExecute("on") {
+ NullzeeSphere.enabled = true
+ reply("Enabled nullzee sphere")
+ }
+ thenLiteralExecute("off") {
+ NullzeeSphere.enabled = false
+ reply("Disabled nullzee sphere")
+ }
+ thenLiteralExecute("setcenter") {
+ val p = source as EntityPlayerSP
+ NullzeeSphere.centerPos = BlockPos(p.posX, p.posY, p.posZ)
+ NullzeeSphere.overlayVBO = null
+ reply("Set center to ${NullzeeSphere.centerPos}")
+ }
+ thenArgumentExecute("radius", floatArg(0F)) { size ->
+ NullzeeSphere.size = this[size]
+ NullzeeSphere.overlayVBO = null
+ reply("Set size to ${this[size]}")
+ }
+ }
}
}
diff --git a/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.kt b/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.kt
index a3e730cf..0b7ad503 100644
--- a/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.kt
+++ b/src/main/kotlin/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.kt
@@ -19,10 +19,13 @@
package io.github.moulberry.notenoughupdates.commands.help
+import com.mojang.brigadier.arguments.StringArgumentType.string
import io.github.moulberry.notenoughupdates.NotEnoughUpdates
import io.github.moulberry.notenoughupdates.autosubscribe.NEUAutoSubscribe
import io.github.moulberry.notenoughupdates.events.RegisterBrigadierCommandEvent
+import io.github.moulberry.notenoughupdates.util.brigadier.get
import io.github.moulberry.notenoughupdates.util.brigadier.reply
+import io.github.moulberry.notenoughupdates.util.brigadier.thenArgumentExecute
import io.github.moulberry.notenoughupdates.util.brigadier.thenExecute
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
@@ -74,6 +77,14 @@ class HelpCommand {
@SubscribeEvent
fun onCommands(event: RegisterBrigadierCommandEvent) {
event.command("neuhelp") {
+ thenArgumentExecute("command", string()) { commandName ->
+ val commandNode = event.dispatcher.root.getChild(this[commandName])
+ if (commandNode == null) {
+ reply("Could not find NEU command with name ${this[commandName]}")
+ return@thenArgumentExecute
+ }
+ reply(event.dispatcher.getAllUsage(commandNode, source, true).joinToString("\n"))
+ }
thenExecute {
neuHelpMessages.forEach(::reply)
if (NotEnoughUpdates.INSTANCE.config.hidden.dev)
diff --git a/src/main/kotlin/io/github/moulberry/notenoughupdates/util/brigadier/dsl.kt b/src/main/kotlin/io/github/moulberry/notenoughupdates/util/brigadier/dsl.kt
index 841322b5..5c802c64 100644
--- a/src/main/kotlin/io/github/moulberry/notenoughupdates/util/brigadier/dsl.kt
+++ b/src/main/kotlin/io/github/moulberry/notenoughupdates/util/brigadier/dsl.kt
@@ -83,6 +83,10 @@ fun <T : ICommandSender, C : CommandContext<T>> C.reply(text: String) {
source.addChatMessage(ChatComponentText(text))
}
+fun <T : ICommandSender, C : CommandContext<T>> C.reply(text: String, block: ChatComponentText.() -> Unit) {
+ source.addChatMessage(ChatComponentText(text).also(block))
+}
+
operator fun <T : Any, C : CommandContext<*>> C.get(arg: TypeSafeArg<T>): T {
return arg.get(this)
}