Skip to content

Commit

Permalink
feat: added check for locations when starting a game
Browse files Browse the repository at this point in the history
  • Loading branch information
RoinujNosde committed Oct 2, 2023
1 parent 0eaf61c commit 1e416d2
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import me.roinujnosde.titansbattle.types.Winners;
import me.roinujnosde.titansbattle.utils.Helper;
import me.roinujnosde.titansbattle.utils.SoundUtils;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -53,7 +52,7 @@ public class TBCommands extends BaseCommand {
@CommandPermission("titansbattle.start")
@CommandCompletion("@games")
@Description("{@@command.description.start}")
public void start(CommandSender sender, @Values("@games") GameConfiguration game) {
public void start(CommandSender sender, @Values("@games") @Conditions("ready") GameConfiguration game) {
java.util.Optional<Game> currentGame = gameManager.getCurrentGame();
if (currentGame.isPresent()) {
sender.sendMessage(plugin.getLang("starting-or-started", currentGame.orElse(null)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
import me.roinujnosde.titansbattle.challenges.ChallengeRequest;
import org.jetbrains.annotations.NotNull;

public class ReadyCondition extends AbstractParameterCondition<ArenaConfiguration> {
public class ArenaReadyCondition extends AbstractParameterCondition<ArenaConfiguration> {

public ReadyCondition(TitansBattle plugin) {
public ArenaReadyCondition(TitansBattle plugin) {
super(plugin);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package me.roinujnosde.titansbattle.commands.conditions;

import co.aikar.commands.*;
import me.roinujnosde.titansbattle.TitansBattle;
import me.roinujnosde.titansbattle.types.GameConfiguration;
import org.jetbrains.annotations.NotNull;

public class GameReadyCondition extends AbstractParameterCondition<GameConfiguration> {

public GameReadyCondition(TitansBattle plugin) {
super(plugin);
}

@Override
public @NotNull Class<GameConfiguration> getType() {
return GameConfiguration.class;
}

@Override
public void validateCondition(ConditionContext<BukkitCommandIssuer> cc,
BukkitCommandExecutionContext cec,
GameConfiguration value) throws InvalidCommandArgument {
if (!value.locationsSet()) {
cc.getIssuer().sendMessage(plugin.getLang("this.game.isnt.ready"));
throw new ConditionFailedException();
}
}

@Override
public @NotNull String getId() {
return "ready";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@ private void registerConditions() {
registerCondition(new HappeningCondition(getPlugin()));
registerCondition(new EmptyInventoryCondition(getPlugin()));
registerCondition(new CanChallengeCondition(getPlugin()));
registerCondition(new ReadyCondition(getPlugin()));
registerCondition(new ArenaReadyCondition(getPlugin()));
registerCondition(new GameReadyCondition(getPlugin()));
registerCondition(new InvitedCondition(getPlugin()));
registerCondition(new OtherPlayerCondition(getPlugin()));
registerCondition(new OtherGroupCondition(getPlugin()));
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/language-en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ border.title: "&4&lTHE BORDER"
border.subtitle: "&7is shrinking"
group.mode.not.supported: "&c» This arena doesn't support this type of challenge!"
this.arena.isnt.ready: "&c» This arena isn't ready!"
this.game.isnt.ready: "&c» This game isn't ready!"
group.not.found: "&c» Group not found!"
you.must.be.in.a.group.to.challenge: "&c» You must be in a group to challenge another group!"
challenged.you: "&a» {0} challenged you to a duel! Accept it using /tb challenge accept {0}"
Expand Down

0 comments on commit 1e416d2

Please sign in to comment.