From c64a24757d68c74b4987c829e13a8fc96b1ac85e Mon Sep 17 00:00:00 2001 From: Flemmli97 Date: Thu, 21 Jan 2021 18:19:18 +0100 Subject: [PATCH] multiline permission description fix #24 --- Changelog.txt | 6 ++++ .../flemmli97/flan/api/ClaimPermission.java | 8 ++--- .../flan/api/PermissionRegistry.java | 8 ++--- .../com/flemmli97/flan/config/LangConfig.java | 30 ++++++++++++++++--- .../flan/gui/ServerScreenHelper.java | 6 ++-- 5 files changed, 44 insertions(+), 14 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 62dc4de..e30ff41 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,9 @@ +Flan 1.2.2 +====================== +- Increase particle size +- Fix thrown items activating pressure plates +- Add option to have multiple lines for permission description in lang file + Flan 1.2.1 ====================== - Fix wrong claim size calculation #19 diff --git a/src/main/java/com/flemmli97/flan/api/ClaimPermission.java b/src/main/java/com/flemmli97/flan/api/ClaimPermission.java index 91c2e60..e3e70fd 100644 --- a/src/main/java/com/flemmli97/flan/api/ClaimPermission.java +++ b/src/main/java/com/flemmli97/flan/api/ClaimPermission.java @@ -10,15 +10,15 @@ import java.util.function.Supplier; public class ClaimPermission { private final Supplier guiItem; - public String desc; + public String[] desc; public final String id; public final ClaimTest test; - public ClaimPermission(String id, Supplier guiItem, String defaultDescription) { - this(id, guiItem, defaultDescription, pass); + public ClaimPermission(String id, Supplier guiItem, String... defaultDescription) { + this(id, guiItem, pass, defaultDescription); } - public ClaimPermission(String id, Supplier guiItem, String defaultDescription, ClaimTest test) { + public ClaimPermission(String id, Supplier guiItem, ClaimTest test, String... defaultDescription) { this.id = id; this.guiItem = guiItem; this.desc = defaultDescription; diff --git a/src/main/java/com/flemmli97/flan/api/PermissionRegistry.java b/src/main/java/com/flemmli97/flan/api/PermissionRegistry.java index b9609ba..d045c08 100644 --- a/src/main/java/com/flemmli97/flan/api/PermissionRegistry.java +++ b/src/main/java/com/flemmli97/flan/api/PermissionRegistry.java @@ -30,7 +30,7 @@ public class PermissionRegistry { public static ClaimPermission EDITPERMS = register(new ClaimPermission("EDITPERMS", () -> new ItemStack(Items.COMMAND_BLOCK), "Gives permission to change the claims permissions")); public static ClaimPermission BREAK = register(new ClaimPermission("BREAK", () -> new ItemStack(Items.DIAMOND_PICKAXE), "Permission to break blocks in the claim")); public static ClaimPermission PLACE = register(new ClaimPermission("PLACE", () -> new ItemStack(Items.GRASS_BLOCK), "Permission to place blocks in the claim")); - public static ClaimPermission OPENCONTAINER = register(new ClaimPermission("OPENCONTAINER", () -> new ItemStack(Items.CHEST), "Permission to open containers (chest, furnace etc.)")); + public static ClaimPermission OPENCONTAINER = register(new ClaimPermission("OPENCONTAINER", () -> new ItemStack(Items.CHEST), "Permission to open containers" ,"(chest, furnace etc.)")); public static ClaimPermission ANVIL = register(new ClaimPermission("ANVIL", () -> new ItemStack(Items.ANVIL), "Permission to use anvils")); public static ClaimPermission BED = register(new ClaimPermission("BED", () -> new ItemStack(Items.RED_BED), "Permission to use beds")); public static ClaimPermission BEACON = register(new ClaimPermission("BEACON", () -> new ItemStack(Items.BEACON), "Permission to use beacons")); @@ -46,10 +46,10 @@ public class PermissionRegistry { public static ClaimPermission LECTERNTAKE = register(new ClaimPermission("LECTERNTAKE", () -> new ItemStack(Items.LECTERN), "Permission to change books in a lectern")); public static ClaimPermission ENDCRYSTALPLACE = register(new ClaimPermission("ENDCRYSTALPLACE", () -> new ItemStack(Items.END_CRYSTAL), "Permission to place end crystals")); public static ClaimPermission TARGETBLOCK = register(new ClaimPermission("TARGETBLOCK", () -> new ItemStack(Items.TARGET), "Permission to trigger target blocks")); - public static ClaimPermission PROJECTILES = register(new ClaimPermission("PROJECTILES", () -> new ItemStack(Items.ARROW), "Permission to let shot projectiles interact with blocks (e.g. arrow on button)")); - public static ClaimPermission TRAMPLE = register(new ClaimPermission("TRAMPLE", () -> new ItemStack(Items.FARMLAND), "Permission to enable block trampling (farmland, turtle eggs)")); + public static ClaimPermission PROJECTILES = register(new ClaimPermission("PROJECTILES", () -> new ItemStack(Items.ARROW), "Permission to let shot projectiles", "interact with blocks (e.g. arrow on button)")); + public static ClaimPermission TRAMPLE = register(new ClaimPermission("TRAMPLE", () -> new ItemStack(Items.FARMLAND), "Permission to enable block trampling", "(farmland, turtle eggs)")); public static ClaimPermission PORTAL = register(new ClaimPermission("PORTAL", () -> new ItemStack(Items.OBSIDIAN), "Permission to use nether portals")); - public static ClaimPermission RAID = register(new ClaimPermission("RAID", () -> Raid.getOminousBanner(), "Permission to trigger raids in claim. Wont prevent raids (just) outside")); + public static ClaimPermission RAID = register(new ClaimPermission("RAID", () -> Raid.getOminousBanner(), "Permission to trigger raids in claim.", "Wont prevent raids (just) outside")); public static ClaimPermission BOAT = register(new ClaimPermission("BOAT", () -> new ItemStack(Items.OAK_BOAT), "Permission to sit in boats")); public static ClaimPermission MINECART = register(new ClaimPermission("MINECART", () -> new ItemStack(Items.MINECART), "Permission to sit in minecarts")); public static ClaimPermission BUCKET = register(new ClaimPermission("BUCKET", () -> new ItemStack(Items.BUCKET), "Permission to take liquids with buckets")); diff --git a/src/main/java/com/flemmli97/flan/config/LangConfig.java b/src/main/java/com/flemmli97/flan/config/LangConfig.java index 91cc7ca..2f11ee8 100644 --- a/src/main/java/com/flemmli97/flan/config/LangConfig.java +++ b/src/main/java/com/flemmli97/flan/config/LangConfig.java @@ -2,7 +2,10 @@ package com.flemmli97.flan.config; import com.flemmli97.flan.api.ClaimPermission; import com.flemmli97.flan.api.PermissionRegistry; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.server.MinecraftServer; @@ -107,8 +110,19 @@ public class LangConfig { } } for (ClaimPermission perm : PermissionRegistry.getPerms()) { - if (obj.has(perm.id + ".desc")) - perm.desc = obj.get(perm.id + ".desc").getAsString(); + if (obj.has(perm.id + ".desc")) { + JsonElement pe = obj.get(perm.id + ".desc"); + if(pe.isJsonObject()) + throw new JsonParseException("Lang cant be json objects"); + if(pe.isJsonArray()){ + String[] l = new String[pe.getAsJsonArray().size()]; + for(int i = 0; i < l.length; i++) + l[i] = pe.getAsJsonArray().get(i).getAsString(); + perm.desc = l; + } + else + perm.desc = new String[]{pe.getAsString()}; + } } } catch (IOException | IllegalAccessException e) { e.printStackTrace(); @@ -124,8 +138,16 @@ public class LangConfig { obj.addProperty(field.getName(), (String) field.get(this)); } } - for (ClaimPermission perm : PermissionRegistry.getPerms()) - obj.addProperty(perm.id + ".desc", perm.desc); + for (ClaimPermission perm : PermissionRegistry.getPerms()) { + if (perm.desc.length == 1) + obj.addProperty(perm.id + ".desc", perm.desc[0]); + else { + JsonArray arr = new JsonArray(); + for (String s : perm.desc) + arr.add(s); + obj.add(perm.id + ".desc", arr); + } + } FileWriter writer = new FileWriter(this.config); ConfigHandler.GSON.toJson(obj, writer); writer.close(); diff --git a/src/main/java/com/flemmli97/flan/gui/ServerScreenHelper.java b/src/main/java/com/flemmli97/flan/gui/ServerScreenHelper.java index 0fc9259..d2d15a5 100644 --- a/src/main/java/com/flemmli97/flan/gui/ServerScreenHelper.java +++ b/src/main/java/com/flemmli97/flan/gui/ServerScreenHelper.java @@ -29,8 +29,10 @@ public class ServerScreenHelper { ItemStack stack = perm.getItem(); stack.setCustomName(new LiteralText(perm.id).setStyle(Style.EMPTY.withFormatting(Formatting.GOLD))); ListTag lore = new ListTag(); - Text trans = new LiteralText(perm.desc).setStyle(Style.EMPTY.withFormatting(Formatting.YELLOW)); - lore.add(StringTag.of(Text.Serializer.toJson(trans))); + for(String pdesc : perm.desc) { + Text trans = new LiteralText(pdesc).setStyle(Style.EMPTY.withFormatting(Formatting.YELLOW)); + lore.add(StringTag.of(Text.Serializer.toJson(trans))); + } Boolean global = ConfigHandler.config.getGlobal(claim.getWorld(), perm); if (!claim.isAdminClaim() && global != null) { Text text = new LiteralText(ConfigHandler.lang.screenUneditable).setStyle(Style.EMPTY.withFormatting(Formatting.DARK_RED));