aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kubatech/commands
diff options
context:
space:
mode:
authorJakub <53441451+kuba6000@users.noreply.github.com>2023-06-15 17:53:16 +0200
committerGitHub <noreply@github.com>2023-06-15 17:53:16 +0200
commitcb383c824c3f799e678fb98f29661d79b5a13836 (patch)
treec27ec3672eb0cb1726565bf28ae2655404496231 /src/main/java/kubatech/commands
parentb2c2a6dfe91696d4ecada95e5e43806ddb144ece (diff)
downloadGT5-Unofficial-cb383c824c3f799e678fb98f29661d79b5a13836.tar.gz
GT5-Unofficial-cb383c824c3f799e678fb98f29661d79b5a13836.tar.bz2
GT5-Unofficial-cb383c824c3f799e678fb98f29661d79b5a13836.zip
Use mixins accessors + some misc fixes (#77)
* Change reflections to mixins * Wrap witchery checking * Remove more repeating code * hmm * test generation * test * client sided * Update CommandCustomDrops.java * Update MobRecipeLoader.java * Save to static variable * Imports * Log message * Convert InfernalHelper to mixin accessors * Update build.gradle * One more * Return class nodes to optimize * Translations mixin * Automatically add commands * Fixes * Fix https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/12021 * Update kubatech.java * Update CommonProxy.java * Unnecessary qualified reference * Simplify ItemUtils * Check if single player diffrently * Remove accessor for infernal-mobs
Diffstat (limited to 'src/main/java/kubatech/commands')
-rw-r--r--src/main/java/kubatech/commands/CommandBees.java6
-rw-r--r--src/main/java/kubatech/commands/CommandConfig.java1
-rw-r--r--src/main/java/kubatech/commands/CommandCustomDrops.java67
-rw-r--r--src/main/java/kubatech/commands/CommandHandler.java30
-rw-r--r--src/main/java/kubatech/commands/CommandHelp.java1
-rw-r--r--src/main/java/kubatech/commands/CommandTea.java1
6 files changed, 102 insertions, 4 deletions
diff --git a/src/main/java/kubatech/commands/CommandBees.java b/src/main/java/kubatech/commands/CommandBees.java
index 8d01080500..edf3b04ce6 100644
--- a/src/main/java/kubatech/commands/CommandBees.java
+++ b/src/main/java/kubatech/commands/CommandBees.java
@@ -28,7 +28,6 @@ import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.List;
-import net.minecraft.client.Minecraft;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
import net.minecraft.item.ItemStack;
@@ -40,7 +39,9 @@ import com.google.common.io.Files;
import forestry.api.apiculture.IAlleleBeeSpecies;
import forestry.api.apiculture.IBee;
import forestry.api.apiculture.IBeeGenome;
+import kubatech.api.utils.ModUtils;
+@CommandHandler.ChildCommand
public class CommandBees extends CommandBase {
@Override
@@ -62,8 +63,7 @@ public class CommandBees extends CommandBase {
@Override
public void processCommand(ICommandSender p_71515_1_, String[] p_71515_2_) {
- if (!Minecraft.getMinecraft()
- .isSingleplayer()) {
+ if (!ModUtils.isClientSided) {
p_71515_1_
.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "This command is single-player only!"));
return;
diff --git a/src/main/java/kubatech/commands/CommandConfig.java b/src/main/java/kubatech/commands/CommandConfig.java
index e4ffe9753d..cf43bc88ba 100644
--- a/src/main/java/kubatech/commands/CommandConfig.java
+++ b/src/main/java/kubatech/commands/CommandConfig.java
@@ -36,6 +36,7 @@ import kubatech.config.Config;
import kubatech.kubatech;
import kubatech.loaders.MobRecipeLoader;
+@CommandHandler.ChildCommand
public class CommandConfig extends CommandBase {
enum Translations {
diff --git a/src/main/java/kubatech/commands/CommandCustomDrops.java b/src/main/java/kubatech/commands/CommandCustomDrops.java
new file mode 100644
index 0000000000..80148eb796
--- /dev/null
+++ b/src/main/java/kubatech/commands/CommandCustomDrops.java
@@ -0,0 +1,67 @@
+/*
+ * spotless:off
+ * KubaTech - Gregtech Addon
+ * Copyright (C) 2022 - 2023 kuba6000
+ *
+ * This library 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.
+ *
+ * This library 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 this library. If not, see <https://www.gnu.org/licenses/>.
+ * spotless:on
+ */
+
+package kubatech.commands;
+
+import java.io.File;
+
+import net.minecraft.command.CommandBase;
+import net.minecraft.command.ICommandSender;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.EnumChatFormatting;
+
+import kubatech.api.utils.ModUtils;
+import kubatech.loaders.MobRecipeLoader;
+
+@CommandHandler.ChildCommand
+public class CommandCustomDrops extends CommandBase {
+
+ @Override
+ public String getCommandName() {
+ return "customdrops";
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender p_71518_1_) {
+ return "customdrops";
+ }
+
+ @Override
+ public int getRequiredPermissionLevel() {
+ return 4;
+ }
+
+ @Override
+ public void processCommand(ICommandSender p_71515_1_, String[] p_71515_2_) {
+
+ if (!ModUtils.isClientSided) {
+ p_71515_1_
+ .addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "This command is single-player only!"));
+ return;
+ }
+
+ File f = MobRecipeLoader.makeCustomDrops();
+
+ if (f == null) {
+ p_71515_1_.addChatMessage(
+ new ChatComponentText(EnumChatFormatting.RED + "There was an error! Look in the console"));
+ } else p_71515_1_.addChatMessage(new ChatComponentText(f.getAbsolutePath()));
+ }
+}
diff --git a/src/main/java/kubatech/commands/CommandHandler.java b/src/main/java/kubatech/commands/CommandHandler.java
index 0daea862ca..89f1db7429 100644
--- a/src/main/java/kubatech/commands/CommandHandler.java
+++ b/src/main/java/kubatech/commands/CommandHandler.java
@@ -25,6 +25,10 @@ import static kubatech.commands.CommandHandler.Translations.GENERIC_HELP;
import static kubatech.commands.CommandHandler.Translations.INVALID;
import static kubatech.commands.CommandHandler.Translations.USAGE;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
@@ -38,6 +42,8 @@ import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
+import kubatech.kubatech;
+
public class CommandHandler extends CommandBase {
enum Translations {
@@ -121,7 +127,29 @@ public class CommandHandler extends CommandBase {
return true;
}
- public void addCommand(ICommand command) {
+ public static void addCommand(ICommand command) {
commands.put(command.getCommandName(), command);
}
+
+ static {
+ String ChildCommandDesc = "L" + ChildCommand.class.getName()
+ .replace(".", "/") + ";";
+ kubatech.myClasses.stream()
+ .filter(
+ clazz -> clazz.invisibleAnnotations != null && clazz.invisibleAnnotations.stream()
+ .anyMatch(ann -> ann.desc.equals(ChildCommandDesc)))
+ .forEach(clazz -> {
+ try {
+ addCommand(
+ (ICommand) Class.forName(clazz.name.replace("/", "."))
+ .newInstance());
+ } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
+ throw new RuntimeException(e);
+ }
+ });
+ }
+
+ @Target(ElementType.TYPE)
+ @Retention(RetentionPolicy.CLASS)
+ public @interface ChildCommand {}
}
diff --git a/src/main/java/kubatech/commands/CommandHelp.java b/src/main/java/kubatech/commands/CommandHelp.java
index 47a448afe1..d7e9fbee59 100644
--- a/src/main/java/kubatech/commands/CommandHelp.java
+++ b/src/main/java/kubatech/commands/CommandHelp.java
@@ -28,6 +28,7 @@ import net.minecraft.command.ICommandSender;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.StatCollector;
+@CommandHandler.ChildCommand
public class CommandHelp extends CommandBase {
enum Translations {
diff --git a/src/main/java/kubatech/commands/CommandTea.java b/src/main/java/kubatech/commands/CommandTea.java
index 70a924d9c7..64412f8ef3 100644
--- a/src/main/java/kubatech/commands/CommandTea.java
+++ b/src/main/java/kubatech/commands/CommandTea.java
@@ -38,6 +38,7 @@ import net.minecraft.util.StatCollector;
import kubatech.api.helpers.UUIDFinder;
import kubatech.api.tea.TeaNetwork;
+@CommandHandler.ChildCommand
public class CommandTea extends CommandBase {
enum Translations {