aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/misc
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/misc')
-rw-r--r--src/main/java/gregtech/common/misc/GT_Command.java104
1 files changed, 87 insertions, 17 deletions
diff --git a/src/main/java/gregtech/common/misc/GT_Command.java b/src/main/java/gregtech/common/misc/GT_Command.java
index 4f6f77ea70..a91a696d37 100644
--- a/src/main/java/gregtech/common/misc/GT_Command.java
+++ b/src/main/java/gregtech/common/misc/GT_Command.java
@@ -3,20 +3,21 @@ package gregtech.common.misc;
import com.gtnewhorizon.structurelib.StructureLib;
import gregtech.GT_Mod;
import gregtech.api.enums.GT_Values;
+import gregtech.api.interfaces.IGlobalWirelessEnergy;
import gregtech.api.objects.GT_ChunkManager;
import gregtech.common.GT_Pollution;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.ChunkCoordinates;
+import net.minecraft.util.EnumChatFormatting;
import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.math.BigInteger;
+import java.util.*;
import java.util.stream.Stream;
-public final class GT_Command extends CommandBase {
+public final class GT_Command extends CommandBase implements IGlobalWirelessEnergy {
@Override
public String getCommandName() {
@@ -27,8 +28,9 @@ public final class GT_Command extends CommandBase {
public String getCommandUsage(ICommandSender sender) {
return "Usage: gt <subcommand>. Valid subcommands are: toggle, chunks, pollution.";
}
+
private void printHelp(ICommandSender sender) {
- sender.addChatMessage(new ChatComponentText("Usage: gt <toggle|chunks|pollution>"));
+ sender.addChatMessage(new ChatComponentText("Usage: gt <toggle|chunks|pollution|global_energy_add|global_energy_set|global_energy_join>"));
sender.addChatMessage(new ChatComponentText("\"toggle D1\" - toggles general.Debug (D1)"));
sender.addChatMessage(new ChatComponentText("\"toggle D2\" - toggles general.Debug2 (D2)"));
sender.addChatMessage(new ChatComponentText("\"toggle debugCleanroom\" - toggles cleanroom debug log"));
@@ -47,15 +49,21 @@ public final class GT_Command extends CommandBase {
"\"pollution <amount>\" - adds the <amount> of the pollution to the current chunk, " +
"\n if <amount> isnt specified, will add" + GT_Mod.gregtechproxy.mPollutionSmogLimit + "gibbl."
));
+ sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GOLD + " --- Global wireless EU controls ---"));
+ sender.addChatMessage(new ChatComponentText("Allows you to set the amount of EU in a users wireless network."));
+ sender.addChatMessage(new ChatComponentText("Usage: global_energy_set [Name] [EU]"));
+ sender.addChatMessage(new ChatComponentText("Allows you to add EU to a users wireless network. Also accepts negative numbers."));
+ sender.addChatMessage(new ChatComponentText("Usage: global_energy_add [Name] [EU]"));
+ sender.addChatMessage(new ChatComponentText("Allows you to join two users together into one network. Can be undone by writing the users name twice."));
+ sender.addChatMessage(new ChatComponentText("Usage: global_energy_join [User joining] [User to join]"));
}
@Override
public List addTabCompletionOptions(ICommandSender sender, String[] ss) {
List<String> l = new ArrayList<>();
- Stream<String> keywords = Arrays.stream(new String[]{"toggle", "chunks"});
String test = ss.length == 0 ? "" : ss[0].trim();
- if (ss.length == 0 || ss.length == 1 && (test.isEmpty() || Stream.of("toggle", "chunks", "pollution").anyMatch(s -> s.startsWith(test)))) {
- Stream.of("toggle", "chunks", "pollution")
+ if (ss.length == 0 || ss.length == 1 && (test.isEmpty() || Stream.of("toggle", "chunks", "pollution", "global_energy_add", "global_energy_set", "global_energy_join").anyMatch(s -> s.startsWith(test)))) {
+ Stream.of("toggle", "chunks", "pollution", "global_energy_add", "global_energy_set", "global_energy_join")
.filter(s -> test.isEmpty() || s.startsWith(test))
.forEach(l::add);
} else if (test.equals("toggle")) {
@@ -64,7 +72,6 @@ public final class GT_Command extends CommandBase {
"debugOrevein", "debugSmallOres", "debugStones", "debugChunkloaders", "debugMulti", "debugWorldData")
.filter(s -> test1.isEmpty() || s.startsWith(test1))
.forEach(l::add);
-
}
return l;
}
@@ -75,6 +82,10 @@ public final class GT_Command extends CommandBase {
printHelp(sender);
return;
}
+
+ String username;
+ String uuid;
+
switch (strings[0]) {
case "toggle":
if (strings.length < 2) {
@@ -103,20 +114,79 @@ public final class GT_Command extends CommandBase {
GT_ChunkManager.printTickets();
sender.addChatMessage(new ChatComponentText("Forced chunks logged to GregTech.log"));
break;
- case "pollution": {
+ case "pollution":
ChunkCoordinates coordinates = sender.getPlayerCoordinates();
int amount = (strings.length < 2) ? GT_Mod.gregtechproxy.mPollutionSmogLimit : Integer.parseInt(strings[1]);
GT_Pollution.addPollution(sender
- .getEntityWorld()
- .getChunkFromBlockCoords(
- coordinates.posX,
- coordinates.posZ
- ),
- amount
+ .getEntityWorld()
+ .getChunkFromBlockCoords(
+ coordinates.posX,
+ coordinates.posZ
+ ),
+ amount
);
break;
- }
+ case "global_energy_add":
+
+ username = strings[1];
+ uuid = IGlobalWirelessEnergy.super.GetUUIDFromUsername(username);
+
+ String EU_String = strings[2];
+
+ // Usage is /gt global_energy_add username EU
+
+ if (uuid.equals("")) {
+ sender.addChatMessage(new ChatComponentText("User " + username + " has no global energy network."));
+ break;
+ }
+
+ if (addEUToGlobalEnergyMap(uuid, new BigInteger(EU_String)))
+ sender.addChatMessage(new ChatComponentText("Successfully added " + EU_String + "EU to the global energy network of " + username + "."));
+ else
+ sender.addChatMessage(new ChatComponentText("Failed to add " + EU_String + "EU to the global energy map of " + username +
+ ". Insufficient energy in network. " + username + "currently has " + IGlobalWirelessEnergy.super.GetUserEU(uuid).toString() + " in their network."));
+
+ break;
+ case "global_energy_set":
+
+ // Usage is /gt global_energy_set username EU
+
+ username = strings[1];
+ uuid = IGlobalWirelessEnergy.super.GetUUIDFromUsername(username);
+
+ String EU_String_0 = strings[2];
+
+ IGlobalWirelessEnergy.super.SetUserEU(uuid, new BigInteger(EU_String_0));
+ break;
+
+ case "global_energy_join":
+
+ // Usage is /gt global_energy_join username_of_you username_to_join
+
+ String username_0 = strings[1];
+ String username_1 = strings[2];
+
+ String uuid_0 = IGlobalWirelessEnergy.super.GetUUIDFromUsername(username_0);
+ String uuid_1 = IGlobalWirelessEnergy.super.GetUUIDFromUsername(username_1);
+
+ if (uuid_0.equals("")) {
+ sender.addChatMessage(new ChatComponentText("User " + username_0 + " has no global energy network."));
+ break;
+ }
+
+ if (uuid_0.equals("")) {
+ sender.addChatMessage(new ChatComponentText("User " + username_1 + " has no global energy network."));
+ break;
+ }
+
+ IGlobalWirelessEnergy.super.JoinUserNetwork(uuid_0, uuid_1);
+
+ sender.addChatMessage(new ChatComponentText("Success! " + username_0 + " has joined " + username_1 + "."));
+ sender.addChatMessage(new ChatComponentText("To undo this simply join your own network again with /gt global_energy_join " + username_0 + " " + username_0 + "."));
+
+ break;
default:
+ sender.addChatMessage(new ChatComponentText( EnumChatFormatting.RED + "Invalid command/syntax detected."));
printHelp(sender);
}
}