Update from Git Manager GUI
This commit is contained in:
53
src/main/java/de/ticketsystem/model/ConfigCategory.java
Normal file
53
src/main/java/de/ticketsystem/model/ConfigCategory.java
Normal file
@@ -0,0 +1,53 @@
|
||||
package de.ticketsystem.model;
|
||||
|
||||
import org.bukkit.Material;
|
||||
|
||||
/**
|
||||
* Eine aus der config.yml geladene Ticket-Kategorie.
|
||||
* Ersetzt das hardcodierte TicketCategory-Enum vollständig.
|
||||
*
|
||||
* Konfigurationsbeispiel (config.yml):
|
||||
*
|
||||
* categories:
|
||||
* bug:
|
||||
* name: "Bug"
|
||||
* color: "&c"
|
||||
* material: "REDSTONE"
|
||||
* aliases:
|
||||
* - "bug"
|
||||
* - "fehler"
|
||||
*/
|
||||
public class ConfigCategory {
|
||||
|
||||
/** Interner Schlüssel aus der Config (z.B. "bug", "general") – immer Kleinbuchstaben */
|
||||
private final String key;
|
||||
|
||||
/** Anzeigename (z.B. "Bug", "Allgemein") */
|
||||
private final String name;
|
||||
|
||||
/** Minecraft-Farbcode (z.B. "&c") */
|
||||
private final String color;
|
||||
|
||||
/** GUI-Item-Material */
|
||||
private final Material material;
|
||||
|
||||
public ConfigCategory(String key, String name, String color, Material material) {
|
||||
this.key = key.toLowerCase();
|
||||
this.name = name;
|
||||
this.color = color;
|
||||
this.material = material;
|
||||
}
|
||||
|
||||
public String getKey() { return key; }
|
||||
public String getName() { return name; }
|
||||
public String getColor() { return color; }
|
||||
public Material getMaterial() { return material; }
|
||||
|
||||
/** Gibt den farbigen Anzeigenamen zurück, z.B. "§cBug" */
|
||||
public String getColored() {
|
||||
return org.bukkit.ChatColor.translateAlternateColorCodes('&', color + name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() { return key; }
|
||||
}
|
||||
@@ -3,7 +3,6 @@ package de.ticketsystem.model;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
||||
import org.bukkit.configuration.serialization.SerializableAs;
|
||||
import org.bukkit.configuration.serialization.ConfigurationSerialization;
|
||||
@@ -17,215 +16,163 @@ import java.util.UUID;
|
||||
@SerializableAs("Ticket")
|
||||
public class Ticket implements ConfigurationSerializable {
|
||||
|
||||
private int id;
|
||||
private UUID creatorUUID;
|
||||
private int id;
|
||||
private UUID creatorUUID;
|
||||
private String creatorName;
|
||||
private String message;
|
||||
|
||||
private String worldName;
|
||||
private double x, y, z;
|
||||
private float yaw, pitch;
|
||||
private float yaw, pitch;
|
||||
|
||||
private TicketStatus status;
|
||||
private UUID claimerUUID;
|
||||
private String claimerName;
|
||||
private UUID forwardedToUUID;
|
||||
private String forwardedToName;
|
||||
private Timestamp createdAt;
|
||||
private Timestamp claimedAt;
|
||||
private Timestamp closedAt;
|
||||
private String closeComment;
|
||||
private UUID claimerUUID;
|
||||
private String claimerName;
|
||||
private UUID forwardedToUUID;
|
||||
private String forwardedToName;
|
||||
private Timestamp createdAt;
|
||||
private Timestamp claimedAt;
|
||||
private Timestamp closedAt;
|
||||
private String closeComment;
|
||||
|
||||
// ─── NEU: Soft Delete Flag ───
|
||||
private boolean playerDeleted = false;
|
||||
|
||||
/** Kategorie-Key aus config.yml, z.B. "bug", "general" */
|
||||
private String categoryKey = "general";
|
||||
|
||||
private TicketPriority priority = TicketPriority.NORMAL;
|
||||
|
||||
/** null = nicht bewertet | "THUMBS_UP" | "THUMBS_DOWN" */
|
||||
private String playerRating = null;
|
||||
private boolean claimerNotified = false;
|
||||
|
||||
public Ticket() {}
|
||||
|
||||
|
||||
public Ticket(UUID creatorUUID, String creatorName, String message, Location location) {
|
||||
this.creatorUUID = creatorUUID;
|
||||
this.creatorName = creatorName;
|
||||
this.message = message;
|
||||
this.worldName = location.getWorld().getName();
|
||||
this.x = location.getX();
|
||||
this.y = location.getY();
|
||||
this.z = location.getZ();
|
||||
this.yaw = location.getYaw();
|
||||
this.pitch = location.getPitch();
|
||||
this.status = TicketStatus.OPEN;
|
||||
this.message = message;
|
||||
this.worldName = location.getWorld().getName();
|
||||
this.x = location.getX(); this.y = location.getY(); this.z = location.getZ();
|
||||
this.yaw = location.getYaw(); this.pitch = location.getPitch();
|
||||
this.status = TicketStatus.OPEN;
|
||||
this.createdAt = new Timestamp(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
// --- NEU: Konstruktor zum Laden aus der YAML (Deserialisierung) ---
|
||||
public Ticket(Map<String, Object> map) {
|
||||
this.id = (int) map.get("id");
|
||||
|
||||
// UUIDs sicher aus String konvertieren
|
||||
Object creatorObj = map.get("creatorUUID");
|
||||
this.creatorUUID = creatorObj instanceof UUID ? (UUID) creatorObj : UUID.fromString((String) creatorObj);
|
||||
|
||||
Object cObj = map.get("creatorUUID");
|
||||
this.creatorUUID = cObj instanceof UUID ? (UUID) cObj : UUID.fromString((String) cObj);
|
||||
this.creatorName = (String) map.get("creatorName");
|
||||
this.message = (String) map.get("message");
|
||||
this.worldName = (String) map.get("world");
|
||||
|
||||
// Koordinaten sicher parsen
|
||||
this.x = map.get("x") instanceof Double ? (Double) map.get("x") : ((Number) map.get("x")).doubleValue();
|
||||
this.y = map.get("y") instanceof Double ? (Double) map.get("y") : ((Number) map.get("y")).doubleValue();
|
||||
this.z = map.get("z") instanceof Double ? (Double) map.get("z") : ((Number) map.get("z")).doubleValue();
|
||||
|
||||
this.yaw = map.get("yaw") instanceof Float ? (Float) map.get("yaw") : ((Number) map.get("yaw")).floatValue();
|
||||
this.pitch = map.get("pitch") instanceof Float ? (Float) map.get("pitch") : ((Number) map.get("pitch")).floatValue();
|
||||
|
||||
this.message = (String) map.get("message");
|
||||
this.worldName = (String) map.get("world");
|
||||
this.x = toDouble(map.get("x")); this.y = toDouble(map.get("y")); this.z = toDouble(map.get("z"));
|
||||
this.yaw = toFloat(map.get("yaw")); this.pitch = toFloat(map.get("pitch"));
|
||||
this.status = TicketStatus.valueOf((String) map.get("status"));
|
||||
|
||||
// Timestamps aus Long (Millis) wieder zu Timestamp machen
|
||||
if (map.get("createdAt") != null) {
|
||||
this.createdAt = new Timestamp(((Number) map.get("createdAt")).longValue());
|
||||
}
|
||||
if (map.get("claimedAt") != null) {
|
||||
this.claimedAt = new Timestamp(((Number) map.get("claimedAt")).longValue());
|
||||
}
|
||||
if (map.get("closedAt") != null) {
|
||||
this.closedAt = new Timestamp(((Number) map.get("closedAt")).longValue());
|
||||
}
|
||||
|
||||
if (map.get("createdAt") != null) this.createdAt = new Timestamp(toLong(map.get("createdAt")));
|
||||
if (map.get("claimedAt") != null) this.claimedAt = new Timestamp(toLong(map.get("claimedAt")));
|
||||
if (map.get("closedAt") != null) this.closedAt = new Timestamp(toLong(map.get("closedAt")));
|
||||
this.closeComment = (String) map.get("closeComment");
|
||||
|
||||
// Optionale Felder
|
||||
if (map.containsKey("claimerUUID") && map.get("claimerUUID") != null) {
|
||||
Object claimerObj = map.get("claimerUUID");
|
||||
this.claimerUUID = claimerObj instanceof UUID ? (UUID) claimerObj : UUID.fromString((String) claimerObj);
|
||||
Object o = map.get("claimerUUID");
|
||||
this.claimerUUID = o instanceof UUID ? (UUID) o : UUID.fromString((String) o);
|
||||
this.claimerName = (String) map.get("claimerName");
|
||||
}
|
||||
|
||||
if (map.containsKey("forwardedToUUID") && map.get("forwardedToUUID") != null) {
|
||||
Object fwdObj = map.get("forwardedToUUID");
|
||||
this.forwardedToUUID = fwdObj instanceof UUID ? (UUID) fwdObj : UUID.fromString((String) fwdObj);
|
||||
Object o = map.get("forwardedToUUID");
|
||||
this.forwardedToUUID = o instanceof UUID ? (UUID) o : UUID.fromString((String) o);
|
||||
this.forwardedToName = (String) map.get("forwardedToName");
|
||||
}
|
||||
|
||||
// ─── NEU: Laden des Soft Delete Flags ───
|
||||
if (map.containsKey("playerDeleted")) {
|
||||
this.playerDeleted = (boolean) map.get("playerDeleted");
|
||||
}
|
||||
if (map.containsKey("playerDeleted")) this.playerDeleted = (boolean) map.get("playerDeleted");
|
||||
if (map.containsKey("category")) this.categoryKey = (String) map.get("category");
|
||||
if (map.containsKey("priority")) this.priority = TicketPriority.fromString((String) map.get("priority"));
|
||||
if (map.containsKey("playerRating")) this.playerRating = (String) map.get("playerRating");
|
||||
if (map.containsKey("claimerNotified")) this.claimerNotified = (boolean) map.get("claimerNotified");
|
||||
}
|
||||
|
||||
// --- NEU: Methode zum Speichern in die YAML (Serialisierung) ---
|
||||
@Override
|
||||
public Map<String, Object> serialize() {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
|
||||
map.put("id", id);
|
||||
// WICHTIG: UUID als String speichern, um !!java.util.UUID Tag zu vermeiden
|
||||
map.put("creatorUUID", creatorUUID.toString());
|
||||
map.put("creatorName", creatorName);
|
||||
map.put("message", message);
|
||||
map.put("world", worldName);
|
||||
|
||||
map.put("x", x);
|
||||
map.put("y", y);
|
||||
map.put("z", z);
|
||||
map.put("yaw", yaw);
|
||||
map.put("pitch", pitch);
|
||||
|
||||
map.put("message", message);
|
||||
map.put("world", worldName);
|
||||
map.put("x", x); map.put("y", y); map.put("z", z);
|
||||
map.put("yaw", yaw); map.put("pitch", pitch);
|
||||
map.put("status", status.name());
|
||||
|
||||
// Timestamps als Long speichern
|
||||
if (createdAt != null) map.put("createdAt", createdAt.getTime());
|
||||
if (claimedAt != null) map.put("claimedAt", claimedAt.getTime());
|
||||
if (closedAt != null) map.put("closedAt", closedAt.getTime());
|
||||
|
||||
if (closedAt != null) map.put("closedAt", closedAt.getTime());
|
||||
if (closeComment != null) map.put("closeComment", closeComment);
|
||||
|
||||
if (claimerUUID != null) {
|
||||
map.put("claimerUUID", claimerUUID.toString());
|
||||
map.put("claimerName", claimerName);
|
||||
}
|
||||
|
||||
if (forwardedToUUID != null) {
|
||||
map.put("forwardedToUUID", forwardedToUUID.toString());
|
||||
map.put("forwardedToName", forwardedToName);
|
||||
}
|
||||
|
||||
// ─── NEU: Speichern des Soft Delete Flags ───
|
||||
map.put("playerDeleted", playerDeleted);
|
||||
|
||||
if (claimerUUID != null) { map.put("claimerUUID", claimerUUID.toString()); map.put("claimerName", claimerName); }
|
||||
if (forwardedToUUID != null) { map.put("forwardedToUUID", forwardedToUUID.toString()); map.put("forwardedToName", forwardedToName); }
|
||||
map.put("playerDeleted", playerDeleted);
|
||||
map.put("category", categoryKey);
|
||||
map.put("priority", priority.name());
|
||||
if (playerRating != null) map.put("playerRating", playerRating);
|
||||
map.put("claimerNotified", claimerNotified);
|
||||
return map;
|
||||
}
|
||||
|
||||
// --- NEU: Registrierung ---
|
||||
public static void register() {
|
||||
ConfigurationSerialization.registerClass(Ticket.class, "Ticket");
|
||||
}
|
||||
public static void register() { ConfigurationSerialization.registerClass(Ticket.class, "Ticket"); }
|
||||
|
||||
// --- Deine ursprüngliche getLocation Methode (beibehalten) ---
|
||||
public Location getLocation() {
|
||||
World world = Bukkit.getWorld(worldName);
|
||||
if (world == null) return null;
|
||||
return new Location(world, x, y, z, yaw, pitch);
|
||||
return world == null ? null : new Location(world, x, y, z, yaw, pitch);
|
||||
}
|
||||
|
||||
// ─────────────────────────── Getter & Setter ────────────────────────────
|
||||
private static double toDouble(Object o) { return o instanceof Double d ? d : ((Number) o).doubleValue(); }
|
||||
private static float toFloat(Object o) { return o instanceof Float f ? f : ((Number) o).floatValue(); }
|
||||
private static long toLong(Object o) { return ((Number) o).longValue(); }
|
||||
|
||||
public int getId() { return id; }
|
||||
public void setId(int id) { this.id = id; }
|
||||
|
||||
public UUID getCreatorUUID() { return creatorUUID; }
|
||||
public void setCreatorUUID(UUID creatorUUID) { this.creatorUUID = creatorUUID; }
|
||||
|
||||
public String getCreatorName() { return creatorName; }
|
||||
public void setCreatorName(String creatorName) { this.creatorName = creatorName; }
|
||||
|
||||
public String getMessage() { return message; }
|
||||
public void setMessage(String message) { this.message = message; }
|
||||
|
||||
public String getWorldName() { return worldName; }
|
||||
public void setWorldName(String worldName) { this.worldName = worldName; }
|
||||
|
||||
public double getX() { return x; }
|
||||
public void setX(double x) { this.x = x; }
|
||||
|
||||
public double getY() { return y; }
|
||||
public void setY(double y) { this.y = y; }
|
||||
|
||||
public double getZ() { return z; }
|
||||
public void setZ(double z) { this.z = z; }
|
||||
|
||||
public float getYaw() { return yaw; }
|
||||
public void setYaw(float yaw) { this.yaw = yaw; }
|
||||
|
||||
public float getPitch() { return pitch; }
|
||||
public void setPitch(float pitch) { this.pitch = pitch; }
|
||||
|
||||
public TicketStatus getStatus() { return status; }
|
||||
public void setStatus(TicketStatus status) { this.status = status; }
|
||||
|
||||
public UUID getClaimerUUID() { return claimerUUID; }
|
||||
public void setClaimerUUID(UUID claimerUUID) { this.claimerUUID = claimerUUID; }
|
||||
|
||||
public String getClaimerName() { return claimerName; }
|
||||
public void setClaimerName(String claimerName) { this.claimerName = claimerName; }
|
||||
|
||||
public UUID getForwardedToUUID() { return forwardedToUUID; }
|
||||
public void setForwardedToUUID(UUID forwardedToUUID) { this.forwardedToUUID = forwardedToUUID; }
|
||||
|
||||
public String getForwardedToName() { return forwardedToName; }
|
||||
public void setForwardedToName(String forwardedToName) { this.forwardedToName = forwardedToName; }
|
||||
|
||||
public Timestamp getCreatedAt() { return createdAt; }
|
||||
public void setCreatedAt(Timestamp createdAt) { this.createdAt = createdAt; }
|
||||
|
||||
public Timestamp getClaimedAt() { return claimedAt; }
|
||||
public void setClaimedAt(Timestamp claimedAt) { this.claimedAt = claimedAt; }
|
||||
|
||||
public Timestamp getClosedAt() { return closedAt; }
|
||||
public void setClosedAt(Timestamp closedAt) { this.closedAt = closedAt; }
|
||||
|
||||
public String getCloseComment() { return closeComment; }
|
||||
public void setCloseComment(String closeComment) { this.closeComment = closeComment; }
|
||||
|
||||
// ─── NEU: Getter/Setter für Soft Delete ───
|
||||
public boolean isPlayerDeleted() { return playerDeleted; }
|
||||
public void setPlayerDeleted(boolean playerDeleted) { this.playerDeleted = playerDeleted; }
|
||||
public int getId() { return id; }
|
||||
public void setId(int id) { this.id = id; }
|
||||
public UUID getCreatorUUID() { return creatorUUID; }
|
||||
public void setCreatorUUID(UUID v) { this.creatorUUID = v; }
|
||||
public String getCreatorName() { return creatorName; }
|
||||
public void setCreatorName(String v) { this.creatorName = v; }
|
||||
public String getMessage() { return message; }
|
||||
public void setMessage(String v) { this.message = v; }
|
||||
public String getWorldName() { return worldName; }
|
||||
public void setWorldName(String v) { this.worldName = v; }
|
||||
public double getX() { return x; }
|
||||
public void setX(double v) { this.x = v; }
|
||||
public double getY() { return y; }
|
||||
public void setY(double v) { this.y = v; }
|
||||
public double getZ() { return z; }
|
||||
public void setZ(double v) { this.z = v; }
|
||||
public float getYaw() { return yaw; }
|
||||
public void setYaw(float v) { this.yaw = v; }
|
||||
public float getPitch() { return pitch; }
|
||||
public void setPitch(float v) { this.pitch = v; }
|
||||
public TicketStatus getStatus() { return status; }
|
||||
public void setStatus(TicketStatus v) { this.status = v; }
|
||||
public UUID getClaimerUUID() { return claimerUUID; }
|
||||
public void setClaimerUUID(UUID v) { this.claimerUUID = v; }
|
||||
public String getClaimerName() { return claimerName; }
|
||||
public void setClaimerName(String v) { this.claimerName = v; }
|
||||
public UUID getForwardedToUUID() { return forwardedToUUID; }
|
||||
public void setForwardedToUUID(UUID v) { this.forwardedToUUID = v; }
|
||||
public String getForwardedToName() { return forwardedToName; }
|
||||
public void setForwardedToName(String v) { this.forwardedToName = v; }
|
||||
public Timestamp getCreatedAt() { return createdAt; }
|
||||
public void setCreatedAt(Timestamp v) { this.createdAt = v; }
|
||||
public Timestamp getClaimedAt() { return claimedAt; }
|
||||
public void setClaimedAt(Timestamp v) { this.claimedAt = v; }
|
||||
public Timestamp getClosedAt() { return closedAt; }
|
||||
public void setClosedAt(Timestamp v) { this.closedAt = v; }
|
||||
public String getCloseComment() { return closeComment; }
|
||||
public void setCloseComment(String v) { this.closeComment = v; }
|
||||
public boolean isPlayerDeleted() { return playerDeleted; }
|
||||
public void setPlayerDeleted(boolean v) { this.playerDeleted = v; }
|
||||
public String getCategoryKey() { return categoryKey; }
|
||||
public void setCategoryKey(String v) { this.categoryKey = v != null ? v.toLowerCase() : "general"; }
|
||||
public TicketPriority getPriority() { return priority; }
|
||||
public void setPriority(TicketPriority v) { this.priority = v; }
|
||||
public String getPlayerRating() { return playerRating; }
|
||||
public void setPlayerRating(String v) { this.playerRating = v; }
|
||||
public boolean hasRating() { return playerRating != null; }
|
||||
public boolean isClaimerNotified() { return claimerNotified; }
|
||||
public void setClaimerNotified(boolean v) { this.claimerNotified = v; }
|
||||
}
|
||||
33
src/main/java/de/ticketsystem/model/TicketCategory.java
Normal file
33
src/main/java/de/ticketsystem/model/TicketCategory.java
Normal file
@@ -0,0 +1,33 @@
|
||||
package de.ticketsystem.model;
|
||||
|
||||
import org.bukkit.Material;
|
||||
|
||||
public enum TicketCategory {
|
||||
GENERAL ("Allgemein", "§7", Material.PAPER),
|
||||
BUG ("Bug", "§c", Material.REDSTONE),
|
||||
QUESTION ("Frage", "§e", Material.BOOK),
|
||||
COMPLAINT ("Beschwerde", "§6", Material.WRITABLE_BOOK),
|
||||
OTHER ("Sonstiges", "§8", Material.FEATHER);
|
||||
|
||||
private final String displayName;
|
||||
private final String color;
|
||||
private final Material guiMaterial;
|
||||
|
||||
TicketCategory(String displayName, String color, Material guiMaterial) {
|
||||
this.displayName = displayName;
|
||||
this.color = color;
|
||||
this.guiMaterial = guiMaterial;
|
||||
}
|
||||
|
||||
public String getDisplayName() { return displayName; }
|
||||
public String getColor() { return color; }
|
||||
public String getColored() { return color + displayName; }
|
||||
public Material getGuiMaterial() { return guiMaterial; }
|
||||
|
||||
/** Safely parse from stored string, fall back to GENERAL. */
|
||||
public static TicketCategory fromString(String s) {
|
||||
if (s == null) return GENERAL;
|
||||
try { return valueOf(s.toUpperCase()); }
|
||||
catch (IllegalArgumentException e) { return GENERAL; }
|
||||
}
|
||||
}
|
||||
47
src/main/java/de/ticketsystem/model/TicketComment.java
Normal file
47
src/main/java/de/ticketsystem/model/TicketComment.java
Normal file
@@ -0,0 +1,47 @@
|
||||
package de.ticketsystem.model;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Represents a player comment/reply on a ticket.
|
||||
*/
|
||||
public class TicketComment {
|
||||
|
||||
private int id;
|
||||
private int ticketId;
|
||||
private UUID authorUUID;
|
||||
private String authorName;
|
||||
private String message;
|
||||
private Timestamp createdAt;
|
||||
|
||||
public TicketComment() {}
|
||||
|
||||
public TicketComment(int ticketId, UUID authorUUID, String authorName, String message) {
|
||||
this.ticketId = ticketId;
|
||||
this.authorUUID = authorUUID;
|
||||
this.authorName = authorName;
|
||||
this.message = message;
|
||||
this.createdAt = new Timestamp(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
// ─────────────── Getters / Setters ────────────────────────────────────
|
||||
|
||||
public int getId() { return id; }
|
||||
public void setId(int id) { this.id = id; }
|
||||
|
||||
public int getTicketId() { return ticketId; }
|
||||
public void setTicketId(int ticketId) { this.ticketId = ticketId; }
|
||||
|
||||
public UUID getAuthorUUID() { return authorUUID; }
|
||||
public void setAuthorUUID(UUID authorUUID) { this.authorUUID = authorUUID; }
|
||||
|
||||
public String getAuthorName() { return authorName; }
|
||||
public void setAuthorName(String authorName){ this.authorName = authorName; }
|
||||
|
||||
public String getMessage() { return message; }
|
||||
public void setMessage(String message) { this.message = message; }
|
||||
|
||||
public Timestamp getCreatedAt() { return createdAt; }
|
||||
public void setCreatedAt(Timestamp ts) { this.createdAt = ts; }
|
||||
}
|
||||
31
src/main/java/de/ticketsystem/model/TicketPriority.java
Normal file
31
src/main/java/de/ticketsystem/model/TicketPriority.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package de.ticketsystem.model;
|
||||
|
||||
import org.bukkit.Material;
|
||||
|
||||
public enum TicketPriority {
|
||||
LOW ("Niedrig", "§a", Material.GREEN_WOOL),
|
||||
NORMAL ("Normal", "§e", Material.YELLOW_WOOL),
|
||||
HIGH ("Hoch", "§6", Material.ORANGE_WOOL),
|
||||
URGENT ("Dringend","§c", Material.RED_WOOL);
|
||||
|
||||
private final String displayName;
|
||||
private final String color;
|
||||
private final Material guiMaterial;
|
||||
|
||||
TicketPriority(String displayName, String color, Material guiMaterial) {
|
||||
this.displayName = displayName;
|
||||
this.color = color;
|
||||
this.guiMaterial = guiMaterial;
|
||||
}
|
||||
|
||||
public String getDisplayName() { return displayName; }
|
||||
public String getColor() { return color; }
|
||||
public String getColored() { return color + displayName; }
|
||||
public Material getGuiMaterial() { return guiMaterial; }
|
||||
|
||||
public static TicketPriority fromString(String s) {
|
||||
if (s == null) return NORMAL;
|
||||
try { return valueOf(s.toUpperCase()); }
|
||||
catch (IllegalArgumentException e) { return NORMAL; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user