Dieser Commit ist enthalten in:
Ursprung
a2e5a7b320
Commit
ccdf61b6c9
@ -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);
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren