SloudChat/src/main/java/pl/sloudpl/sloudchat/SloudChat.java
2025-06-19 22:01:15 +02:00

110 lines
3.5 KiB
Java

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;
}
}
}