aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/commands
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/commands')
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/commands/CommandDungeonsGuide.java612
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/commands/CommandReparty.java110
2 files changed, 0 insertions, 722 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandDungeonsGuide.java b/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandDungeonsGuide.java
deleted file mode 100644
index 50f5aa7f..00000000
--- a/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandDungeonsGuide.java
+++ /dev/null
@@ -1,612 +0,0 @@
-/*
- * Dungeons Guide - The most intelligent Hypixel Skyblock Dungeons Mod
- * Copyright (C) 2021 cyoung06
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
-
-package kr.syeyoung.dungeonsguide.commands;
-
-import com.google.gson.JsonObject;
-import kr.syeyoung.dungeonsguide.DungeonsGuide;
-import kr.syeyoung.dungeonsguide.chat.PartyContext;
-import kr.syeyoung.dungeonsguide.chat.PartyManager;
-import kr.syeyoung.dungeonsguide.rpc.RichPresenceManager;
-import kr.syeyoung.dungeonsguide.SkyblockStatus;
-import kr.syeyoung.dungeonsguide.config.guiconfig.GuiConfigV2;
-import kr.syeyoung.dungeonsguide.config.guiconfig.NestedCategory;
-import kr.syeyoung.dungeonsguide.cosmetics.CosmeticsManager;
-import kr.syeyoung.dungeonsguide.dungeon.DungeonContext;
-import kr.syeyoung.dungeonsguide.dungeon.MapProcessor;
-import kr.syeyoung.dungeonsguide.dungeon.data.DungeonRoomInfo;
-import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
-import kr.syeyoung.dungeonsguide.dungeon.doorfinder.DungeonSpecificDataProvider;
-import kr.syeyoung.dungeonsguide.dungeon.doorfinder.DungeonSpecificDataProviderRegistry;
-import kr.syeyoung.dungeonsguide.dungeon.events.DungeonEventHolder;
-import kr.syeyoung.dungeonsguide.dungeon.mechanics.*;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoomInfoRegistry;
-import kr.syeyoung.dungeonsguide.events.DungeonLeftEvent;
-import kr.syeyoung.dungeonsguide.features.AbstractFeature;
-import kr.syeyoung.dungeonsguide.features.FeatureRegistry;
-import kr.syeyoung.dungeonsguide.features.impl.party.playerpreview.FeatureViewPlayerOnJoin;
-import kr.syeyoung.dungeonsguide.features.impl.party.api.ApiFetchur;
-import kr.syeyoung.dungeonsguide.roomedit.EditingContext;
-import kr.syeyoung.dungeonsguide.roomedit.gui.GuiDungeonRoomEdit;
-import kr.syeyoung.dungeonsguide.roomprocessor.GeneralRoomProcessor;
-import kr.syeyoung.dungeonsguide.roomprocessor.bossfight.BossfightProcessor;
-import kr.syeyoung.dungeonsguide.stomp.*;
-import kr.syeyoung.dungeonsguide.utils.AhUtils;
-import kr.syeyoung.dungeonsguide.utils.MapUtils;
-import kr.syeyoung.dungeonsguide.utils.ShortUtils;
-import kr.syeyoung.dungeonsguide.wsresource.StaticResourceCache;
-import net.minecraft.block.Block;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.EntityPlayerSP;
-import net.minecraft.command.CommandBase;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.nbt.CompressedStreamTools;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.server.MinecraftServer;
-import net.minecraft.util.*;
-import net.minecraft.world.World;
-import net.minecraftforge.common.MinecraftForge;
-import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
-import net.minecraftforge.fml.common.gameevent.TickEvent;
-import org.json.JSONObject;
-
-import javax.crypto.BadPaddingException;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
-import javax.vecmath.Vector2d;
-import java.awt.*;
-import java.io.*;
-import java.security.*;
-import java.security.cert.CertificateException;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.List;
-import java.util.regex.Pattern;
-
-public class CommandDungeonsGuide extends CommandBase {
- @Override
- public String getCommandName() {
- return "dg";
- }
-
- @Override
- public String getCommandUsage(ICommandSender sender) {
- return "dg";
- }
-
- @Override
- public void processCommand(ICommandSender sender, String[] args) {
- if (args.length == 0) {
- openConfig = true;
- } else if (args[0].equalsIgnoreCase("saverooms")) {
- DungeonRoomInfoRegistry.saveAll(DungeonsGuide.getDungeonsGuide().getConfigDir());
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fSuccessfully saved user generated roomdata"));
- } else if (args[0].equalsIgnoreCase("loadrooms")) {
- try {
- DungeonRoomInfoRegistry.loadAll(DungeonsGuide.getDungeonsGuide().getConfigDir());
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fSuccessfully loaded roomdatas"));
- return;
- } catch (BadPaddingException e) {
- e.printStackTrace();
- } catch (InvalidAlgorithmParameterException e) {
- e.printStackTrace();
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } catch (IllegalBlockSizeException e) {
- e.printStackTrace();
- } catch (NoSuchPaddingException e) {
- e.printStackTrace();
- } catch (InvalidKeyException e) {
- e.printStackTrace();
- }
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §cAn error has occurred while loading roomdata"));
- } else if (args[0].equalsIgnoreCase("reloadah")) {
- try {
- AhUtils.loadAuctions();
- } catch (CertificateException e) {
- e.printStackTrace();
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- } catch (InvalidKeyException e) {
- e.printStackTrace();
- } catch (InvalidAlgorithmParameterException e) {
- e.printStackTrace();
- } catch (NoSuchPaddingException e) {
- e.printStackTrace();
- } catch (BadPaddingException e) {
- e.printStackTrace();
- } catch (KeyStoreException e) {
- e.printStackTrace();
- } catch (IllegalBlockSizeException e) {
- e.printStackTrace();
- } catch (KeyManagementException e) {
- e.printStackTrace();
- }
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fReloaded Ah data"));
- } else if (args[0].equalsIgnoreCase("brand")) {
- String serverBrand = Minecraft.getMinecraft().thePlayer.getClientBrand();
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e" + serverBrand));
- } else if (args[0].equalsIgnoreCase("reparty")) {
- if (!DungeonsGuide.getDungeonsGuide().getCommandReparty().requestReparty(false)) {
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §cCurrently Repartying"));
- }
- } else if (args[0].equalsIgnoreCase("gui")) {
- openConfig = true;
- } else if (args[0].equalsIgnoreCase("info")) {
- JsonObject obj = DungeonsGuide.getDungeonsGuide().getAuthenticator().getJwtPayload(DungeonsGuide.getDungeonsGuide().getAuthenticator().getToken());
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
-
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fCurrent Plan§7: §e" + obj.get("plan").getAsString()));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fBound to§7: §e" + obj.get("nickname").getAsString()));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fBound uuid§7: §e" + obj.get("uuid").getAsString()));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fSession Expire§7: §e" + sdf.format(new Date(obj.get("exp").getAsLong() * 1000))));
- } else if (args[0].equalsIgnoreCase("pathfind")) {
- try {
- DungeonContext context = DungeonsGuide.getDungeonsGuide().getSkyblockStatus().getContext();
- EntityPlayerSP thePlayer = Minecraft.getMinecraft().thePlayer;
- if (thePlayer == null) return;
- if (context.getBossfightProcessor() != null) context.getBossfightProcessor().tick();
- Point roomPt = context.getMapProcessor().worldPointToRoomPoint(thePlayer.getPosition());
-
- DungeonRoom dungeonRoom = context.getRoomMapper().get(roomPt);
- GeneralRoomProcessor grp = (GeneralRoomProcessor) dungeonRoom.getRoomProcessor();
- grp.pathfind("COMMAND", args[1], args[2], FeatureRegistry.SECRET_LINE_PROPERTIES_GLOBAL.getRouteProperties());
- } catch (Throwable t) {
- t.printStackTrace();
- }
- } else if (args[0].equals("process") && Minecraft.getMinecraft().getSession().getPlayerID().replace("-", "").equals("e686fe0aab804a71ac7011dc8c2b534c")) {
- File root = DungeonsGuide.getDungeonsGuide().getConfigDir();
- File dir = new File(root, "processorinput");
- File outsecret = new File(root, "processoroutsecret");
- for (File f : dir.listFiles()) {
- if (!f.getName().endsWith(".roomdata")) continue;
- try {
- InputStream fis = new FileInputStream(f);
- ObjectInputStream ois = new ObjectInputStream(fis);
- DungeonRoomInfo dri = (DungeonRoomInfo) ois.readObject();
- ois.close();
- fis.close();
- dri.setUserMade(false);
-
- FileOutputStream fos = new FileOutputStream(new File(outsecret, dri.getUuid().toString() + ".roomdata"));
- ObjectOutputStream oos = new ObjectOutputStream(fos);
- oos.writeObject(dri);
- oos.flush();
- oos.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- } else if (args[0].equals("check") && Minecraft.getMinecraft().getSession().getPlayerID().replace("-", "").equals("e686fe0aab804a71ac7011dc8c2b534c")) {
- File root = DungeonsGuide.getDungeonsGuide().getConfigDir();
- for (File f : root.listFiles()) {
- if (!f.getName().endsWith(".roomdata")) continue;
- try {
- InputStream fis = new FileInputStream(f);
- ObjectInputStream ois = new ObjectInputStream(fis);
- DungeonRoomInfo dri = (DungeonRoomInfo) ois.readObject();
- ois.close();
- fis.close();
- System.out.println("Starting at " + dri.getName() + " - " + dri.getUuid());
- for (Map.Entry<String, DungeonMechanic> value2 : dri.getMechanics().entrySet()) {
- DungeonMechanic value = value2.getValue();
- if (value instanceof DungeonSecret &&
- (((DungeonSecret) value).getSecretType() == DungeonSecret.SecretType.BAT
- || ((DungeonSecret) value).getSecretType() == DungeonSecret.SecretType.CHEST)
- && ((DungeonSecret) value).getSecretPoint().getY() == 0) {
- OffsetPoint offsetPoint = ((DungeonSecret) value).getSecretPoint();
- if (dri.getBlocks()[offsetPoint.getZ()][offsetPoint.getX()] != -1) {
- dri.getBlocks()[offsetPoint.getZ()][offsetPoint.getX()] = -1;
- System.out.println("Fixing " + value2.getKey() + " - as secret " + ((DungeonSecret) value).getSecretType() + " - at " + ((DungeonSecret) value).getSecretPoint());
- }
- } else if (value instanceof DungeonOnewayDoor) {
- for (OffsetPoint offsetPoint : ((DungeonOnewayDoor) value).getSecretPoint().getOffsetPointList()) {
- if (offsetPoint.getY() == 0 && dri.getBlocks()[offsetPoint.getZ()][offsetPoint.getX()] != -1) {
- dri.getBlocks()[offsetPoint.getZ()][offsetPoint.getX()] = -1;
- System.out.println("Fixing " + value2.getKey() + " - o-door - at " + offsetPoint);
- }
- }
- } else if (value instanceof DungeonDoor) {
- for (OffsetPoint offsetPoint : ((DungeonDoor) value).getSecretPoint().getOffsetPointList()) {
- if (offsetPoint.getY() == 0 && dri.getBlocks()[offsetPoint.getZ()][offsetPoint.getX()] != -1) {
- dri.getBlocks()[offsetPoint.getZ()][offsetPoint.getX()] = -1;
- System.out.println("Fixing " + value2.getKey() + " - door - at " + offsetPoint);
- }
- }
- } else if (value instanceof DungeonBreakableWall) {
- for (OffsetPoint offsetPoint : ((DungeonBreakableWall) value).getSecretPoint().getOffsetPointList()) {
- if (offsetPoint.getY() == 0 && dri.getBlocks()[offsetPoint.getZ()][offsetPoint.getX()] != -1) {
- dri.getBlocks()[offsetPoint.getZ()][offsetPoint.getX()] = -1;
- System.out.println("Fixing " + value2.getKey() + " - wall - at " + offsetPoint);
- }
- }
- } else if (value instanceof DungeonTomb) {
- for (OffsetPoint offsetPoint : ((DungeonTomb) value).getSecretPoint().getOffsetPointList()) {
- if (offsetPoint.getY() == 0 && dri.getBlocks()[offsetPoint.getZ()][offsetPoint.getX()] != -1) {
- dri.getBlocks()[offsetPoint.getZ()][offsetPoint.getX()] = -1;
- System.out.println("Fixing " + value2.getKey() + " - crypt - at " + offsetPoint);
- }
- }
- }
- }
- FileOutputStream fos = new FileOutputStream(f);
- ObjectOutputStream oos = new ObjectOutputStream(fos);
- oos.writeObject(dri);
- oos.flush();
- oos.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- } else if (args[0].equals("reloaddungeon") && Minecraft.getMinecraft().getSession().getPlayerID().replace("-", "").equals("e686fe0aab804a71ac7011dc8c2b534c")) {
- try {
- MinecraftForge.EVENT_BUS.post(new DungeonLeftEvent());
- DungeonsGuide.getDungeonsGuide().getSkyblockStatus().setContext(null);
- MapUtils.clearMap();
- } catch (Throwable t) {
- t.printStackTrace();
- }
- } else if (args[0].equalsIgnoreCase("pvall")) {
- PartyManager.INSTANCE.requestPartyList((context) -> {
- if (context == null) {
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §cNot in Party"));
- return;
- }
- for (String member : context.getPartyRawMembers()) {
- ApiFetchur.fetchUUIDAsync(member)
- .thenAccept(a -> {
- if (a == null) {
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e"+member+"§f's Profile §cCouldn't fetch uuid"));
- } else {
- ApiFetchur.fetchMostRecentProfileAsync(a.get(), FeatureRegistry.PARTYKICKER_APIKEY.getAPIKey());
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e" + member + "§f's Profile ").appendSibling(new ChatComponentText("§7view").setChatStyle(new ChatStyle().setChatHoverEvent(new FeatureViewPlayerOnJoin.HoverEventRenderPlayer(a.orElse(null))))));
- }
- });
- }
- });
-// } else if (args[0].equals("fixschematic")) {
-// File root = new File(e.getDungeonsGuide().getConfigDir(), "schematics");
-// Method method = null;
-// try {
-// method = NBTTagCompound.class.getDeclaredMethod("write", DataOutput.class);
-// method.setAccessible(true);
-// } catch (NoSuchMethodException e) {
-// e.printStackTrace();
-// return;
-// }
-// for (File f : root.listFiles()) {
-// try {
-// NBTTagCompound nbtTagCompound = CompressedStreamTools.readCompressed(new FileInputStream(f));
-// if (nbtTagCompound.getKeySet().isEmpty()) {
-// System.out.println("ah");
-// return;
-// }
-// nbtTagCompound.setString("Materials","Alpha");
-// FileOutputStream fos = new FileOutputStream(f);
-// DataOutputStream dataoutputstream = new DataOutputStream(new BufferedOutputStream(new GZIPOutputStream(fos)));
-//
-// try
-// {
-// dataoutputstream.writeByte(nbtTagCompound.getId());
-//
-// dataoutputstream.writeUTF("Schematic");
-// method.invoke(nbtTagCompound, dataoutputstream);
-// }
-// finally
-// {
-// dataoutputstream.close();
-// }
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
-// }
- } else if (args[0].equalsIgnoreCase("asktojoin") || args[0].equalsIgnoreCase("atj")) {
- if (RichPresenceManager.INSTANCE.getLastSetupCode() == -9999) {
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §cDiscord GameSDK has been disabled, or it failed to load!"));
- return;
- }
- if (!PartyManager.INSTANCE.canInvite()) {
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §cYou don't have perms in the party to invite people!"));
- } else {
- PartyManager.INSTANCE.toggleAllowAskToJoin();
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fToggled Ask to join to " + (PartyManager.INSTANCE.getAskToJoinSecret() != null ? "§eon" : "§coff")));
- }
-
- if (!FeatureRegistry.DISCORD_RICHPRESENCE.isEnabled()) {
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §cDiscord Rich Presence is disabled! Enable at /dg -> Discord "));
- }
- if (!FeatureRegistry.DISCORD_ASKTOJOIN.isEnabled()) {
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §cDiscord Invite Viewer is disabled! Enable at /dg -> Discord ")); // how
- }
- } else if (args[0].equalsIgnoreCase("partymax") || args[0].equalsIgnoreCase("pm")) {
- if (args.length == 1) {
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fCurrent party max is §e" + PartyManager.INSTANCE.getMaxParty()));
- } else if (args.length == 2) {
- try {
- int partyMax = Integer.parseInt(args[1]);
- if (partyMax < 2) {
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §cparty max can't be smaller than 2"));
- return;
- }
-
- PartyManager.INSTANCE.setMaxParty(partyMax);
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fSuccessfully set partymax to §e" + PartyManager.INSTANCE.getMaxParty()));
- } catch (Exception e) {
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §c" + args[1] + " is not valid number."));
- return;
- }
- }
- } else if (args[0].equals("partyid")) {
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fInternal Party id: " + Optional.ofNullable(PartyManager.INSTANCE.getPartyContext()).map(PartyContext::getPartyID).orElse(null)));
- } else if (args[0].equalsIgnoreCase("loc")) {
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fYou're in " + DungeonsGuide.getDungeonsGuide().getSkyblockStatus().getDungeonName()));
- } else if (args[0].equalsIgnoreCase("saverun")) {
- try {
- File f = DungeonsGuide.getDungeonsGuide().getConfigDir();
- File runDir = new File(f, "dungeonruns");
- runDir.mkdirs();
-
- File runFile = new File(runDir, UUID.randomUUID() + ".dgrun");
-
- DungeonContext dungeonContext = DungeonsGuide.getDungeonsGuide().getSkyblockStatus().getContext();
- if (dungeonContext == null) {
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §cCouldn't find dungeon to save!"));
- return;
- }
- DungeonEventHolder dungeonEventHolder = new DungeonEventHolder();
- dungeonEventHolder.setDate(dungeonContext.getInit());
- dungeonEventHolder.setPlayers(dungeonContext.getPlayers());
- dungeonEventHolder.setEventDataList(dungeonContext.getEvents());
-
-
- ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(runFile));
- oos.writeObject(dungeonEventHolder);
- oos.flush();
- oos.close();
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fSuccessfully saved dungeon run to " + runFile.getAbsolutePath()));
- } catch (Exception e) {
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §cAn error occured while writing rundata " + e.getMessage()));
- e.printStackTrace();
- }
- } else if (args[0].equals("pv")) {
- try {
- ApiFetchur.fetchUUIDAsync(args[1])
- .thenAccept(a -> {
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e" + args[1] + "§f's Profile ").appendSibling(new ChatComponentText("§7view").setChatStyle(new ChatStyle().setChatHoverEvent(new FeatureViewPlayerOnJoin.HoverEventRenderPlayer(a.orElse(null))))));
- });
- } catch (Exception e) {
- e.printStackTrace();
- }
- } else if (args[0].equals("purge")) {
- ApiFetchur.purgeCache();
- CosmeticsManager cosmeticsManager = DungeonsGuide.getDungeonsGuide().getCosmeticsManager();
- cosmeticsManager.requestPerms();
- cosmeticsManager.requestCosmeticsList();
- cosmeticsManager.requestActiveCosmetics();
- StaticResourceCache.INSTANCE.purgeCache();
- FeatureRegistry.DISCORD_ASKTOJOIN.imageMap.clear();
- FeatureRegistry.DISCORD_ASKTOJOIN.futureMap.clear();
-
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fSuccessfully purged API Cache!"));
- } else if (args[0].equals("pbroadcast")) {
- try {
- String[] payload = new String[args.length - 1];
- System.arraycopy(args, 1, payload, 0, payload.length);
- String actualPayload = String.join(" ", payload).replace("$C$", "§");
- DungeonsGuide.getDungeonsGuide().getStompConnection().send(new StompPayload().header("destination", "/app/party.broadcast").payload(
- new JSONObject().put("partyID", PartyManager.INSTANCE.getPartyContext().getPartyID())
- .put("payload", actualPayload).toString()
- ));
- } catch (Exception e) {
- e.printStackTrace();
- }
- } else if (args[0].equals("requeststaticresource")) {
- UUID uid = UUID.fromString(args[1]);
- StaticResourceCache.INSTANCE.getResource(uid).thenAccept(a -> {
- sender.addChatMessage(new ChatComponentText(a.getResourceID() + ": " + a.getValue() + ": " + a.isExists()));
- });
- } else if (args[0].equals("createFakeRoom") && Minecraft.getMinecraft().getSession().getPlayerID().replace("-", "").equals("e686fe0aab804a71ac7011dc8c2b534c")) {
-
- // load schematic
- File f = new File(DungeonsGuide.getDungeonsGuide().getConfigDir(), "schematics/new roonm-b2df250c-4af2-4201-963c-0ee1cb6bd3de-5efb1f0c-c05f-4064-bde7-cad0874fdf39.schematic");
- NBTTagCompound compound;
- try {
- compound = CompressedStreamTools.readCompressed(new FileInputStream(f));
- } catch (IOException e) {
- e.printStackTrace();
- return;
- }
-
- byte[] blocks = compound.getByteArray("Blocks");
- byte[] meta = compound.getByteArray("Data");
- for (int x = 0; x < compound.getShort("Width"); x++) {
- for (int y = 0; y < compound.getShort("Height"); y++) {
- for (int z = 0; z < compound.getShort("Length"); z++) {
- int index = x + (y * compound.getShort("Length") + z) * compound.getShort("Width");
- BlockPos pos = new BlockPos(x, y, z);
- World w = MinecraftServer.getServer().getEntityWorld();
- w.setBlockState(pos, Block.getBlockById(blocks[index] & 0xFF).getStateFromMeta(meta[index] & 0xFF), 2);
- }
- }
- }
-
-
- DungeonSpecificDataProviderRegistry.doorFinders.put(Pattern.compile("TEST DG"), new DungeonSpecificDataProvider() {
- @Override
- public BlockPos findDoor(World w, String dungeonName) {
- return new BlockPos(0, 0, 0);
- }
-
- @Override
- public Vector2d findDoorOffset(World w, String dungeonName) {
- return null;
- }
-
- @Override
- public BossfightProcessor createBossfightProcessor(World w, String dungeonName) {
- return null;
- }
-
- @Override
- public boolean isTrapSpawn(String dungeonName) {
- return false;
- }
-
- @Override
- public double secretPercentage(String dungeonName) {
- return 0;
- }
-
- @Override
- public int speedSecond(String dungeonName) {
- return 0;
- }
- });
- SkyblockStatus skyblockStatus = DungeonsGuide.getDungeonsGuide().getSkyblockStatus();
- skyblockStatus.setDungeonName("TEST DG");
- DungeonContext fakeContext = new DungeonContext(Minecraft.getMinecraft().theWorld);
- skyblockStatus.setContext(fakeContext);
- skyblockStatus.setForceIsOnDungeon(true);
- MapProcessor mapProcessor = fakeContext.getMapProcessor();
- mapProcessor.setUnitRoomDimension(new Dimension(16, 16));
- mapProcessor.setBugged(false);
- mapProcessor.setDoorDimension(new Dimension(4, 4));
- mapProcessor.setTopLeftMapPoint(new Point(0, 0));
- fakeContext.setDungeonMin(new BlockPos(0, 70, 0));
-
- DungeonRoom dungeonRoom = new DungeonRoom(Arrays.asList(new Point(0, 0)), ShortUtils.topLeftifyInt((short) 1), (byte) 63, new BlockPos(0, 70, 0), new BlockPos(31, 70, 31), fakeContext, Collections.emptySet());
-
- fakeContext.getDungeonRoomList().add(dungeonRoom);
- for (Point p : Arrays.asList(new Point(0, 0))) {
- fakeContext.getRoomMapper().put(p, dungeonRoom);
- }
-
- EditingContext.createEditingContext(dungeonRoom);
- EditingContext.getEditingContext().openGui(new GuiDungeonRoomEdit(dungeonRoom));
- } else if (args[0].equals("CloseContext")) {
- DungeonsGuide.getDungeonsGuide().getSkyblockStatus().setForceIsOnDungeon(false);
- DungeonsGuide.getDungeonsGuide().getSkyblockStatus().setContext(null);
- } else if (args[0].equals("dumpsettings")) {
- NestedCategory root = new NestedCategory("ROOT");
- for (AbstractFeature abstractFeature : FeatureRegistry.getFeatureList()) {
- String category = abstractFeature.getCategory();
- NestedCategory currentRoot = root;
- for (String s : category.split("\\.")) {
- NestedCategory finalCurrentRoot = currentRoot;
- if (currentRoot.children().containsKey(s))
- currentRoot = currentRoot.children().get(s);
- else {
- currentRoot.child(currentRoot = new NestedCategory(finalCurrentRoot.categoryFull() + "." + s));
- }
- }
- }
-
- StringBuilder stringBuilder = new StringBuilder();
- StringBuilder stringBuilder2 = new StringBuilder();
-
- Stack<Tuple<NestedCategory, Integer>> stak = new Stack<>();
- stak.push(new Tuple<>(root, 0));
- Set<NestedCategory> discovered = new HashSet<>();
- while (!stak.isEmpty()) {
- Tuple<NestedCategory, Integer> n = stak.pop();
- if (discovered.contains(n.getFirst())) continue;
- discovered.add(n.getFirst());
- for (Map.Entry<String, NestedCategory> stringNestedCategoryEntry : n.getFirst().children().entrySet()) {
- stak.push(new Tuple<>(stringNestedCategoryEntry.getValue(), n.getSecond() + 1));
- }
-
- if (n.getFirst().categoryFull().equals("ROOT")) continue;
-
- String prefix = "";
- for (int i = 0; i < n.getSecond() - 1; i++) {
- prefix += " ";
- }
-
- List<AbstractFeature> abstractFeatureList = FeatureRegistry.getFeaturesByCategory().getOrDefault(n.getFirst().categoryFull().substring(5), Collections.emptyList());
- stringBuilder.append(prefix).append("- C ").append(n.getFirst().categoryFull()).append("\n");
- stringBuilder2.append(n.getFirst().categoryFull()).append("\n");
- for (AbstractFeature abstractFeature : abstractFeatureList) {
- stringBuilder.append(prefix).append(" - F ").append(abstractFeature.getName()).append(" / ").append(abstractFeature.getDescription().replace("\n", "$NEW_LINE$")).append("\n");
- }
- }
- System.out.println(stringBuilder.toString());
- System.out.println(stringBuilder2.toString());
- } else if (args[0].equals("readMap")) {
- try {
- int fromX = Integer.parseInt(args[1]);
- int fromY = Integer.parseInt(args[2]);
- sender.addChatMessage(new ChatComponentText(MapUtils.readDigit(MapUtils.getColors(), fromX, fromY)+"-"));
-// int cntY = Integer.parseInt(args[3]);
-// int target = Integer.parseInt(args[4]);
-// StringBuilder sb = new StringBuilder("{");
-// for (int y = fromY; y < fromY + cntY; y++) {
-// int curr = 0;
-// for (int x = fromX; x < fromX+8; x++) {
-// byte clr = MapUtils.getMapColorAt(MapUtils.getColors(), x,y);
-// if (clr == target) curr = (curr << 1) | 1;
-// else curr <<= 1;
-// }
-// sb.append("0x").append(Integer.toHexString(curr).toUpperCase());
-// if (y != fromY + cntY - 1) sb.append(", ");
-// }
-// sb.append("}");
-// System.out.println("\n"+sb.toString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- } else {
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg §7-§fOpens configuration gui"));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg gui §7-§fOpens configuration gui"));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg help §7-§fShows command help"));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg saverooms §7-§f Saves usergenerated dungeon roomdata."));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg loadrooms §7-§f Reloads dungeon roomdata."));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg reloadah §7-§f Reloads price data from server."));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg brand §7-§f View server brand."));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg reparty §7-§f Reparty."));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg info §7-§f View Current DG User info."));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg asktojoin or /dg atj §7-§f Toggle ask to join §cRequires Discord Rich Presence enabled. (/dg -> Advanced)"));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg partymax [number] or /dg pm [number] §7-§f Sets partymax §7(maximum amount people in party, for discord rpc)"));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg pv [ign] §7-§f Profile Viewer"));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg pvall §7-§f Profile Viewer For all people on party"));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg purge §7-§f Purge api cache."));
- sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg saverun §7-§f Save run to be sent to developer."));
- }
- }
-
- private boolean openConfig = false;
-
- @SubscribeEvent
- public void onTick(TickEvent.ClientTickEvent e) {
- try {
- if (openConfig && e.phase == TickEvent.Phase.START ) {
- openConfig = false;
- Minecraft.getMinecraft().displayGuiScreen(new GuiConfigV2());
- }
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
-
- @Override
- public int getRequiredPermissionLevel() {
- return 0;
- }
-}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandReparty.java b/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandReparty.java
deleted file mode 100644
index 8df85529..00000000
--- a/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandReparty.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Dungeons Guide - The most intelligent Hypixel Skyblock Dungeons Mod
- * Copyright (C) 2021 cyoung06
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
-
-package kr.syeyoung.dungeonsguide.commands;
-
-import kr.syeyoung.dungeonsguide.chat.ChatProcessor;
-import kr.syeyoung.dungeonsguide.chat.PartyManager;
-import kr.syeyoung.dungeonsguide.features.FeatureRegistry;
-import kr.syeyoung.dungeonsguide.utils.TextUtils;
-import net.minecraft.client.Minecraft;
-import net.minecraft.command.CommandBase;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.util.ChatComponentText;
-import net.minecraftforge.client.event.ClientChatReceivedEvent;
-import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
-import net.minecraftforge.fml.common.gameevent.TickEvent;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-public class CommandReparty extends CommandBase {
- private String command;
- public CommandReparty() {
- command = FeatureRegistry.ETC_REPARTY.<String>getParameter("command").getValue();
- command = command.replace(" ", "");
- }
-
- @Override
- public String getCommandName() {
- return command;
- }
-
- @Override
- public String getCommandUsage(ICommandSender sender) {
- return command;
- }
-
- @Override
- public void processCommand(ICommandSender sender, String[] args) {
- if (!requestReparty(false)) {
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §cCurrently Repartying"));
- }
- }
-
- private boolean reparting = false;
-
-
- public boolean requestReparty(boolean noerror) {
- if (reparting) {
- return false;
- }
- reparting = true;
-
- PartyManager.INSTANCE.requestPartyList(pc -> {
- if (pc == null) {
- if (!noerror)
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §cNot in Party"));
- reparting = false;
- return;
- }
- if (!pc.hasLeader(Minecraft.getMinecraft().getSession().getUsername())) {
- if (!noerror)
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §cYou're not leader"));
- reparting = false;
- return;
- }
- if (pc.isSelfSolo()) {
- if (!noerror)
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §cYou can not reparty yourself"));
- reparting = false;
- return;
- }
- String members = pc.getPartyRawMembers().stream().filter(a -> !a.equalsIgnoreCase(Minecraft.getMinecraft().getSession().getUsername())).collect(Collectors.joining(" "));
- String command = "/p invite "+members;
-
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §eDisbanding Party..."));
- ChatProcessor.INSTANCE.addToChatQueue("/p disband", () -> {
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §eRunning invite command §f"+command));
- ChatProcessor.INSTANCE.addToChatQueue(command, () -> {
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §eSuccessfully repartied!§f"));
-
- reparting = false;
- }, false);
- }, false);
- });
- return true;
- }
-
- @Override
- public int getRequiredPermissionLevel() {
- return 0;
- }
-}