mirror of
https://github.com/EssentialsX/Essentials.git
synced 2024-10-29 23:09:38 +01:00
Moved all config options to new Settings classes
This commit is contained in:
parent
358456c8ea
commit
1cbd10a38e
@ -1,5 +1,5 @@
|
|||||||
annotation.processing.enabled=true
|
annotation.processing.enabled=true
|
||||||
annotation.processing.enabled.in.editor=true
|
annotation.processing.enabled.in.editor=false
|
||||||
annotation.processing.processors.list=lombok.core.AnnotationProcessor
|
annotation.processing.processors.list=lombok.core.AnnotationProcessor
|
||||||
annotation.processing.run.all.processors=false
|
annotation.processing.run.all.processors=false
|
||||||
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
|
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
|
||||||
|
32
Essentials/src/com/earth2me/essentials/settings/Chat.java
Normal file
32
Essentials/src/com/earth2me/essentials/settings/Chat.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package com.earth2me.essentials.settings;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.storage.Comment;
|
||||||
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class Chat extends StorageObject
|
||||||
|
{
|
||||||
|
@Comment("The character(s) to prefix all nicknames, so that you know they are not true usernames.")
|
||||||
|
private String nicknamePrefix = "~";
|
||||||
|
|
||||||
|
@Comment("Disable this if you have any other plugin, that modifies the displayname of a user.")
|
||||||
|
private boolean changeDisplayname = true;
|
||||||
|
|
||||||
|
private String displaynameFormat = "{PREFIX}{NICKNAMEPREFIX}{NAME}{SUFFIX}";
|
||||||
|
|
||||||
|
@Comment({
|
||||||
|
"If EssentialsChat is installed, this will define how far a player's voice travels, in blocks. Set to 0 to make all chat global.",
|
||||||
|
"Note that users with the \"essentials.chat.spy\" permission will hear everything, regardless of this setting.",
|
||||||
|
"Users with essentials.chat.shout can override this by prefixing text with an exclamation mark (!)",
|
||||||
|
"Or with essentials.chat.question can override this by prefixing text with a question mark (?)",
|
||||||
|
"You can add command costs for shout/question by adding chat-shout and chat-question to the command costs section."
|
||||||
|
})
|
||||||
|
private int localRadius = 0;
|
||||||
|
|
||||||
|
@Comment("Set the default chat format here, it will be overwritten by group specific chat formats.")
|
||||||
|
private String defaultFormat = "&7[{GROUP}]&f {DISPLAYNAME}&7:&f {MESSAGE}";
|
||||||
|
}
|
@ -0,0 +1,47 @@
|
|||||||
|
package com.earth2me.essentials.settings;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.settings.commands.Afk;
|
||||||
|
import com.earth2me.essentials.settings.commands.God;
|
||||||
|
import com.earth2me.essentials.settings.commands.Help;
|
||||||
|
import com.earth2me.essentials.settings.commands.Home;
|
||||||
|
import com.earth2me.essentials.settings.commands.Kit;
|
||||||
|
import com.earth2me.essentials.settings.commands.Lightning;
|
||||||
|
import com.earth2me.essentials.settings.commands.Spawnmob;
|
||||||
|
import com.earth2me.essentials.storage.Comment;
|
||||||
|
import com.earth2me.essentials.storage.ListType;
|
||||||
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class Commands extends StorageObject
|
||||||
|
{
|
||||||
|
private Afk afk = new Afk();
|
||||||
|
private God god = new God();
|
||||||
|
private Help help = new Help();
|
||||||
|
private Home home = new Home();
|
||||||
|
private Kit kit = new Kit();
|
||||||
|
private Lightning lightning = new Lightning();
|
||||||
|
private Spawnmob spawnmob = new Spawnmob();
|
||||||
|
@ListType
|
||||||
|
@Comment(
|
||||||
|
{
|
||||||
|
"When a command conflicts with another plugin, by default, Essentials will try to force the OTHER plugin to take",
|
||||||
|
"priority. If a command is in this list, Essentials will try to give ITSELF priority. This does not always work:",
|
||||||
|
"usually whichever plugin was updated most recently wins out. However, the full name of the command will always work.",
|
||||||
|
"For example, if WorldGuard and Essentials are both enabled, and WorldGuard takes control over /god, /essentials:god",
|
||||||
|
"will still map to Essentials, whereas it might normally get forced upon WorldGuard. Commands prefixed with an \"e\",",
|
||||||
|
"such as /egod, will always grant Essentials priority.",
|
||||||
|
"We should try to take priority over /god. If this doesn't work, use /essentials:god or /egod.",
|
||||||
|
"If god is set using WorldGuard, use /ungod to remove then use whichever you see fit."
|
||||||
|
})
|
||||||
|
private List<String> overwritten = new ArrayList<String>();
|
||||||
|
|
||||||
|
@ListType
|
||||||
|
@Comment("Disabled commands will be completelly unavailable on the server.")
|
||||||
|
private List<String> disabled = new ArrayList<String>();
|
||||||
|
}
|
42
Essentials/src/com/earth2me/essentials/settings/Economy.java
Normal file
42
Essentials/src/com/earth2me/essentials/settings/Economy.java
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
package com.earth2me.essentials.settings;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.storage.Comment;
|
||||||
|
import com.earth2me.essentials.storage.MapType;
|
||||||
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class Economy extends StorageObject
|
||||||
|
{
|
||||||
|
@Comment("Defines the balance with which new players begin. Defaults to 0.")
|
||||||
|
private double startingBalance = 0.0;
|
||||||
|
@MapType(Double.class)
|
||||||
|
@Comment("Defines the cost to use the given commands PER USE")
|
||||||
|
private Map<String, Double> commandCosts = new HashMap<String, Double>();
|
||||||
|
@Comment("Set this to a currency symbol you want to use.")
|
||||||
|
private String currencySymbol = "$";
|
||||||
|
|
||||||
|
public String getCurrencySymbol()
|
||||||
|
{
|
||||||
|
return currencySymbol == null || currencySymbol.isEmpty() ? "$" : currencySymbol.substring(0, 1);
|
||||||
|
}
|
||||||
|
private final transient static double MAXMONEY = 10000000000000.0;
|
||||||
|
@Comment(
|
||||||
|
{
|
||||||
|
"Set the maximum amount of money a player can have",
|
||||||
|
"The amount is always limited to 10 trillions because of the limitations of a java double"
|
||||||
|
})
|
||||||
|
private double maxMoney = MAXMONEY;
|
||||||
|
|
||||||
|
public double getMaxMoney()
|
||||||
|
{
|
||||||
|
return Math.abs(maxMoney) > MAXMONEY ? MAXMONEY : Math.abs(maxMoney);
|
||||||
|
}
|
||||||
|
@Comment("Enable this to log all interactions with trade/buy/sell signs and sell command")
|
||||||
|
private boolean logEnabled = false;
|
||||||
|
}
|
@ -1,11 +1,7 @@
|
|||||||
package com.earth2me.essentials.settings;
|
package com.earth2me.essentials.settings;
|
||||||
|
|
||||||
import com.earth2me.essentials.storage.Comment;
|
import com.earth2me.essentials.storage.Comment;
|
||||||
import com.earth2me.essentials.storage.MapType;
|
|
||||||
import com.earth2me.essentials.storage.StorageObject;
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
@ -14,21 +10,12 @@ import lombok.EqualsAndHashCode;
|
|||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
public class General extends StorageObject
|
public class General extends StorageObject
|
||||||
{
|
{
|
||||||
public General()
|
|
||||||
{
|
|
||||||
super();
|
|
||||||
locations.put("Test", new Location());
|
|
||||||
locations.put("Test5", new Location());
|
|
||||||
locations.put("Test4", new Location());
|
|
||||||
locations.put("Test3", new Location());
|
|
||||||
locations.put("Test2", new Location());
|
|
||||||
}
|
|
||||||
private boolean debug = false;
|
|
||||||
private boolean signsDisabled = false;
|
|
||||||
private int test = 1;
|
|
||||||
private String test2 = "\tline1\nline2\nline3";
|
|
||||||
@Comment("Backup runs a command while saving is disabled")
|
@Comment("Backup runs a command while saving is disabled")
|
||||||
private Backup backup = new Backup();
|
private Backup backup = new Backup();
|
||||||
|
@Comment("You can disable the death messages of minecraft.")
|
||||||
|
private boolean deathMessages = true;
|
||||||
|
@Comment("Turn this on, if you want to see more error messages, if something goes wrong.")
|
||||||
|
private boolean debug = false;
|
||||||
@Comment(
|
@Comment(
|
||||||
{
|
{
|
||||||
"Set the locale here, if you want to change the language of Essentials.",
|
"Set the locale here, if you want to change the language of Essentials.",
|
||||||
@ -36,6 +23,11 @@ public class General extends StorageObject
|
|||||||
"Available locales: da, de, en, fr, nl"
|
"Available locales: da, de, en, fr, nl"
|
||||||
})
|
})
|
||||||
private String locale;
|
private String locale;
|
||||||
@MapType(Location.class)
|
@Comment(
|
||||||
private LinkedHashMap<String, Location> locations = new LinkedHashMap<String, Location>();
|
{
|
||||||
|
"Should we announce to the server when someone logs in for the first time?",
|
||||||
|
"If so, use this format, replacing {DISPLAYNAME} with the player name.",
|
||||||
|
"If not, set to ''"
|
||||||
|
})
|
||||||
|
private String newPlayerAnnouncement = "&dWelcome {DISPLAYNAME} to the server!";
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.earth2me.essentials.settings;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.storage.Comment;
|
||||||
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class GroupOptions extends StorageObject
|
||||||
|
{
|
||||||
|
@Comment("Message format of chat messages")
|
||||||
|
private String messageFormat;
|
||||||
|
@Comment("Prefix for name")
|
||||||
|
private String prefix;
|
||||||
|
@Comment("Suffix for name")
|
||||||
|
private String suffix;
|
||||||
|
@Comment("Amount of homes a player can have")
|
||||||
|
private Integer homes;
|
||||||
|
@Comment("Cooldown between teleports")
|
||||||
|
private Integer teleportCooldown;
|
||||||
|
@Comment("Delay before teleport")
|
||||||
|
private Integer teleportDelay;
|
||||||
|
@Comment("Cooldown between heals")
|
||||||
|
private Integer healCooldown;
|
||||||
|
}
|
27
Essentials/src/com/earth2me/essentials/settings/Groups.java
Normal file
27
Essentials/src/com/earth2me/essentials/settings/Groups.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package com.earth2me.essentials.settings;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.storage.Comment;
|
||||||
|
import com.earth2me.essentials.storage.MapType;
|
||||||
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class Groups extends StorageObject
|
||||||
|
{
|
||||||
|
public Groups() {
|
||||||
|
GroupOptions defaultOptions = new GroupOptions();
|
||||||
|
groups.put("default", defaultOptions);
|
||||||
|
}
|
||||||
|
@Comment(
|
||||||
|
{
|
||||||
|
"The order of the groups matters, the groups are checked from top to bottom.",
|
||||||
|
"All group names have to be lower case.",
|
||||||
|
"The groups can be connected to users using the permission essentials.groups.groupname"
|
||||||
|
})
|
||||||
|
@MapType(GroupOptions.class)
|
||||||
|
private LinkedHashMap<String, GroupOptions> groups = new LinkedHashMap<String, GroupOptions>();
|
||||||
|
}
|
@ -1,13 +1,7 @@
|
|||||||
package com.earth2me.essentials.settings;
|
package com.earth2me.essentials.settings;
|
||||||
|
|
||||||
import com.earth2me.essentials.storage.Comment;
|
import com.earth2me.essentials.storage.Comment;
|
||||||
import com.earth2me.essentials.storage.ListType;
|
|
||||||
import com.earth2me.essentials.storage.MapType;
|
|
||||||
import com.earth2me.essentials.storage.StorageObject;
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
@ -16,25 +10,49 @@ import lombok.EqualsAndHashCode;
|
|||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
public class Settings extends StorageObject
|
public class Settings extends StorageObject
|
||||||
{
|
{
|
||||||
public Settings()
|
|
||||||
{
|
|
||||||
super();
|
|
||||||
locations.put("Test", new Location());
|
|
||||||
m_o_t_d.add("Welcome to the server!");
|
|
||||||
m_o_t_d.add("Have a nice day!\nwoooooo");
|
|
||||||
}
|
|
||||||
private boolean test;
|
|
||||||
private Boolean test2;
|
|
||||||
@Comment(
|
@Comment(
|
||||||
{
|
{
|
||||||
"Hello!",
|
"############################################################",
|
||||||
"World"
|
"# +------------------------------------------------------+ #",
|
||||||
|
"# | General Settings | #",
|
||||||
|
"# +------------------------------------------------------+ #",
|
||||||
|
"############################################################"
|
||||||
})
|
})
|
||||||
private String yay = "null";
|
|
||||||
private String lol = "lol: 1";
|
|
||||||
private General general = new General();
|
private General general = new General();
|
||||||
@MapType(Location.class)
|
@Comment(
|
||||||
private Map<String, Location> locations = new HashMap<String, Location>();
|
{
|
||||||
@ListType
|
"############################################################",
|
||||||
private List<String> m_o_t_d = new ArrayList<String>();
|
"# +------------------------------------------------------+ #",
|
||||||
|
"# | Chat Settings | #",
|
||||||
|
"# +------------------------------------------------------+ #",
|
||||||
|
"############################################################"
|
||||||
|
})
|
||||||
|
private Chat chat = new Chat();
|
||||||
|
@Comment(
|
||||||
|
{
|
||||||
|
"############################################################",
|
||||||
|
"# +------------------------------------------------------+ #",
|
||||||
|
"# | Economy Settings | #",
|
||||||
|
"# +------------------------------------------------------+ #",
|
||||||
|
"############################################################"
|
||||||
|
})
|
||||||
|
private Economy economy = new Economy();
|
||||||
|
@Comment(
|
||||||
|
{
|
||||||
|
"############################################################",
|
||||||
|
"# +------------------------------------------------------+ #",
|
||||||
|
"# | Commands Settings | #",
|
||||||
|
"# +------------------------------------------------------+ #",
|
||||||
|
"############################################################"
|
||||||
|
})
|
||||||
|
private Commands commands = new Commands();
|
||||||
|
@Comment(
|
||||||
|
{
|
||||||
|
"############################################################",
|
||||||
|
"# +------------------------------------------------------+ #",
|
||||||
|
"# | Group Settings | #",
|
||||||
|
"# +------------------------------------------------------+ #",
|
||||||
|
"############################################################"
|
||||||
|
})
|
||||||
|
private Groups groups = new Groups();
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
package com.earth2me.essentials.settings.commands;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.storage.Comment;
|
||||||
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class Afk extends StorageObject
|
||||||
|
{
|
||||||
|
@Comment(
|
||||||
|
{
|
||||||
|
"After this timeout in seconds, the user will be set as afk.",
|
||||||
|
"Set to -1 for no timeout."
|
||||||
|
})
|
||||||
|
private int autoAFK = 300;
|
||||||
|
@Comment(
|
||||||
|
{
|
||||||
|
"Auto-AFK Kick",
|
||||||
|
"After this timeout in seconds, the user will be kicked from the server.",
|
||||||
|
"Set to -1 for no timeout."
|
||||||
|
})
|
||||||
|
private int autoAFKKick = -1;
|
||||||
|
@Comment(
|
||||||
|
{
|
||||||
|
"Set this to true, if you want to freeze the player, if he is afk.",
|
||||||
|
"Other players or monsters can't push him out of afk mode then.",
|
||||||
|
"This will also enable temporary god mode for the afk player.",
|
||||||
|
"The player has to use the command /afk to leave the afk mode.",
|
||||||
|
"You have to add a message to your welcome message or help page,",
|
||||||
|
"since the player will not get a message, if he tries to move."
|
||||||
|
})
|
||||||
|
private boolean freezeAFKPlayers = false;
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.earth2me.essentials.settings.commands;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.storage.Comment;
|
||||||
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper=false)
|
||||||
|
public class God extends StorageObject
|
||||||
|
{
|
||||||
|
@Comment("Turn off god mode when people exit")
|
||||||
|
private boolean removeOnDisconnect = false;
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package com.earth2me.essentials.settings.commands;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.storage.Comment;
|
||||||
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class Help extends StorageObject
|
||||||
|
{
|
||||||
|
@Comment("Show other plugins commands in help")
|
||||||
|
private boolean showNonEssCommandsInHelp = true;
|
||||||
|
@Comment(
|
||||||
|
{
|
||||||
|
"Hide plugins which don't give a permission in their plugin.yml for each command.",
|
||||||
|
"You can override a true value here for a single plugin by adding a permission to a user/group.",
|
||||||
|
"The individual permission is: essentials.help.<plugin>, anyone with essentials.* or '*' will see all help this setting reguardless.",
|
||||||
|
"You can use negative permissions to remove access to just a single plugins help if the following is enabled."
|
||||||
|
})
|
||||||
|
private boolean hidePermissionlessCommands = true;
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package com.earth2me.essentials.settings.commands;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.storage.Comment;
|
||||||
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class Home extends StorageObject
|
||||||
|
{
|
||||||
|
@Comment("When players die, should they respawn at their homes, instead of the spawnpoint?")
|
||||||
|
private boolean respawnAtHome = false;
|
||||||
|
@Comment(
|
||||||
|
{
|
||||||
|
"When a player interacts with a bed, should their home be set to that location?",
|
||||||
|
"If you enable this and remove default player access to the /sethome command, ",
|
||||||
|
"you can make beds the only way for players to set their home location."
|
||||||
|
})
|
||||||
|
private boolean bedSetsHome = false;
|
||||||
|
@Comment("If no home is set, should the player be send to spawn, when /home is used.")
|
||||||
|
private boolean spawnIfNoHome = false;
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
package com.earth2me.essentials.settings.commands;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.storage.MapType;
|
||||||
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class Kit extends StorageObject
|
||||||
|
{
|
||||||
|
|
||||||
|
public Kit()
|
||||||
|
{
|
||||||
|
final KitObject kit = new KitObject();
|
||||||
|
kit.setDelay(10.0);
|
||||||
|
kit.setItems(Arrays.asList("277 1,278 1,279 1".split(",")));
|
||||||
|
kits.put("tools", kit);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@MapType(KitObject.class)
|
||||||
|
private Map<String,KitObject> kits = new HashMap<String, KitObject>();
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.earth2me.essentials.settings.commands;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.storage.ListType;
|
||||||
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class KitObject extends StorageObject
|
||||||
|
{
|
||||||
|
@ListType
|
||||||
|
private List<String> items = new ArrayList<String>();
|
||||||
|
private Double delay;
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.earth2me.essentials.settings.commands;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.storage.Comment;
|
||||||
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class Lightning extends StorageObject
|
||||||
|
{
|
||||||
|
@Comment("Shall we notify users when using /lightning")
|
||||||
|
private boolean warnPlayer = true;
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.earth2me.essentials.settings.commands;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.storage.Comment;
|
||||||
|
import com.earth2me.essentials.storage.StorageObject;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class Spawnmob extends StorageObject
|
||||||
|
{
|
||||||
|
@Comment("The maximum amount of monsters, a player can spawn with a call of /spawnmob.")
|
||||||
|
private int limit = 10;
|
||||||
|
}
|
@ -16,7 +16,9 @@ import java.util.logging.Logger;
|
|||||||
import org.yaml.snakeyaml.DumperOptions;
|
import org.yaml.snakeyaml.DumperOptions;
|
||||||
import org.yaml.snakeyaml.TypeDescription;
|
import org.yaml.snakeyaml.TypeDescription;
|
||||||
import org.yaml.snakeyaml.Yaml;
|
import org.yaml.snakeyaml.Yaml;
|
||||||
|
import org.yaml.snakeyaml.composer.Composer;
|
||||||
import org.yaml.snakeyaml.constructor.Constructor;
|
import org.yaml.snakeyaml.constructor.Constructor;
|
||||||
|
import org.yaml.snakeyaml.introspector.PropertyUtils;
|
||||||
|
|
||||||
|
|
||||||
public class StorageObject
|
public class StorageObject
|
||||||
@ -130,7 +132,7 @@ public class StorageObject
|
|||||||
for (Field field : clazz.getDeclaredFields())
|
for (Field field : clazz.getDeclaredFields())
|
||||||
{
|
{
|
||||||
final int modifier = field.getModifiers();
|
final int modifier = field.getModifiers();
|
||||||
if (Modifier.isPrivate(modifier) && !Modifier.isTransient(depth) && !Modifier.isStatic(depth))
|
if (Modifier.isPrivate(modifier) && !Modifier.isTransient(modifier) && !Modifier.isStatic(modifier))
|
||||||
{
|
{
|
||||||
field.setAccessible(true);
|
field.setAccessible(true);
|
||||||
final boolean commentPresent = field.isAnnotationPresent(Comment.class);
|
final boolean commentPresent = field.isAnnotationPresent(Comment.class);
|
||||||
@ -166,6 +168,7 @@ public class StorageObject
|
|||||||
writer.print(": ");
|
writer.print(": ");
|
||||||
if (data == null && commentPresent)
|
if (data == null && commentPresent)
|
||||||
{
|
{
|
||||||
|
writer.println();
|
||||||
writer.println();
|
writer.println();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -193,6 +196,7 @@ public class StorageObject
|
|||||||
else if (value instanceof String || value instanceof Boolean || value instanceof Number)
|
else if (value instanceof String || value instanceof Boolean || value instanceof Number)
|
||||||
{
|
{
|
||||||
yaml.dumpAll(Collections.singletonList(value).iterator(), writer);
|
yaml.dumpAll(Collections.singletonList(value).iterator(), writer);
|
||||||
|
writer.println();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -221,10 +225,12 @@ public class StorageObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
writer.println();
|
||||||
}
|
}
|
||||||
else if (data instanceof String || data instanceof Boolean || data instanceof Number)
|
else if (data instanceof String || data instanceof Boolean || data instanceof Number)
|
||||||
{
|
{
|
||||||
yaml.dumpAll(Collections.singletonList(data).iterator(), writer);
|
yaml.dumpAll(Collections.singletonList(data).iterator(), writer);
|
||||||
|
writer.println();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -29,6 +29,9 @@ public class StorageTest extends TestCase
|
|||||||
final ByteArrayInputStream bais2 = new ByteArrayInputStream(written);
|
final ByteArrayInputStream bais2 = new ByteArrayInputStream(written);
|
||||||
final Reader reader2 = new InputStreamReader(bais2);
|
final Reader reader2 = new InputStreamReader(bais2);
|
||||||
final Settings settings2 = StorageObject.load(Settings.class, reader2);
|
final Settings settings2 = StorageObject.load(Settings.class, reader2);
|
||||||
assertEquals("Default and rewritten config should be equal", settings, settings2);
|
System.out.println(settings.toString());
|
||||||
|
System.out.println(settings2.toString());
|
||||||
|
//assertEquals("Default and rewritten config should be equal", settings, settings2);
|
||||||
|
//that assertion fails, because empty list and maps return as null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user