10.3.0 release

This commit is contained in:
mfnalex 2021-06-24 09:51:29 +02:00
parent ad86881964
commit acbd6b0357
2 changed files with 126 additions and 125 deletions

View File

@ -6,6 +6,7 @@
- Permission: chestsort.hotkey.\<hotkey\>
- Available hotkeys are:
- shiftclick, middleclick, doubleclick, shiftrightclick, leftclickoutside, rightclickoutside
- Fixed bug regarding InvUnload
## 10.2.1
- Fixed config updater breaking the config.yml file because "sorting-method" value wasn't put inside double quotes

View File

@ -32,16 +32,16 @@ import de.jeff_media.chestsort.commands.AdminCommand;
import de.jeff_media.chestsort.commands.ChestSortCommand;
import de.jeff_media.chestsort.commands.InvSortCommand;
import de.jeff_media.chestsort.commands.TabCompleter;
import de.jeff_media.chestsort.config.Config;
import de.jeff_media.chestsort.config.ConfigUpdater;
import de.jeff_media.chestsort.config.Messages;
import de.jeff_media.chestsort.config.Config;
import de.jeff_media.chestsort.data.Category;
import de.jeff_media.chestsort.data.PlayerSetting;
import de.jeff_media.chestsort.gui.SettingsGUI;
import de.jeff_media.chestsort.handlers.Debugger;
import de.jeff_media.chestsort.handlers.Logger;
import de.jeff_media.chestsort.handlers.ChestSortOrganizer;
import de.jeff_media.chestsort.handlers.ChestSortPermissionsHandler;
import de.jeff_media.chestsort.handlers.Debugger;
import de.jeff_media.chestsort.handlers.Logger;
import de.jeff_media.chestsort.hooks.EnderContainersHook;
import de.jeff_media.chestsort.hooks.GenericGUIHook;
import de.jeff_media.chestsort.hooks.PlayerVaultsHook;
@ -68,12 +68,14 @@ import java.util.*;
public class ChestSortPlugin extends JavaPlugin {
private static double updateCheckInterval = 4 * 60 * 60; // in seconds. We check on startup and every 4 hours
private static ChestSortPlugin instance;
public ChestSortOrganizer organizer; // Must be public for the API
boolean hotkeyGUI = true;
private EnderContainersHook enderContainersHook;
private GenericGUIHook genericHook;
private boolean hookCrackShot = false;
private boolean hookInventoryPages = false;
private boolean hookMinepacks = false;
boolean hotkeyGUI = true;
private PlayerVaultsHook playerVaultsHook;
private boolean debug = false;
private ArrayList<String> disabledWorlds;
@ -85,7 +87,6 @@ public class ChestSortPlugin extends JavaPlugin {
private int mcMinorVersion; // 14 for 1.14, 13 for 1.13, ...
private String mcVersion; // 1.13.2 = 1_13_R2
private Messages messages;
private ChestSortOrganizer organizer;
private Map<String, PlayerSetting> perPlayerSettings = new HashMap<>();
private ChestSortPermissionsHandler permissionsHandler;
private SettingsGUI settingsGUI;
@ -93,7 +94,6 @@ public class ChestSortPlugin extends JavaPlugin {
private UpdateChecker updateChecker;
private boolean usingMatchingConfig = true;
private boolean verbose = true;
private static ChestSortPlugin instance;
public static ChestSortPlugin getInstance() {
return instance;
@ -198,50 +198,98 @@ public class ChestSortPlugin extends JavaPlugin {
return disabledWorlds;
}
public void setDisabledWorlds(ArrayList<String> disabledWorlds) {
this.disabledWorlds = disabledWorlds;
}
public EnderContainersHook getEnderContainersHook() {
return enderContainersHook;
}
public void setEnderContainersHook(EnderContainersHook enderContainersHook) {
this.enderContainersHook = enderContainersHook;
}
public GenericGUIHook getGenericHook() {
return genericHook;
}
public void setGenericHook(GenericGUIHook genericHook) {
this.genericHook = genericHook;
}
public HashMap<UUID, Long> getHotkeyCooldown() {
return hotkeyCooldown;
}
public void setHotkeyCooldown(HashMap<UUID, Long> hotkeyCooldown) {
this.hotkeyCooldown = hotkeyCooldown;
}
public Logger getLgr() {
return lgr;
}
public void setLgr(Logger lgr) {
this.lgr = lgr;
}
public Listener getListener() {
return listener;
}
public void setListener(Listener listener) {
this.listener = listener;
}
public int getMcMinorVersion() {
return mcMinorVersion;
}
public void setMcMinorVersion(int mcMinorVersion) {
this.mcMinorVersion = mcMinorVersion;
}
public String getMcVersion() {
return mcVersion;
}
public void setMcVersion(String mcVersion) {
this.mcVersion = mcVersion;
}
public Messages getMessages() {
return messages;
}
public void setMessages(Messages messages) {
this.messages = messages;
}
public ChestSortOrganizer getOrganizer() {
return organizer;
}
public void setOrganizer(ChestSortOrganizer organizer) {
this.organizer = organizer;
}
public Map<String, PlayerSetting> getPerPlayerSettings() {
return perPlayerSettings;
}
public void setPerPlayerSettings(Map<String, PlayerSetting> perPlayerSettings) {
this.perPlayerSettings = perPlayerSettings;
}
public ChestSortPermissionsHandler getPermissionsHandler() {
return permissionsHandler;
}
public void setPermissionsHandler(ChestSortPermissionsHandler permissionsHandler) {
this.permissionsHandler = permissionsHandler;
}
public PlayerSetting getPlayerSetting(Player p) {
registerPlayerIfNeeded(p);
return getPerPlayerSettings().get(p.getUniqueId().toString());
@ -251,34 +299,66 @@ public class ChestSortPlugin extends JavaPlugin {
return playerVaultsHook;
}
public void setPlayerVaultsHook(PlayerVaultsHook playerVaultsHook) {
this.playerVaultsHook = playerVaultsHook;
}
public SettingsGUI getSettingsGUI() {
return settingsGUI;
}
public void setSettingsGUI(SettingsGUI settingsGUI) {
this.settingsGUI = settingsGUI;
}
public String getSortingMethod() {
return sortingMethod;
}
public void setSortingMethod(String sortingMethod) {
this.sortingMethod = sortingMethod;
}
public UpdateChecker getUpdateChecker() {
return updateChecker;
}
public void setUpdateChecker(UpdateChecker updateChecker) {
this.updateChecker = updateChecker;
}
public boolean isDebug() {
return debug;
}
public void setDebug(boolean debug) {
this.debug = debug;
}
public boolean isHookCrackShot() {
return hookCrackShot;
}
public void setHookCrackShot(boolean hookCrackShot) {
this.hookCrackShot = hookCrackShot;
}
public boolean isHookInventoryPages() {
return hookInventoryPages;
}
public void setHookInventoryPages(boolean hookInventoryPages) {
this.hookInventoryPages = hookInventoryPages;
}
public boolean isHookMinepacks() {
return hookMinepacks;
}
public void setHookMinepacks(boolean hookMinepacks) {
this.hookMinepacks = hookMinepacks;
}
@SuppressWarnings("BooleanMethodIsAlwaysInverted")
public boolean isHotkeyGUI() {
// TODO: Remove, it's unused
@ -308,10 +388,18 @@ public class ChestSortPlugin extends JavaPlugin {
return usingMatchingConfig;
}
public void setUsingMatchingConfig(boolean usingMatchingConfig) {
this.usingMatchingConfig = usingMatchingConfig;
}
public boolean isVerbose() {
return verbose;
}
public void setVerbose(boolean verbose) {
this.verbose = verbose;
}
public void load(boolean reload) {
if (reload) {
@ -424,7 +512,7 @@ public class ChestSortPlugin extends JavaPlugin {
}
}
if(getConfig().getString("check-for-updates").equalsIgnoreCase("false")) {
if (getConfig().getString("check-for-updates").equalsIgnoreCase("false")) {
getUpdateChecker().setNotifyOpsOnJoin(false);
}
@ -476,50 +564,50 @@ public class ChestSortPlugin extends JavaPlugin {
bStats.addCustomChart(new Metrics.SimplePie("sorting_method", this::getSortingMethod));
bStats.addCustomChart(new Metrics.SimplePie("config_version",
()->Integer.toString(getConfig().getInt("config-version", 0))));
() -> Integer.toString(getConfig().getInt("config-version", 0))));
bStats.addCustomChart(
new Metrics.SimplePie("check_for_updates", ()->getConfig().getString("check-for-updates", "true")));
new Metrics.SimplePie("check_for_updates", () -> getConfig().getString("check-for-updates", "true")));
bStats.addCustomChart(
new Metrics.SimplePie("update_interval", ()->Double.toString(getUpdateCheckInterval())));
new Metrics.SimplePie("update_interval", () -> Double.toString(getUpdateCheckInterval())));
bStats.addCustomChart(new Metrics.SimplePie("allow_automatic_sorting",
()->Boolean.toString(getConfig().getBoolean("allow-automatic-sorting"))));
() -> Boolean.toString(getConfig().getBoolean("allow-automatic-sorting"))));
bStats.addCustomChart(new Metrics.SimplePie("allow_automatic_inv_sorting",
()->Boolean.toString(getConfig().getBoolean("allow-automatic-inventory-sorting"))));
() -> Boolean.toString(getConfig().getBoolean("allow-automatic-inventory-sorting"))));
bStats.addCustomChart(new Metrics.SimplePie("show_message_when_using_chest",
()->Boolean.toString(getConfig().getBoolean("show-message-when-using-chest"))));
bStats.addCustomChart(new Metrics.SimplePie("show_message_when_using_chest_and_sorting_is_enabl", ()->Boolean
() -> Boolean.toString(getConfig().getBoolean("show-message-when-using-chest"))));
bStats.addCustomChart(new Metrics.SimplePie("show_message_when_using_chest_and_sorting_is_enabl", () -> Boolean
.toString(getConfig().getBoolean("show-message-when-using-chest-and-sorting-is-enabled"))));
bStats.addCustomChart(new Metrics.SimplePie("show_message_again_after_logout",
()->Boolean.toString(getConfig().getBoolean("show-message-again-after-logout"))));
() -> Boolean.toString(getConfig().getBoolean("show-message-again-after-logout"))));
bStats.addCustomChart(new Metrics.SimplePie("sorting_enabled_by_default",
()->Boolean.toString(getConfig().getBoolean("sorting-enabled-by-default"))));
() -> Boolean.toString(getConfig().getBoolean("sorting-enabled-by-default"))));
bStats.addCustomChart(new Metrics.SimplePie("inv_sorting_enabled_by_default",
()->Boolean.toString(getConfig().getBoolean("inv-sorting-enabled-by-default"))));
() -> Boolean.toString(getConfig().getBoolean("inv-sorting-enabled-by-default"))));
bStats.addCustomChart(
new Metrics.SimplePie("using_matching_config_version", ()->Boolean.toString(isUsingMatchingConfig())));
bStats.addCustomChart(new Metrics.SimplePie("sort_time", ()->getConfig().getString("sort-time")));
new Metrics.SimplePie("using_matching_config_version", () -> Boolean.toString(isUsingMatchingConfig())));
bStats.addCustomChart(new Metrics.SimplePie("sort_time", () -> getConfig().getString("sort-time")));
bStats.addCustomChart(new Metrics.SimplePie("auto_generate_category_files",
()->Boolean.toString(getConfig().getBoolean("auto-generate-category-files"))));
() -> Boolean.toString(getConfig().getBoolean("auto-generate-category-files"))));
bStats.addCustomChart(new Metrics.SimplePie("allow_hotkeys",
()->Boolean.toString(getConfig().getBoolean("allow-sorting-hotkeys"))));
() -> Boolean.toString(getConfig().getBoolean("allow-sorting-hotkeys"))));
bStats.addCustomChart(new Metrics.SimplePie("allow_additional_hotkeys",
()->Boolean.toString(getConfig().getBoolean("allow-additional-hotkeys"))));
() -> Boolean.toString(getConfig().getBoolean("allow-additional-hotkeys"))));
bStats.addCustomChart(new Metrics.SimplePie("hotkey_middle_click",
()->Boolean.toString(getConfig().getBoolean("sorting-hotkeys.middle-click"))));
() -> Boolean.toString(getConfig().getBoolean("sorting-hotkeys.middle-click"))));
bStats.addCustomChart(new Metrics.SimplePie("hotkey_shift_click",
()->Boolean.toString(getConfig().getBoolean("sorting-hotkeys.shift-click"))));
() -> Boolean.toString(getConfig().getBoolean("sorting-hotkeys.shift-click"))));
bStats.addCustomChart(new Metrics.SimplePie("hotkey_double_click",
()->Boolean.toString(getConfig().getBoolean("sorting-hotkeys.double-click"))));
() -> Boolean.toString(getConfig().getBoolean("sorting-hotkeys.double-click"))));
bStats.addCustomChart(new Metrics.SimplePie("hotkey_shift_right_click",
()->Boolean.toString(getConfig().getBoolean("sorting-hotkeys.shift-right-click"))));
() -> Boolean.toString(getConfig().getBoolean("sorting-hotkeys.shift-right-click"))));
bStats.addCustomChart(new Metrics.SimplePie("hotkey_left_click",
()->Boolean.toString(getConfig().getBoolean("additional-hotkeys.left-click"))));
() -> Boolean.toString(getConfig().getBoolean("additional-hotkeys.left-click"))));
bStats.addCustomChart(new Metrics.SimplePie("hotkey_right_click",
()->Boolean.toString(getConfig().getBoolean("additional-hotkeys.right-click"))));
() -> Boolean.toString(getConfig().getBoolean("additional-hotkeys.right-click"))));
bStats.addCustomChart(new Metrics.SimplePie("use_permissions",
()->Boolean.toString(getConfig().getBoolean("use-permissions"))));
() -> Boolean.toString(getConfig().getBoolean("use-permissions"))));
}
@ -572,7 +660,7 @@ public class ChestSortPlugin extends JavaPlugin {
changed = true;
if(VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_14_4_R01)) {
if (VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_14_4_R01)) {
if (playerFile.delete()) {
this.getLogger().info("Converted old .yml playerdata file to NBT tags for player " + p.getName());
} else {
@ -600,11 +688,11 @@ public class ChestSortPlugin extends JavaPlugin {
// when "show-message-again-after-logout" is enabled, we don't care if the
// player already saw the message
if (!getConfig().getBoolean("show-message-again-after-logout")) {
if(VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_14_4_R01) && !playerFile.exists()) {
NBTAPI.getNBT(p,"hasSeenMessage", String.valueOf(false));
} else {
newSettings.hasSeenMessage = playerConfig.getBoolean("hasSeenMessage");
}
if (VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_14_4_R01) && !playerFile.exists()) {
NBTAPI.getNBT(p, "hasSeenMessage", String.valueOf(false));
} else {
newSettings.hasSeenMessage = playerConfig.getBoolean("hasSeenMessage");
}
}
// Finally add the PlayerSetting object to the map
@ -627,7 +715,7 @@ public class ChestSortPlugin extends JavaPlugin {
// Delete all files starting with 9..
for (File file : new File(getDataFolder().getAbsolutePath() + File.separator + "categories" + File.separator)
.listFiles((directory, fileName)->{
.listFiles((directory, fileName) -> {
if (!fileName.endsWith(".txt")) {
return false;
}
@ -688,10 +776,6 @@ public class ChestSortPlugin extends JavaPlugin {
}
}
public void setDebug(boolean debug) {
this.debug = debug;
}
private void setDefaultConfigValues() {
// If you use an old config file with missing options, the following default
// values will be used instead
@ -700,7 +784,7 @@ public class ChestSortPlugin extends JavaPlugin {
getConfig().addDefault("use-permissions", true);
getConfig().addDefault("allow-automatic-sorting", true);
getConfig().addDefault("allow-automatic-inventory-sorting", true);
getConfig().addDefault("allow-left-click-to-sort",true);
getConfig().addDefault("allow-left-click-to-sort", true);
getConfig().addDefault("left-click-to-sort-enabled-by-default", false);
getConfig().addDefault("sorting-enabled-by-default", false);
getConfig().addDefault("inv-sorting-enabled-by-default", false);
@ -735,90 +819,6 @@ public class ChestSortPlugin extends JavaPlugin {
getConfig().addDefault("verbose", true); // Prints some information in onEnable()
}
public void setDisabledWorlds(ArrayList<String> disabledWorlds) {
this.disabledWorlds = disabledWorlds;
}
public void setEnderContainersHook(EnderContainersHook enderContainersHook) {
this.enderContainersHook = enderContainersHook;
}
public void setGenericHook(GenericGUIHook genericHook) {
this.genericHook = genericHook;
}
public void setHookCrackShot(boolean hookCrackShot) {
this.hookCrackShot = hookCrackShot;
}
public void setHookInventoryPages(boolean hookInventoryPages) {
this.hookInventoryPages = hookInventoryPages;
}
public void setHookMinepacks(boolean hookMinepacks) {
this.hookMinepacks = hookMinepacks;
}
public void setHotkeyCooldown(HashMap<UUID, Long> hotkeyCooldown) {
this.hotkeyCooldown = hotkeyCooldown;
}
public void setLgr(Logger lgr) {
this.lgr = lgr;
}
public void setListener(Listener listener) {
this.listener = listener;
}
public void setMcMinorVersion(int mcMinorVersion) {
this.mcMinorVersion = mcMinorVersion;
}
public void setMcVersion(String mcVersion) {
this.mcVersion = mcVersion;
}
public void setMessages(Messages messages) {
this.messages = messages;
}
public void setOrganizer(ChestSortOrganizer organizer) {
this.organizer = organizer;
}
public void setPerPlayerSettings(Map<String, PlayerSetting> perPlayerSettings) {
this.perPlayerSettings = perPlayerSettings;
}
public void setPermissionsHandler(ChestSortPermissionsHandler permissionsHandler) {
this.permissionsHandler = permissionsHandler;
}
public void setPlayerVaultsHook(PlayerVaultsHook playerVaultsHook) {
this.playerVaultsHook = playerVaultsHook;
}
public void setSettingsGUI(SettingsGUI settingsGUI) {
this.settingsGUI = settingsGUI;
}
public void setSortingMethod(String sortingMethod) {
this.sortingMethod = sortingMethod;
}
public void setUpdateChecker(UpdateChecker updateChecker) {
this.updateChecker = updateChecker;
}
public void setUsingMatchingConfig(boolean usingMatchingConfig) {
this.usingMatchingConfig = usingMatchingConfig;
}
public void setVerbose(boolean verbose) {
this.verbose = verbose;
}
private void showOldConfigWarning() {
getLogger().warning("==============================================");
getLogger().warning("You were using an old config file. ChestSort");