Skip to content

Commit

Permalink
Merge pull request #2618 from BentoBoxWorld/2616_colored_names_kick
Browse files Browse the repository at this point in the history
Do not use color codes in commands #2616
  • Loading branch information
tastybento authored Feb 16, 2025
2 parents c18e848 + d3906f8 commit f86bf0d
Show file tree
Hide file tree
Showing 8 changed files with 110 additions and 190 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package world.bentobox.bentobox.api.commands.admin;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
Expand All @@ -11,6 +10,8 @@

import world.bentobox.bentobox.api.commands.CompositeCommand;
import world.bentobox.bentobox.api.commands.ConfirmableCommand;
import world.bentobox.bentobox.api.commands.island.IslandGoCommand;
import world.bentobox.bentobox.api.commands.island.IslandGoCommand.IslandInfo;
import world.bentobox.bentobox.api.events.island.IslandEvent;
import world.bentobox.bentobox.api.events.island.IslandEvent.Reason;
import world.bentobox.bentobox.api.localization.TextVariables;
Expand Down Expand Up @@ -66,7 +67,7 @@ public boolean canExecute(User user, String label, List<String> args) {
// Get the island
User target = User.getInstance(targetUUID);
// They named the island to go to
Map<String, IslandInfo> names = getNameIslandMap(target);
Map<String, IslandInfo> names = IslandGoCommand.getNameIslandMap(target, getWorld());
final String name = String.join(" ", args.subList(1, args.size()));
if (!names.containsKey(name)) {
// Failed home name check
Expand All @@ -77,7 +78,7 @@ public boolean canExecute(User user, String label, List<String> args) {
return false;
} else {
IslandInfo info = names.get(name);
island = info.island;
island = info.island();
}

// Team members should be kicked before deleting otherwise the whole team will become weird
Expand Down Expand Up @@ -164,31 +165,6 @@ private void cleanUp(User target) {
Util.runCommands(target, target.getName(), getIWM().getOnLeaveCommands(getWorld()), "leave");
}

private record IslandInfo(Island island, boolean islandName) {
}

private Map<String, IslandInfo> getNameIslandMap(User target) {
Map<String, IslandInfo> islandMap = new HashMap<>();
int index = 0;
for (Island island : getIslands().getIslands(getWorld(), target.getUniqueId())) {
index++;
if (island.getName() != null && !island.getName().isBlank()) {
// Name has been set
islandMap.put(island.getName(), new IslandInfo(island, true));
} else {
// Name has not been set
String text = target.getTranslation("protection.flags.ENTER_EXIT_MESSAGES.island", TextVariables.NAME,
target.getName(), TextVariables.DISPLAY_NAME, target.getDisplayName()) + " " + index;
islandMap.put(text, new IslandInfo(island, true));
}
// Add homes. Homes do not need an island specified
island.getHomes().keySet().forEach(n -> islandMap.put(n, new IslandInfo(island, false)));
}

return islandMap;

}

@Override
public Optional<List<String>> tabComplete(User user, String alias, List<String> args) {
String lastArg = !args.isEmpty() ? args.get(args.size()-1) : "";
Expand All @@ -202,7 +178,9 @@ public Optional<List<String>> tabComplete(User user, String alias, List<String>
if (args.size() == 3) {
UUID target = Util.getUUID(args.get(1));
return target == null ? Optional.empty()
: Optional.of(Util.tabLimit(new ArrayList<>(getNameIslandMap(User.getInstance(target)).keySet()),
: Optional.of(Util.tabLimit(
new ArrayList<>(
IslandGoCommand.getNameIslandMap(User.getInstance(target), getWorld()).keySet()),
lastArg));
}
return Optional.empty();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@

import world.bentobox.bentobox.api.commands.CompositeCommand;
import world.bentobox.bentobox.api.commands.ConfirmableCommand;
import world.bentobox.bentobox.api.commands.island.IslandGoCommand;
import world.bentobox.bentobox.api.commands.island.IslandGoCommand.IslandInfo;
import world.bentobox.bentobox.api.localization.TextVariables;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.bentobox.database.objects.Island;
import world.bentobox.bentobox.util.Util;

/**
Expand All @@ -33,7 +34,7 @@
public class AdminMaxHomesCommand extends ConfirmableCommand {

Integer maxHomes;
Map<String, Island> islands = new HashMap<>();
Map<String, IslandInfo> islands = new HashMap<>();

public AdminMaxHomesCommand(CompositeCommand parent) {
super(parent, "setmaxhomes");
Expand Down Expand Up @@ -74,7 +75,7 @@ public boolean canExecute(User user, String label, List<String> args) {
}
// Get the island the user is standing on
boolean onIsland = getIslands().getIslandAt(user.getLocation()).map(is -> {
islands.put("", is);
islands.put("", new IslandInfo(is, false));
return true;
}).orElse(false);
if (!onIsland) {
Expand All @@ -96,8 +97,9 @@ public boolean canExecute(User user, String label, List<String> args) {
user.sendMessage("general.errors.must-be-positive-number", TextVariables.NUMBER, args.get(1));
return false;
}

// Get islands
islands = this.getNameIslandMap(User.getInstance(targetUUID));
islands = IslandGoCommand.getNameIslandMap(User.getInstance(targetUUID), getWorld());
if (islands.isEmpty()) {
user.sendMessage("general.errors.player-has-no-island");
return false;
Expand Down Expand Up @@ -125,7 +127,7 @@ public boolean execute(User user, String label, List<String> args) {
return false;
}
islands.forEach((name, island) -> {
island.setMaxHomes(maxHomes);
island.island().setMaxHomes(maxHomes);
user.sendMessage("commands.admin.maxhomes.max-homes-set", TextVariables.NAME, name, TextVariables.NUMBER,
String.valueOf(maxHomes));
});
Expand All @@ -144,31 +146,11 @@ public Optional<List<String>> tabComplete(User user, String alias, List<String>
UUID targetUUID = getPlayers().getUUID(args.get(1));
if (targetUUID != null) {
User target = User.getInstance(targetUUID);
return Optional.of(Util.tabLimit(new ArrayList<>(getNameIslandMap(target).keySet()), lastArg));
return Optional.of(Util.tabLimit(new ArrayList<>(IslandGoCommand.getNameIslandMap(target, getWorld()).keySet()), lastArg));
}
}
return Optional.of(List.of("1"));

}

Map<String, Island> getNameIslandMap(User user) {
Map<String, Island> islandMap = new HashMap<>();
int index = 0;
for (Island island : getIslands().getIslands(getWorld(), user.getUniqueId())) {
index++;
if (island.getName() != null && !island.getName().isBlank()) {
// Name has been set
islandMap.put(island.getName(), island);
} else {
// Name has not been set
String text = user.getTranslation("protection.flags.ENTER_EXIT_MESSAGES.island", TextVariables.NAME,
user.getName(), TextVariables.DISPLAY_NAME, user.getDisplayName()) + " " + index;
islandMap.put(text, island);
}
}

return islandMap;

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
import java.util.UUID;

import world.bentobox.bentobox.api.commands.CompositeCommand;
import world.bentobox.bentobox.api.commands.island.IslandGoCommand;
import world.bentobox.bentobox.api.commands.island.IslandGoCommand.IslandInfo;
import world.bentobox.bentobox.api.localization.TextVariables;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.bentobox.database.objects.Island;
Expand All @@ -20,7 +22,7 @@
*/
public class AdminResetHomeCommand extends CompositeCommand
{
Map<String, Island> islands = new HashMap<>();
Map<String, IslandInfo> islands = new HashMap<>();

/**
* Default constructor.
Expand Down Expand Up @@ -66,7 +68,7 @@ public boolean canExecute(User user, String label, List<String> args)
return false;
}
// Get islands
islands = this.getNameIslandMap(User.getInstance(targetUUID));
islands = IslandGoCommand.getNameIslandMap(User.getInstance(targetUUID), getWorld());
if (islands.isEmpty()) {
user.sendMessage("general.errors.player-has-no-island");
return false;
Expand Down Expand Up @@ -107,7 +109,7 @@ public boolean execute(User user, String label, List<String> args)
return false;
}
islands.forEach((name, island) -> {
island.getHomes().keySet().removeIf(String::isEmpty); // Remove the default home
island.island().getHomes().keySet().removeIf(String::isEmpty); // Remove the default home
user.sendMessage("commands.admin.resethome.cleared", TextVariables.NAME, name);
});

Expand All @@ -128,31 +130,12 @@ public Optional<List<String>> tabComplete(User user, String alias, List<String>
UUID targetUUID = getPlayers().getUUID(args.get(0));
if (targetUUID != null) {
User target = User.getInstance(targetUUID);
return Optional.of(Util.tabLimit(new ArrayList<>(getNameIslandMap(target).keySet()), lastArg));
return Optional.of(Util.tabLimit(
new ArrayList<>(IslandGoCommand.getNameIslandMap(target, getWorld()).keySet()), lastArg));
}
}
return Optional.empty();

}

Map<String, Island> getNameIslandMap(User user) {
Map<String, Island> islandMap = new HashMap<>();
int index = 0;
for (Island island : getIslands().getIslands(getWorld(), user.getUniqueId())) {
index++;
if (island.getName() != null && !island.getName().isBlank()) {
// Name has been set
islandMap.put(island.getName(), island);
} else {
// Name has not been set
String text = user.getTranslation("protection.flags.ENTER_EXIT_MESSAGES.island", TextVariables.NAME,
user.getName(), TextVariables.DISPLAY_NAME, user.getDisplayName()) + " " + index;
islandMap.put(text, island);
}
}

return islandMap;

}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package world.bentobox.bentobox.api.commands.admin;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
Expand All @@ -14,6 +13,8 @@
import org.eclipse.jdt.annotation.Nullable;

import world.bentobox.bentobox.api.commands.CompositeCommand;
import world.bentobox.bentobox.api.commands.island.IslandGoCommand;
import world.bentobox.bentobox.api.commands.island.IslandGoCommand.IslandInfo;
import world.bentobox.bentobox.api.localization.TextVariables;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.bentobox.database.objects.Island;
Expand Down Expand Up @@ -93,7 +94,7 @@ public boolean canExecute(User user, String label, List<String> args) {
}

// They named the island to go to
Map<String, IslandInfo> names = getNameIslandMap(User.getInstance(targetUUID));
Map<String, IslandInfo> names = IslandGoCommand.getNameIslandMap(User.getInstance(targetUUID), getWorld());
final String name = String.join(" ", args.subList(1, args.size()));
if (!names.containsKey(name)) {
// Failed home name check
Expand All @@ -104,7 +105,7 @@ public boolean canExecute(User user, String label, List<String> args) {
return false;
} else if (names.size() > 1) {
IslandInfo info = names.get(name);
Island island = info.island;
Island island = info.island();
warpSpot = island.getSpawnPoint(world.getEnvironment()) != null
? island.getSpawnPoint(world.getEnvironment())
: island.getProtectionCenter().toVector().toLocation(world);
Expand Down Expand Up @@ -142,31 +143,6 @@ private Location getSpot(World world) {
return island.getSpawnPoint(world.getEnvironment()) != null ? island.getSpawnPoint(world.getEnvironment()) : island.getProtectionCenter().toVector().toLocation(world);
}

private record IslandInfo(Island island, boolean islandName) {
}

private Map<String, IslandInfo> getNameIslandMap(User target) {
Map<String, IslandInfo> islandMap = new HashMap<>();
int index = 0;
for (Island island : getIslands().getIslands(getWorld(), target.getUniqueId())) {
index++;
if (island.getName() != null && !island.getName().isBlank()) {
// Name has been set
islandMap.put(island.getName(), new IslandInfo(island, true));
} else {
// Name has not been set
String text = target.getTranslation("protection.flags.ENTER_EXIT_MESSAGES.island", TextVariables.NAME,
target.getName(), TextVariables.DISPLAY_NAME, target.getDisplayName()) + " " + index;
islandMap.put(text, new IslandInfo(island, true));
}
// Add homes. Homes do not need an island specified
island.getHomes().keySet().forEach(n -> islandMap.put(n, new IslandInfo(island, false)));
}

return islandMap;

}

@Override
public Optional<List<String>> tabComplete(User user, String alias, List<String> args) {
String lastArg = !args.isEmpty() ? args.get(args.size()-1) : "";
Expand All @@ -182,7 +158,10 @@ public Optional<List<String>> tabComplete(User user, String alias, List<String>
UUID target = Util.getUUID(args.get(1));
return target == null ? Optional.empty()
: Optional
.of(Util.tabLimit(new ArrayList<>(getNameIslandMap(User.getInstance(target)).keySet()), lastArg));
.of(Util.tabLimit(
new ArrayList<>(IslandGoCommand
.getNameIslandMap(User.getInstance(target), getWorld()).keySet()),
lastArg));
}
return Optional.empty();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package world.bentobox.bentobox.api.commands.admin;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
Expand All @@ -15,6 +14,8 @@
import org.eclipse.jdt.annotation.Nullable;

import world.bentobox.bentobox.api.commands.CompositeCommand;
import world.bentobox.bentobox.api.commands.island.IslandGoCommand;
import world.bentobox.bentobox.api.commands.island.IslandGoCommand.IslandInfo;
import world.bentobox.bentobox.api.localization.TextVariables;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.bentobox.database.objects.Island;
Expand Down Expand Up @@ -103,7 +104,8 @@ public boolean canExecute(User user, String label, List<String> args) {
}

// They named the island to go to
Map<String, IslandInfo> names = getNameIslandMap(User.getInstance(targetUUID));
Map<String, world.bentobox.bentobox.api.commands.island.IslandGoCommand.IslandInfo> names = IslandGoCommand
.getNameIslandMap(User.getInstance(targetUUID), getWorld());
final String name = String.join(" ", args.subList(2, args.size()));
if (!names.containsKey(name)) {
// Failed home name check
Expand All @@ -114,7 +116,7 @@ public boolean canExecute(User user, String label, List<String> args) {
return false;
} else if (names.size() > 1) {
IslandInfo info = names.get(name);
Island island = info.island;
Island island = info.island();
warpSpot = island.getSpawnPoint(world.getEnvironment()) != null
? island.getSpawnPoint(world.getEnvironment())
: island.getProtectionCenter().toVector().toLocation(world);
Expand Down Expand Up @@ -152,31 +154,6 @@ private Location getSpot(World world) {
return island.getSpawnPoint(world.getEnvironment()) != null ? island.getSpawnPoint(world.getEnvironment()) : island.getProtectionCenter().toVector().toLocation(world);
}

private record IslandInfo(Island island, boolean islandName) {
}

private Map<String, IslandInfo> getNameIslandMap(User target) {
Map<String, IslandInfo> islandMap = new HashMap<>();
int index = 0;
for (Island island : getIslands().getIslands(getWorld(), target.getUniqueId())) {
index++;
if (island.getName() != null && !island.getName().isBlank()) {
// Name has been set
islandMap.put(island.getName(), new IslandInfo(island, true));
} else {
// Name has not been set
String text = target.getTranslation("protection.flags.ENTER_EXIT_MESSAGES.island", TextVariables.NAME,
target.getName(), TextVariables.DISPLAY_NAME, target.getDisplayName()) + " " + index;
islandMap.put(text, new IslandInfo(island, true));
}
// Add homes. Homes do not need an island specified
island.getHomes().keySet().forEach(n -> islandMap.put(n, new IslandInfo(island, false)));
}

return islandMap;

}

@Override
public Optional<List<String>> tabComplete(User user, String alias, List<String> args) {
String lastArg = !args.isEmpty() ? args.get(args.size()-1) : "";
Expand All @@ -192,7 +169,10 @@ public Optional<List<String>> tabComplete(User user, String alias, List<String>
UUID target = Util.getUUID(args.get(2));
return target == null ? Optional.empty()
: Optional
.of(Util.tabLimit(new ArrayList<>(getNameIslandMap(User.getInstance(target)).keySet()), lastArg));
.of(Util.tabLimit(
new ArrayList<>(IslandGoCommand
.getNameIslandMap(User.getInstance(target), getWorld()).keySet()),
lastArg));
}
return Optional.empty();
}
Expand Down
Loading

0 comments on commit f86bf0d

Please sign in to comment.