some features
Some checks failed
/ build (push) Failing after 4m6s

+ !reinv transfer fix
+ leap msgs
+ ?m7 carry guide
This commit is contained in:
Stachelbeere1248 2025-08-15 19:35:44 +02:00
parent be25889e20
commit 3a681fad61
Signed by: Stachelbeere1248
SSH key fingerprint: SHA256:IozEKdw2dB8TZxkpPdMxcWSoWTIMwoLaCcZJ1AJnY2o

View file

@ -15,16 +15,16 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
public class ChatHandler { public class ChatHandler {
private static final String PLAYER_PATTERN = "(?:\\[(?:VIP\\+?|MVP\\+{0,2}|YOUTUBE|MOD|ADMIN)\\] )?([a-zA-Z0-9_]{2,16})"; private static final String IGN_PATTERN = "([a-zA-Z0-9_]{2,16})";
private static final String PLAYER_PATTERN = "(?:\\[(?:VIP\\+?|MVP\\+{0,2}|YOUTUBE|MOD|ADMIN)\\] )?" + IGN_PATTERN;
private static final Pattern PARTY_PATTERN = Pattern.compile("Party > " + PLAYER_PATTERN + ": (.*)"); private static final Pattern PARTY_PATTERN = Pattern.compile("Party > " + PLAYER_PATTERN + ": (.*)");
private static final Pattern TRANSFER_PATTERN = Pattern.compile("The party was transferred to " + PLAYER_PATTERN +" by " + PLAYER_PATTERN); private static final Pattern TRANSFER_PATTERN = Pattern.compile("The party was transferred to " + PLAYER_PATTERN +" by " + PLAYER_PATTERN);
private static final Pattern TRANSFER_LEAVE_PATTERN = Pattern.compile("The party was transferred to " + PLAYER_PATTERN + " because " + PLAYER_PATTERN "left");
private static final Pattern PROMOTE_PATTERN = Pattern.compile(PLAYER_PATTERN + " has promoted " + PLAYER_PATTERN + " to Party Leader"); private static final Pattern PROMOTE_PATTERN = Pattern.compile(PLAYER_PATTERN + " has promoted " + PLAYER_PATTERN + " to Party Leader");
private static final Pattern LEAVE_PATTERN = Pattern.compile(PLAYER_PATTERN + " has left the party."); private static final Pattern LEAVE_PATTERN = Pattern.compile(PLAYER_PATTERN + " has left the party.");
//private static final String[] COLOR_MAPPING = { "§6ORANGE", "§aGREEN", "§4RED" ,"§9BLUE", "§5PRPLX" }; private static final Pattern LEAP_PATTERN = Pattern.compile("You have teleported to " + IGN_PATTERN + "!");
private int transferCountdown = 0; private int transferCountdown = 0;
private boolean autotransferEnabled = false; private boolean autotransferEnabled = false;
//private int colorChangeCooldown = 0;
//private int color = 0;
private String oldLeader = null; private String oldLeader = null;
private HashMap<String, Byte> rejoiners = new HashMap<>(); private HashMap<String, Byte> rejoiners = new HashMap<>();
@ -34,12 +34,6 @@ public class ChatHandler {
@SubscribeEvent @SubscribeEvent
public void onTick(TickEvent.@NotNull ClientTickEvent event) { public void onTick(TickEvent.@NotNull ClientTickEvent event) {
/*if (colorChangeCooldown > 0) {
colorChangeCooldown--;
} else {
color = 0;
}*/
if (transferCountdown > 1) { if (transferCountdown > 1) {
transferCountdown--; transferCountdown--;
} else if (transferCountdown == 1 && Minecraft.getMinecraft().thePlayer != null && this.oldLeader != null) { } else if (transferCountdown == 1 && Minecraft.getMinecraft().thePlayer != null && this.oldLeader != null) {
@ -55,6 +49,27 @@ public class ChatHandler {
if (event.type == 2) return; if (event.type == 2) return;
final String strippedMessage = event.message.getUnformattedText().replaceAll("§[0-9a-fklmnor]", "").trim(); final String strippedMessage = event.message.getUnformattedText().replaceAll("§[0-9a-fklmnor]", "").trim();
branched: {
literal: switch (strippedMessage) {
case "Your Bonzo's Mask saved your life!":
case "Your ⚚ Bonzo's Mask saved your life!":
Timer.setInstance(new Timer((byte) 60));
Minecraft.getMinecraft().thePlayer.sendChatMessage("Bonzo's Mask popped (3s)");
break branched;
case "Second Wind Activated! Your Spirit Mask saved your life!":
case "Second Wind Activated! Your ⚚ Spirit Mask saved your life!":
Timer.setInstance(new Timer((byte) 60));
Minecraft.getMinecraft().thePlayer.sendChatMessage("Spirit Mask popped (3s)");
break branched;
case "Your Phoenix Pet saved you from certain death!":
Timer.setInstance(new Timer((byte) 60));
Minecraft.getMinecraft().thePlayer.sendChatMessage("Phoenix pet popped (3s)");
break branched;
default:
break literal;
};
if (autotransferEnabled) { if (autotransferEnabled) {
final Matcher transfer = TRANSFER_PATTERN.matcher(strippedMessage); final Matcher transfer = TRANSFER_PATTERN.matcher(strippedMessage);
final Matcher promote = PROMOTE_PATTERN.matcher(strippedMessage); final Matcher promote = PROMOTE_PATTERN.matcher(strippedMessage);
@ -67,8 +82,9 @@ public class ChatHandler {
newLeader = promote.group(2); newLeader = promote.group(2);
} }
if (!newLeader.equals("") && newLeader.equals(Minecraft.getMinecraft().thePlayer.getName())) { if (!newLeader.isEmpty() && newLeader.equals(Minecraft.getMinecraft().thePlayer.getName())) {
this.transferCountdown = 10; this.transferCountdown = 10;
break branched;
} }
} }
@ -78,69 +94,68 @@ public class ChatHandler {
final String user = partyChat.group(1); final String user = partyChat.group(1);
switch (partyMessage) { switch (partyMessage) {
case "!warp": case "!warp":
case "!w":
Minecraft.getMinecraft().thePlayer.sendChatMessage("/p warp"); Minecraft.getMinecraft().thePlayer.sendChatMessage("/p warp");
break; break branched;
case "!help": case "!help":
Minecraft.getMinecraft().thePlayer.sendChatMessage("Commands: !warp, !m7, !f7, !ptme, !allinv"); Minecraft.getMinecraft().thePlayer.sendChatMessage("Commands: !warp, !m7, !f7, !ptme, !allinv, !reinv");
break; break branched;
case "!m7": case "!m7":
Minecraft.getMinecraft().thePlayer.sendChatMessage("/joindungeon master_catacombs_floor_seven"); Minecraft.getMinecraft().thePlayer.sendChatMessage("/joindungeon master_catacombs_floor_seven");
break; break branched;
case "!f7": case "!f7":
Minecraft.getMinecraft().thePlayer.sendChatMessage("/joindungeon catacombs_floor_seven"); Minecraft.getMinecraft().thePlayer.sendChatMessage("/joindungeon catacombs_floor_seven");
break; break branched;
case "!allinvite": case "!allinvite":
case "!allinv": case "!allinv":
Minecraft.getMinecraft().thePlayer.sendChatMessage("/p settings allinvite"); Minecraft.getMinecraft().thePlayer.sendChatMessage("/p settings allinvite");
break; break branched;
case "!reinv": case "!reinv":
rejoiners.put(user, (byte) 100); rejoiners.put(user, (byte) 100);
break; break branched;
case "!ptme": case "!ptme":
case "!pt":
event.message.appendSibling( event.message.appendSibling(
new ChatComponentText(" [ACCEPT]") new ChatComponentText(" [ACCEPT]")
.setChatStyle(new ChatStyle() .setChatStyle(new ChatStyle()
.setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/p transfer " + user)) .setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/p transfer " + user))
.setColor(EnumChatFormatting.RED).setBold(true)) .setColor(EnumChatFormatting.RED).setBold(true))
); );
break; break branched;
case "?m7":
Minecraft.getMinecraft().thePlayer.sendChatMessage("Please select the MAGE or BERSERK dungeon class and stay with the tank while trying to reach MILESTONE 3. After reaching milestone 3, please run /hub, you will be warped back later! :D");
break branched;
case "?help":
Minecraft.getMinecraft().thePlayer.sendChatMessage("Helper messages: ?m7");
break branched;
} }
} else {
switch (strippedMessage) {
case "Your Bonzo's Mask saved your life!":
case "Your ⚚ Bonzo's Mask saved your life!":
Timer.setInstance(new Timer((byte) 60));
Minecraft.getMinecraft().thePlayer.sendChatMessage("Bonzo's Mask popped (3s)");
break;
case "Second Wind Activated! Your Spirit Mask saved your life!":
case "Second Wind Activated! Your ⚚ Spirit Mask saved your life!":
Timer.setInstance(new Timer((byte) 60));
Minecraft.getMinecraft().thePlayer.sendChatMessage("Spirit Mask popped (3s)");
break;
case "Your Phoenix Pet saved you from certain death!":
Timer.setInstance(new Timer((byte) 60));
Minecraft.getMinecraft().thePlayer.sendChatMessage("Phoenix pet popped (3s)");
break;
default:
break;
} }
final Matcher leave = LEAVE_PATTERN.matcher(strippedMessage); final Matcher leave = LEAVE_PATTERN.matcher(strippedMessage);
if (leave.matches()) { if (leave.matches()) {
final String leaver = leave.group(1).trim(); final String leaver = leave.group(1).trim();
if (rejoiners.getOrDefault(leaver, (byte) 0) != 0) { if (rejoiners.getOrDefault(leaver, (byte) 0) != 0) {
Minecraft.getMinecraft().thePlayer.sendChatMessage("/party invite " + leaver); Minecraft.getMinecraft().thePlayer.sendChatMessage("/party invite " + leaver);
} }
} break branched;
} };
}
final Matcher tansLeave = TRANSFER_LEAVE_PATTERN.matcher(strippedMessage);
/* private void changeColor(final int color) { if (transLeave.matches()) {
if (this.color < color || this.colorChangeCooldown == 0) { final String leave = transfer.group(2).trim();
this.color = color; if (rejoiners.getOrDefault(leaver, (byte) 0) != 0) {
this.colorChangeCooldown = 10; Minecraft.getMinecraft().thePlayer.sendChatMessage("/party invite " + leaver);
final String title = ChatHandler.COLOR_MAPPING[color-1]; }
Minecraft.getMinecraft().ingameGUI.displayTitle(title, "", 0, 5, 1); break branched;
};
final Matcher leap = LEAP_PATTERN.matcher(strippedMessage);
if (leap.matches()) {
final String target = leap.group(1).trim();
Minecraft.getMinecraft().thePlayer.sendChatMessage("Gonna touch " + target + ".");
break branched;
}
};
}; };
}*/
} }