aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/commands
diff options
context:
space:
mode:
authorRoman / Linnea Gräf <roman.graef@gmail.com>2022-08-26 13:24:35 +0200
committerGitHub <noreply@github.com>2022-08-26 21:24:35 +1000
commitdfd2f6b05bce74d7feb5d28e7a388dbb871ecf6a (patch)
tree001913c4f1dd391831da26e4398f75e6731c88e1 /src/main/java/io/github/moulberry/notenoughupdates/commands
parentc3845685bbb3a2a7fde25476eed0f788e038dc93 (diff)
downloadnotenoughupdates-dfd2f6b05bce74d7feb5d28e7a388dbb871ecf6a.tar.gz
notenoughupdates-dfd2f6b05bce74d7feb5d28e7a388dbb871ecf6a.tar.bz2
notenoughupdates-dfd2f6b05bce74d7feb5d28e7a388dbb871ecf6a.zip
Of course you have pronouns in pv (#234)
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/commands')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java15
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/commands/misc/PronounsCommand.java94
3 files changed, 111 insertions, 0 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 917185ab..fcb2aaf9 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java
@@ -42,6 +42,7 @@ import io.github.moulberry.notenoughupdates.commands.misc.CalculatorCommand;
import io.github.moulberry.notenoughupdates.commands.misc.CalendarCommand;
import io.github.moulberry.notenoughupdates.commands.misc.CosmeticsCommand;
import io.github.moulberry.notenoughupdates.commands.misc.CustomizeCommand;
+import io.github.moulberry.notenoughupdates.commands.misc.PronounsCommand;
import io.github.moulberry.notenoughupdates.commands.misc.UpdateCommand;
import io.github.moulberry.notenoughupdates.commands.profile.CataCommand;
import io.github.moulberry.notenoughupdates.commands.profile.PeekCommand;
@@ -97,6 +98,7 @@ public class Commands {
ClientCommandHandler.instance.registerCommand(new CalculatorCommand());
ClientCommandHandler.instance.registerCommand(new CalendarCommand());
ClientCommandHandler.instance.registerCommand(new UpdateCommand(NotEnoughUpdates.INSTANCE));
+ ClientCommandHandler.instance.registerCommand(new PronounsCommand());
// Fairy Soul Commands
ClientCommandHandler.instance.registerCommand(new FairySouls.FairySoulsCommand());
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java
index 7cca9d3b..fdf59bb0 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java
@@ -19,6 +19,7 @@
package io.github.moulberry.notenoughupdates.commands.dev;
+import io.github.moulberry.notenoughupdates.BuildFlags;
import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
import io.github.moulberry.notenoughupdates.commands.ClientCommandBase;
import io.github.moulberry.notenoughupdates.core.config.GuiPositionEditor;
@@ -27,6 +28,7 @@ import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.Custom
import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.LocationChangeEvent;
import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.SpecialBlockZone;
import io.github.moulberry.notenoughupdates.miscgui.GuiPriceGraph;
+import io.github.moulberry.notenoughupdates.util.PronounDB;
import io.github.moulberry.notenoughupdates.util.SBInfo;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
@@ -40,6 +42,7 @@ import net.minecraftforge.common.MinecraftForge;
import java.util.Arrays;
import java.util.List;
+import java.util.stream.Collectors;
public class DevTestCommand extends ClientCommandBase {
@@ -118,6 +121,14 @@ public class DevTestCommand extends ClientCommandBase {
" with the mode " +
gamemode));
}
+ if (args.length >= 1 && args[0].equalsIgnoreCase("buildflags")) {
+ Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(
+ "BuildFlags: \n" +
+ BuildFlags.getAllFlags().entrySet().stream()
+ .map(it -> " + " + it.getKey() + " - " + it.getValue())
+ .collect(Collectors.joining("\n"))));
+ return;
+ }
if (args.length >= 1 && args[0].equalsIgnoreCase("pricetest")) {
if (args.length == 1) {
NotEnoughUpdates.INSTANCE.manager.auctionManager.updateBazaar();
@@ -163,6 +174,10 @@ public class DevTestCommand extends ClientCommandBase {
"I would never search"));
return;
}
+ if (args.length == 1 && args[0].equalsIgnoreCase("bluehair")) {
+ PronounDB.test();
+ return;
+ }
if (args.length == 2 && args[0].equalsIgnoreCase("openGui")) {
try {
NotEnoughUpdates.INSTANCE.openGui = (GuiScreen) Class.forName(args[1]).newInstance();
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/PronounsCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/PronounsCommand.java
new file mode 100644
index 00000000..6d0ee88d
--- /dev/null
+++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/PronounsCommand.java
@@ -0,0 +1,94 @@
+/*
+ * 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.misc;
+
+import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
+import io.github.moulberry.notenoughupdates.commands.ClientCommandBase;
+import io.github.moulberry.notenoughupdates.util.MinecraftExecutor;
+import io.github.moulberry.notenoughupdates.util.PronounDB;
+import io.github.moulberry.notenoughupdates.util.Utils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.entity.EntityPlayerSP;
+import net.minecraft.client.gui.GuiNewChat;
+import net.minecraft.command.CommandException;
+import net.minecraft.command.ICommandSender;
+import net.minecraft.util.ChatComponentText;
+
+import java.util.Optional;
+import java.util.Random;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+
+public class PronounsCommand extends ClientCommandBase {
+ public PronounsCommand() {
+ super("neupronouns");
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender sender) {
+ return "/neupronouns <username> [platform]";
+ }
+
+ @Override
+ public void processCommand(ICommandSender sender, String[] args) throws CommandException {
+ switch (args.length) {
+ case 1:
+ fetchPronouns("minecraft", args[0]);
+ break;
+ case 2:
+ fetchPronouns(args[1], args[0]);
+ break;
+ default:
+ sender.addChatMessage(new ChatComponentText("§4" + getCommandUsage(sender)));
+ }
+ }
+
+ private void fetchPronouns(String platform, String user) {
+ GuiNewChat nc = Minecraft.getMinecraft().ingameGUI.getChatGUI();
+ int id = new Random().nextInt();
+ nc.printChatMessageWithOptionalDeletion(new ChatComponentText("§e[NEU] Fetching Pronouns..."), id);
+
+ CompletableFuture<Optional<PronounDB.PronounChoice>> pronouns;
+ if ("minecraft".equals(platform)) {
+ CompletableFuture<UUID> c = new CompletableFuture<>();
+ NotEnoughUpdates.profileViewer.getPlayerUUID(user, uuidString -> {
+ if (uuidString == null) {
+ c.completeExceptionally(new NullPointerException());
+ } else {
+ c.complete(Utils.parseDashlessUUID(uuidString));
+ }
+ });
+ pronouns = c.thenApplyAsync(PronounDB::getPronounsFor);
+ } else {
+ pronouns = CompletableFuture.supplyAsync(() -> PronounDB.getPronounsFor(platform, user));
+ }
+ pronouns.handleAsync((pronounChoice, throwable) -> {
+ if (throwable != null || !pronounChoice.isPresent()) {
+ nc.printChatMessageWithOptionalDeletion(new ChatComponentText("§e[NEU] §4Failed to fetch pronouns."), id);
+ return null;
+ }
+ PronounDB.PronounChoice betterPronounChoice = pronounChoice.get();
+ nc.printChatMessageWithOptionalDeletion(new ChatComponentText("§e[NEU] Pronouns for §b" + user + " §eon §b" + platform + "§e:"), id);
+ betterPronounChoice.render().forEach(it -> nc.printChatMessage(new ChatComponentText("§e[NEU] §a" + it)));
+ return null;
+ }, MinecraftExecutor.INSTANCE);
+
+ }
+}