summaryrefslogtreecommitdiff
path: root/src/main/java/net/uomc/mineshaft/RobCommand.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/uomc/mineshaft/RobCommand.java')
-rw-r--r--src/main/java/net/uomc/mineshaft/RobCommand.java26
1 files changed, 24 insertions, 2 deletions
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;
}