Skip to content

Commit

Permalink
Changed /is admin recalc to not recalculate all islands by default
Browse files Browse the repository at this point in the history
  • Loading branch information
OmerBenGera committed Mar 18, 2022
1 parent cc7f330 commit 265661e
Showing 1 changed file with 15 additions and 28 deletions.
@@ -1,20 +1,17 @@
package com.bgsoftware.superiorskyblock.commands.admin;

import com.bgsoftware.superiorskyblock.lang.Message;
import com.bgsoftware.superiorskyblock.SuperiorSkyblockPlugin;
import com.bgsoftware.superiorskyblock.api.island.Island;
import com.bgsoftware.superiorskyblock.api.wrappers.SuperiorPlayer;
import com.bgsoftware.superiorskyblock.commands.CommandTabCompletes;
import com.bgsoftware.superiorskyblock.commands.ISuperiorCommand;
import com.bgsoftware.superiorskyblock.utils.StringUtils;
import com.bgsoftware.superiorskyblock.commands.IAdminIslandCommand;
import com.bgsoftware.superiorskyblock.lang.Message;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public final class CmdAdminRecalc implements ISuperiorCommand {
public final class CmdAdminRecalc implements IAdminIslandCommand {

@Override
public List<String> getAliases() {
Expand All @@ -28,9 +25,10 @@ public String getPermission() {

@Override
public String getUsage(java.util.Locale locale) {
return "admin recalc [" +
return "admin recalc <" +
Message.COMMAND_ARGUMENT_PLAYER_NAME.getMessage(locale) + "/" +
Message.COMMAND_ARGUMENT_ISLAND_NAME.getMessage(locale) + "]";
Message.COMMAND_ARGUMENT_ISLAND_NAME.getMessage(locale) + "/" +
Message.COMMAND_ARGUMENT_ALL_ISLANDS.getMessage(locale) + ">";
}

@Override
Expand All @@ -40,7 +38,7 @@ public String getDescription(java.util.Locale locale) {

@Override
public int getMinArgs() {
return 2;
return 3;
}

@Override
Expand All @@ -54,23 +52,17 @@ public boolean canBeExecutedByConsole() {
}

@Override
public void execute(SuperiorSkyblockPlugin plugin, CommandSender sender, String[] args) {
if (args.length == 2) {
public boolean supportMultipleIslands() {
return true;
}

@Override
public void execute(SuperiorSkyblockPlugin plugin, CommandSender sender, SuperiorPlayer targetPlayer, List<Island> islands, String[] args) {
if (islands.size() > 1) {
Message.RECALC_ALL_ISLANDS.send(sender);
plugin.getGrid().calcAllIslands(() -> Message.RECALC_ALL_ISLANDS_DONE.send(sender));
} else {
SuperiorPlayer targetPlayer = plugin.getPlayers().getSuperiorPlayer(args[2]);
Island island = targetPlayer == null ? plugin.getGrid().getIsland(args[2]) : targetPlayer.getIsland();

if (island == null) {
if (args[2].equalsIgnoreCase(sender.getName()))
Message.INVALID_ISLAND.send(sender);
else if (targetPlayer == null)
Message.INVALID_ISLAND_OTHER_NAME.send(sender, StringUtils.stripColors(args[2]));
else
Message.INVALID_ISLAND_OTHER.send(sender, targetPlayer.getName());
return;
}
Island island = islands.get(0);

if (island.isBeingRecalculated()) {
Message.RECALC_ALREADY_RUNNING_OTHER.send(sender);
Expand All @@ -82,9 +74,4 @@ else if (targetPlayer == null)
}
}

@Override
public List<String> tabComplete(SuperiorSkyblockPlugin plugin, CommandSender sender, String[] args) {
return args.length == 3 ? CommandTabCompletes.getOnlinePlayersWithIslands(plugin, args[2], false) : new ArrayList<>();
}

}

0 comments on commit 265661e

Please sign in to comment.