multiline permission description fix #24

This commit is contained in:
Flemmli97 2021-01-21 18:19:18 +01:00
parent 92c4e0904e
commit c64a24757d
5 changed files with 44 additions and 14 deletions

View File

@ -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

View File

@ -10,15 +10,15 @@ import java.util.function.Supplier;
public class ClaimPermission {
private final Supplier<ItemStack> guiItem;
public String desc;
public String[] desc;
public final String id;
public final ClaimTest test;
public ClaimPermission(String id, Supplier<ItemStack> guiItem, String defaultDescription) {
this(id, guiItem, defaultDescription, pass);
public ClaimPermission(String id, Supplier<ItemStack> guiItem, String... defaultDescription) {
this(id, guiItem, pass, defaultDescription);
}
public ClaimPermission(String id, Supplier<ItemStack> guiItem, String defaultDescription, ClaimTest test) {
public ClaimPermission(String id, Supplier<ItemStack> guiItem, ClaimTest test, String... defaultDescription) {
this.id = id;
this.guiItem = guiItem;
this.desc = defaultDescription;

View File

@ -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"));

View File

@ -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();

View File

@ -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));