aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/Danker/DankersSkyblockMod.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/Danker/DankersSkyblockMod.java')
-rw-r--r--src/main/java/me/Danker/DankersSkyblockMod.java172
1 files changed, 133 insertions, 39 deletions
diff --git a/src/main/java/me/Danker/DankersSkyblockMod.java b/src/main/java/me/Danker/DankersSkyblockMod.java
index 0bcecba..53b42af 100644
--- a/src/main/java/me/Danker/DankersSkyblockMod.java
+++ b/src/main/java/me/Danker/DankersSkyblockMod.java
@@ -15,6 +15,7 @@ import net.minecraft.client.gui.*;
import net.minecraft.client.gui.inventory.GuiChest;
import net.minecraft.client.settings.GameSettings;
import net.minecraft.client.settings.KeyBinding;
+import net.minecraft.command.ICommand;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityArmorStand;
import net.minecraft.entity.item.EntityItemFrame;
@@ -308,7 +309,6 @@ public class DankersSkyblockMod {
ClientCommandHandler.instance.registerCommand(new LobbySkillsCommand());
ClientCommandHandler.instance.registerCommand(new DankerGuiCommand());
ClientCommandHandler.instance.registerCommand(new SkillTrackerCommand());
- ClientCommandHandler.instance.registerCommand(new RepartyCommand());
}
@EventHandler
@@ -317,26 +317,31 @@ public class DankersSkyblockMod {
for(Package p : packages){
if(p.getName().startsWith("com.spiderfrog.gadgets") || p.getName().startsWith("com.spiderfrog.oldanimations")){
usingOAM = true;
- break;
}
}
System.out.println("OAM detection: " + usingOAM);
-
usingLabymod = Loader.isModLoaded("labymod");
System.out.println("LabyMod detection: " + usingLabymod);
+
+ if(!ClientCommandHandler.instance.getCommands().containsKey("reparty")) {
+ ClientCommandHandler.instance.registerCommand(new RepartyCommand());
+ } else if (ConfigHandler.getBoolean("commands", "reparty")) {
+ for(Map.Entry<String, ICommand> entry : ClientCommandHandler.instance.getCommands().entrySet()) {
+ if (entry.getKey().equals("reparty") || entry.getKey().equals("rp")) {
+ entry.setValue(new RepartyCommand());
+ }
+ }
+ }
+
}
@SubscribeEvent
public void onGuiOpenEvent(GuiOpenEvent event){
if(event.gui instanceof GuiMainMenu && usingOAM && !OAMWarning){
- System.out.println("Gui opened: Instance of GuiMainMenu.");
if(!(event.gui instanceof WarningGui)){
- System.out.println("No instance of WarningGui");
event.gui = new WarningGuiRedirect(new WarningGui());
OAMWarning = true;
- }else{
- System.out.println("Instance of WarningGui");
}
}
}
@@ -426,38 +431,127 @@ public class DankersSkyblockMod {
}
// Reparty command
- if (System.currentTimeMillis() / 1000 - RepartyCommand.callTime <= 5) {
- if (!(message.contains("----") || message.contains("disbanded") || message.contains("seconds to accept") || message.contains("●") || message.contains("Party Members") || message.contains("Couldn't find a player") || message.contains("cannot invite that player") || message.length() == 0)) {
- return;
- }
-
- EntityPlayerSP player = Minecraft.getMinecraft().thePlayer;
-
- Pattern party_start_pattern = Pattern.compile("^Party Members \\((\\d+)\\)$");
- Pattern leader_pattern = Pattern.compile("^Party Leader: (?:\\[.+?] )?(\\w+) ●$");
- Pattern members_pattern = Pattern.compile(" (?:\\[.+?] )?(\\w+) ●");
- Matcher party_start = party_start_pattern.matcher(message);
- Matcher leader = leader_pattern.matcher(message);
- Matcher members = members_pattern.matcher(message);
-
- if (party_start.matches() && Integer.parseInt(party_start.group(1)) == 1) {
- player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "You cannot reparty yourself."));
- }
- else if (leader.matches() && !(leader.group(1).equals(player.getName()))) {
- player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "You are not party leader."));
- }
- else if (message.contains("Couldn't find a player") || message.contains("You cannot invite that player")) {
- RepartyCommand.repartyFailList.add(RepartyCommand.currentMember);
- }
- else {
- while (members.find()) {
- String partyMember = members.group(1);
- if (!partyMember.equals(player.getName())) {
- RepartyCommand.party.add(partyMember);
- }
- }
- }
- event.setCanceled(true);
+ // Getting party
+ if (RepartyCommand.gettingParty) {
+ if (message.contains("-----")) {
+ switch(RepartyCommand.Delimiter) {
+ case 0:
+ System.out.println("Get Party Delimiter Cancelled");
+ RepartyCommand.Delimiter++;
+ event.setCanceled(true);
+ return;
+ case 1:
+ System.out.println("Done querying party");
+ RepartyCommand.gettingParty = false;
+ RepartyCommand.Delimiter = 0;
+ event.setCanceled(true);
+ return;
+ }
+ }else if (message.startsWith("Party M") || message.startsWith("Party Leader")){
+ EntityPlayerSP player = Minecraft.getMinecraft().thePlayer;
+
+ Pattern party_start_pattern = Pattern.compile("^Party Members \\((\\d+)\\)$");
+ Pattern leader_pattern = Pattern.compile("^Party Leader: (?:\\[.+?] )?(\\w+) ●$");
+ Pattern members_pattern = Pattern.compile(" (?:\\[.+?] )?(\\w+) ●");
+ Matcher party_start = party_start_pattern.matcher(message);
+ Matcher leader = leader_pattern.matcher(message);
+ Matcher members = members_pattern.matcher(message);
+
+ if (party_start.matches() && Integer.parseInt(party_start.group(1)) == 1) {
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "You cannot reparty yourself."));
+ RepartyCommand.partyThread.interrupt();
+ } else if (leader.matches() && !(leader.group(1).equals(player.getName()))) {
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "You are not party leader."));
+ RepartyCommand.partyThread.interrupt();
+ } else {
+ while (members.find()) {
+ String partyMember = members.group(1);
+ if (!partyMember.equals(player.getName())) {
+ RepartyCommand.party.add(partyMember);
+ System.out.println(partyMember);
+ }
+ }
+ }
+ event.setCanceled(true);
+ return;
+ }
+ }
+ // Disbanding party
+ if (RepartyCommand.disbanding) {
+ if (message.contains("-----")) {
+ switch (RepartyCommand.Delimiter) {
+ case 0:
+ System.out.println("Disband Delimiter Cancelled");
+ RepartyCommand.Delimiter++;
+ event.setCanceled(true);
+ return;
+ case 1:
+ System.out.println("Done disbanding");
+ RepartyCommand.disbanding = false;
+ RepartyCommand.Delimiter = 0;
+ event.setCanceled(true);
+ return;
+ }
+ } else if (message.endsWith("has disbanded the party!")) {
+ event.setCanceled(true);
+ return;
+ }
+ }
+ // Inviting
+ if (RepartyCommand.inviting) {
+ if (message.contains("-----")) {
+ switch (RepartyCommand.Delimiter) {
+ case 1:
+ event.setCanceled(true);
+ RepartyCommand.Delimiter = 0;
+ System.out.println("Player Invited!");
+ RepartyCommand.inviting = false;
+ return;
+ case 0:
+ RepartyCommand.Delimiter++;
+ event.setCanceled(true);
+ return;
+ }
+ } else if (message.endsWith(" to the party! They have 60 seconds to accept.")) {
+ Pattern invitePattern = Pattern.compile("(?:(?:\\[.+?] )?(?:\\w+) invited )(?:\\[.+?] )?(\\w+)");
+ Matcher invitee = invitePattern.matcher(message);
+ if (invitee.find()) {
+ System.out.println("" + invitee.group(1) + ": " + RepartyCommand.repartyFailList.remove(invitee.group(1)));
+ }
+ event.setCanceled(true);
+ return;
+ } else if (message.contains("Couldn't find a player") || message.contains("You cannot invite that player")) {
+ event.setCanceled(true);
+ return;
+ }
+ }
+ // Fail Inviting
+ if (RepartyCommand.failInviting) {
+ if (message.contains("-----")) {
+ switch (RepartyCommand.Delimiter) {
+ case 1:
+ event.setCanceled(true);
+ RepartyCommand.Delimiter = 0;
+ System.out.println("Player Invited!");
+ RepartyCommand.inviting = false;
+ return;
+ case 0:
+ RepartyCommand.Delimiter++;
+ event.setCanceled(true);
+ return;
+ }
+ } else if (message.endsWith(" to the party! They have 60 seconds to accept.")) {
+ Pattern invitePattern = Pattern.compile("(?:(?:\\[.+?] )?(?:\\w+) invited )(?:\\[.+?] )?(\\w+)");
+ Matcher invitee = invitePattern.matcher(message);
+ if (invitee.find()) {
+ System.out.println("" + invitee.group(1) + ": " + RepartyCommand.repartyFailList.remove(invitee.group(1)));
+ }
+ event.setCanceled(true);
+ return;
+ } else if (message.contains("Couldn't find a player") || message.contains("You cannot invite that player")) {
+ event.setCanceled(true);
+ return;
+ }
}
if (!Utils.inSkyblock) return;