110 lines
3.5 KiB
Java
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("§cA new version of §eSloudChat §cis available!");
|
|
getLogger().warning("§7Current: §e" + current + " §7| Latest: §a" + version);
|
|
getLogger().warning("§bDownload: https://www.spigotmc.org/resources/sloudchat.126174/");
|
|
} else {
|
|
getLogger().info("§aSloudChat 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;
|
|
}
|
|
}
|
|
|
|
}
|