13
0

Hotfixing SafeSchematicNode
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful

Dieser Commit ist enthalten in:
Chaos 2022-02-04 20:35:56 +01:00
Ursprung a2e5a7b320
Commit ccdf61b6c9

Datei anzeigen

@ -25,14 +25,10 @@ import lombok.AllArgsConstructor;
import lombok.NonNull; import lombok.NonNull;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class SafeSchematicNode { public class SafeSchematicNode {
public static Result setParent(@NonNull SteamwarUser user, @NonNull SchematicNode node, SchematicNode newParent) { public static Result setParent(@NonNull SteamwarUser user, @NonNull SchematicNode node, SchematicNode newParent) {
if(user.getId() != node.getId()) { if(user.getId() != node.getOwner()) {
return Result.NOT_OWNER; return Result.NOT_OWNER;
} }
if(newParent == null) { if(newParent == null) {
@ -58,11 +54,11 @@ public class SafeSchematicNode {
} }
public static Result setName(@NonNull SteamwarUser user, @NonNull SchematicNode node, @NonNull String name) { public static Result setName(@NonNull SteamwarUser user, @NonNull SchematicNode node, @NonNull String name) {
if(user.getId() != node.getId()) { if(user.getId() != node.getOwner()) {
return Result.NOT_OWNER; return Result.NOT_OWNER;
} }
if(invalidSchemName(name)) { if(SchematicNode.invalidSchemName(new String[]{name})) {
return Result.INVALID_NAME; return Result.INVALID_NAME;
} }
@ -74,28 +70,6 @@ public class SafeSchematicNode {
return Result.DONE; return Result.DONE;
} }
private static final List<String> FORBIDDEN_NAMES = Collections.unmodifiableList(Arrays.asList("public"));
public static boolean invalidSchemName(String name) {
if (name.isEmpty()) {
return true;
}
if(name.length() > 64) {
return true;
}
if (name.contains("/") ||
name.contains("\\") ||
name.contains("<") ||
name.contains(">") ||
name.contains("^") ||
name.contains("°") ||
name.contains("'") ||
name.contains("\"") ||
name.contains(" ")) {
return true;
}
return FORBIDDEN_NAMES.contains(name.toLowerCase());
}
@AllArgsConstructor @AllArgsConstructor
public enum Result { public enum Result {
DONE("No"), DONE("No"),
@ -104,7 +78,7 @@ public class SafeSchematicNode {
INVALID_NAME(SchematicSystem.PREFIX + "§cDieser Name ist unzulässig"), INVALID_NAME(SchematicSystem.PREFIX + "§cDieser Name ist unzulässig"),
NOT_OWNER(SchematicSystem.PREFIX + "§cDu bist nicht der Besitzer dieser Schematic"); NOT_OWNER(SchematicSystem.PREFIX + "§cDu bist nicht der Besitzer dieser Schematic");
private String errorMessage; private final String errorMessage;
public void sendError(Player player) { public void sendError(Player player) {
player.sendMessage(errorMessage); player.sendMessage(errorMessage);