From 2e47a68b69fac942e4efd7b90f248e15f02f6a82 Mon Sep 17 00:00:00 2001 From: davidovski Date: Tue, 4 Nov 2025 17:35:30 +0000 Subject: update v0.6 pre --- src/main/java/net/uomc/mineshaft/RobCommand.java | 26 ++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'src/main/java/net/uomc/mineshaft/RobCommand.java') diff --git a/src/main/java/net/uomc/mineshaft/RobCommand.java b/src/main/java/net/uomc/mineshaft/RobCommand.java index bfc0c51..d87f097 100644 --- a/src/main/java/net/uomc/mineshaft/RobCommand.java +++ b/src/main/java/net/uomc/mineshaft/RobCommand.java @@ -17,6 +17,7 @@ import net.dv8tion.jda.api.entities.emoji.Emoji; import net.dv8tion.jda.api.entities.emoji.UnicodeEmoji; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; +import net.uomc.mineshaft.blacksmith.Sword; public class RobCommand extends CooldownCommand { @@ -59,11 +60,21 @@ public class RobCommand extends CooldownCommand { } if (!canFight(e.getMember())) { - e.getMessage().reply(":x: You tried to kill " + target.getAsMention() - + " you don't have a sword to fight with!\nUse `m!blacksmith` to forge one").queue(); + e.getMessage().reply(":x: You need at least "+ Sword.swordToEmoji(1) + "to fight.\n💡 Use `m!blacksmith` to forge one").queue(); return false; } + if (bot.getPlayerStats().isInBattle(e.getMember())) { + e.getMessage().reply(":x: You are already fighting someone else!").queue(); + return false; + } + + if (bot.getPlayerStats().isInBattle(target)) { + e.getMessage().reply(":x: " + target.getAsMention() + " is already fighting someone else!").queue(); + return false; + } + + if (bot.getPlayerStats().isNether(target) != bot.getPlayerStats().isNether(e.getMember())) { e.getMessage().reply( ":x: You tried to kill " + target.getAsMention() + " but they were in a different dimension!") @@ -73,6 +84,9 @@ public class RobCommand extends CooldownCommand { e.getMessage().addReaction(Emoji.fromUnicode(pvpEmoji)).queue(); + bot.getPlayerStats().setInBattle(target, true); + bot.getPlayerStats().setInBattle(e.getMember(), true); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("pvp"); String startString = e.getAuthor().getAsMention() + " is fighting " + target.getAsMention() + "...\n\n"; @@ -117,6 +131,7 @@ public class RobCommand extends CooldownCommand { + " Managed to escape!\n"); message.editMessageEmbeds(eb.build()).queueAfter(1, TimeUnit.SECONDS, m -> { m.editMessageEmbeds(eb.build()).queue(); + endFight(target, e.getMember()); }); return; @@ -175,6 +190,7 @@ public class RobCommand extends CooldownCommand { long hp = bot.getHealths().damage(message, target, damage, deathMessage); if (hp <= 0) { + endFight(target, attacker); return; } @@ -186,10 +202,16 @@ public class RobCommand extends CooldownCommand { } else { eb.appendDescription("\n" + target.getAsMention() + " is now on " + bot.getHealths().getHPString(target)); message.editMessageEmbeds(eb.build()).queue(); + endFight(target, attacker); } return; } + private void endFight(Member target, Member attacker) { + bot.getPlayerStats().setInBattle(target, false); + bot.getPlayerStats().setInBattle(attacker, false); + } + public boolean canFight(Member member) { return bot.getSword(member).getLevel() != 0; } -- cgit v1.2.3