aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/commands
diff options
context:
space:
mode:
authorsyeyoung <cyong06@naver.com>2021-04-17 21:19:44 +0900
committersyeyoung <cyong06@naver.com>2021-04-17 21:19:44 +0900
commitfbcfc4a5f43a93db3afd0bc0a6b308c653e21a32 (patch)
tree648a78a90c484338aebcef98bd749d976c36625a /src/main/java/kr/syeyoung/dungeonsguide/commands
parent6113dd0a33fbf230044588020ef1b09ba397c96a (diff)
downloadSkyblock-Dungeons-Guide-fbcfc4a5f43a93db3afd0bc0a6b308c653e21a32.tar.gz
Skyblock-Dungeons-Guide-fbcfc4a5f43a93db3afd0bc0a6b308c653e21a32.tar.bz2
Skyblock-Dungeons-Guide-fbcfc4a5f43a93db3afd0bc0a6b308c653e21a32.zip
saving events, better secret detection (itemdrop)
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/commands')
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/commands/CommandDungeonsGuide.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandDungeonsGuide.java b/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandDungeonsGuide.java
index 1bd76e57..f73a778e 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandDungeonsGuide.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandDungeonsGuide.java
@@ -5,6 +5,7 @@ import kr.syeyoung.dungeonsguide.config.guiconfig.GuiConfig;
import kr.syeyoung.dungeonsguide.dungeon.DungeonContext;
import kr.syeyoung.dungeonsguide.dungeon.data.DungeonRoomInfo;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
+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;
@@ -39,6 +40,7 @@ import java.security.cert.CertificateException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
+import java.util.UUID;
import java.util.zip.GZIPOutputStream;
public class CommandDungeonsGuide extends CommandBase {
@@ -300,6 +302,34 @@ public class CommandDungeonsGuide extends CommandBase {
sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fInternal Party id: "+PartyManager.INSTANCE.getPartyID()));
} else if (args[0].equalsIgnoreCase("loc")) {
sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fYou're in "+e.getDungeonsGuide().getSkyblockStatus().getDungeonName()));
+ } else if (args[0].equalsIgnoreCase("saverun")) {
+ try {
+ File f = e.getDungeonsGuide().getConfigDir();
+ File runDir = new File(f, "dungeonruns");
+ runDir.mkdirs();
+
+ File runFile = new File(runDir, UUID.randomUUID().toString()+".dgrun");
+
+ DungeonContext dungeonContext = e.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 {
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"));