package pl.sloudpl.sloudchat; import net.luckperms.api.LuckPerms; import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; import pl.sloudpl.sloudchat.cmds.Chat; import pl.sloudpl.sloudchat.cmds.Chat1_16; import pl.sloudpl.sloudchat.cmds.SloudChatCMD; import pl.sloudpl.sloudchat.cmds.SloudChatCMD1_16; import pl.sloudpl.sloudchat.events.onPlayerChat; import pl.sloudpl.sloudchat.events.onPlayerChat1_16; import pl.sloudpl.sloudchat.utils.Metrics; import pl.sloudpl.sloudchat.utils.UpdateChecker; public final class SloudChat extends JavaPlugin { public LuckPerms luckPerms; public boolean papiAvailable = false; public boolean luckpermsAvailable = false; public String nopermission; public boolean isChatEnabled; @Override public void onEnable() { int pluginId = 26211; Metrics metrics = new Metrics(this, pluginId); saveDefaultConfig(); if(getServer().getPluginManager().getPlugin("LuckPerms") != null) { luckPerms = getServer().getServicesManager().getRegistration(LuckPerms.class).getProvider(); luckpermsAvailable = true; getLogger().info("LuckPerms hooked successfully!"); } else { getLogger().warning("LuckPerms not found!"); luckpermsAvailable = false; } if (getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) { papiAvailable = true; getLogger().info("PlaceholderAPI hooked successfully!"); } else { getLogger().warning("PlaceholderAPI not found, placeholders will not be parsed."); } if (isVersionAtMost_1_16_0()) { new onPlayerChat(this); new Chat(this); new SloudChatCMD(this); } else { new onPlayerChat1_16(this); new Chat1_16(this); new SloudChatCMD1_16(this); } nopermission = getConfig().getString("nopermission"); isChatEnabled = getConfig().getBoolean("chat-enabled"); new UpdateChecker(this, 126174).getLatestVersion(version -> { String current = this.getDescription().getVersion(); if (!current.equalsIgnoreCase(version)) { getLogger().warning("A new version of SloudChat is available!"); getLogger().warning("Current: " + current + " | Latest: " + version); getLogger().warning("Download: https://www.spigotmc.org/resources/sloudchat.126174/"); } else { getLogger().info("SloudChat is up to date (v" + current + ")."); } }); } @Override public void onDisable(){ getConfig().set("chat-enabled", isChatEnabled); saveConfig(); } public boolean isVersionAtMost_1_16_0() { String version = Bukkit.getBukkitVersion(); String[] mainParts = version.split("-")[0].split("\\."); try { int major = Integer.parseInt(mainParts[0]); int minor = Integer.parseInt(mainParts[1]); int patch = mainParts.length > 2 ? Integer.parseInt(mainParts[2]) : 0; if (major < 1) { return true; } else if (major == 1) { if (minor < 16) { return true; } else if (minor == 16) { return patch == 0; } else { return false; } } else { return false; } } catch (Exception e) { return false; } } }