Add checking for valid color and sending message if its invalid

This commit is contained in:
SemvdH
2025-10-19 12:51:28 +02:00
parent 34c3825205
commit a7f50e3710

View File

@@ -14,6 +14,7 @@ import org.bukkit.entity.Player;
import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.ComponentStyle; import net.md_5.bungee.api.chat.ComponentStyle;
import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.chat.TranslatableComponent;
import nl.interestingcorner.db.Coordinate; import nl.interestingcorner.db.Coordinate;
import nl.interestingcorner.db.DatabaseManager; import nl.interestingcorner.db.DatabaseManager;
import nl.interestingcorner.db.MinecraftColor; import nl.interestingcorner.db.MinecraftColor;
@@ -36,14 +37,12 @@ public class AddCoordinateCommandHandler implements CoordinatesCommandHandler {
this.sender = sender; this.sender = sender;
List<String> argsWithoutFirstCommand = removeFirstArg(args); List<String> argsWithoutFirstCommand = removeFirstArg(args);
if (argsWithoutFirstCommand.isEmpty()) if (argsWithoutFirstCommand.isEmpty()) {
{
return false; return false;
} }
List<String> parsedArgs = parseArgs(argsWithoutFirstCommand.toArray(String[]::new)); List<String> parsedArgs = parseArgs(argsWithoutFirstCommand.toArray(String[]::new));
if (parsedArgs.isEmpty()) if (parsedArgs.isEmpty()) {
{
return false; return false;
} }
@@ -51,17 +50,16 @@ public class AddCoordinateCommandHandler implements CoordinatesCommandHandler {
sender.sendMessage("0:" + parsedArgs.get(0)); sender.sendMessage("0:" + parsedArgs.get(0));
sender.sendMessage("1:" + parsedArgs.get(1)); sender.sendMessage("1:" + parsedArgs.get(1));
sender.sendMessage("2:" + parsedArgs.get(2)); sender.sendMessage("2:" + parsedArgs.get(2));
if (!MinecraftColor.isValidColor(parsedArgs.get(2))) String name = parsedArgs.get(0);
{ String description = parsedArgs.get(0);
TextComponent errorMessage = new TextComponent(); String color = parsedArgs.get(0);
ComponentStyle messageStyle = new ComponentStyle();
messageStyle.setColor(ChatColor.DARK_RED); if (!MinecraftColor.isValidColor(color)) {
errorMessage.setStyle(messageStyle); sendInvalidColorMessage(color);
errorMessage.setText("Color " + parsedArgs.get(2) + " is not a valid color!");
return false; return false;
} }
if (sender instanceof Player player) { if (sender instanceof Player player) {
Location playerLocation = player.getLocation(); Location playerLocation = player.getLocation();
if (playerLocation == null) { if (playerLocation == null) {
@@ -73,15 +71,14 @@ public class AddCoordinateCommandHandler implements CoordinatesCommandHandler {
return false; return false;
} }
return DatabaseManager.INSTANCE return DatabaseManager.INSTANCE
.addCoordinate(parsedArgs.get(0), // name .addCoordinate(name, // name
parsedArgs.get(1), // description description, // description
new Coordinate.Position(playerLocation.getBlockX(), playerLocation.getBlockY(), new Coordinate.Position(playerLocation.getBlockX(), playerLocation.getBlockY(),
playerLocation.getBlockZ()), // position playerLocation.getBlockZ()), // position
playerWorld.getEnvironment().equals(World.Environment.NETHER), // nether playerWorld.getEnvironment().equals(World.Environment.NETHER), // nether
playerWorld.getName(), // world playerWorld.getName(), // world
MinecraftColor.fromString(parsedArgs.get(2)) // color MinecraftColor.fromString(color) // color
); );
} }
@@ -142,4 +139,21 @@ public class AddCoordinateCommandHandler implements CoordinatesCommandHandler {
return res; return res;
} }
private void sendInvalidColorMessage(String color)
{
TextComponent finalMessage = new TextComponent();
TextComponent colorMessage = new TextComponent("Color ");
colorMessage.setColor(ChatColor.RED);
finalMessage.addExtra(colorMessage);
TextComponent enteredColor = new TextComponent(color);
enteredColor.setColor(ChatColor.AQUA);
finalMessage.addExtra(enteredColor);
TextComponent endOfMessage = new TextComponent(" is not a valid color!");
colorMessage.setColor(ChatColor.RED);
finalMessage.addExtra(endOfMessage);
sender.spigot().sendMessage(finalMessage);
}
} }