Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do not use color codes in commands #2616 #2618

Merged
merged 1 commit into from
Feb 16, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading