add auto conversion & disable if old plugin is installed

This commit is contained in:
Pyr 2023-04-19 22:43:52 +01:00
parent baa47c16df
commit 575f435bbc
2 changed files with 27 additions and 2 deletions

View file

@ -12,13 +12,14 @@ import io.github.znetworkw.znpcservers.npc.NPCModel;
import io.github.znetworkw.znpcservers.npc.NPCPath; import io.github.znetworkw.znpcservers.npc.NPCPath;
import io.github.znetworkw.znpcservers.npc.NPCType; import io.github.znetworkw.znpcservers.npc.NPCType;
import io.github.znetworkw.znpcservers.npc.task.NPCPathTask; import io.github.znetworkw.znpcservers.npc.task.NPCPathTask;
import io.github.znetworkw.znpcservers.npc.task.NPCUpdateTask;
import io.github.znetworkw.znpcservers.npc.task.NPCSaveTask; import io.github.znetworkw.znpcservers.npc.task.NPCSaveTask;
import io.github.znetworkw.znpcservers.npc.task.NPCUpdateTask;
import io.github.znetworkw.znpcservers.user.ZUser; import io.github.znetworkw.znpcservers.user.ZUser;
import io.github.znetworkw.znpcservers.utility.BungeeUtils; import io.github.znetworkw.znpcservers.utility.BungeeUtils;
import io.github.znetworkw.znpcservers.utility.SchedulerUtils; import io.github.znetworkw.znpcservers.utility.SchedulerUtils;
import io.github.znetworkw.znpcservers.utility.itemstack.ItemStackSerializer; import io.github.znetworkw.znpcservers.utility.itemstack.ItemStackSerializer;
import io.github.znetworkw.znpcservers.utility.location.ZLocation; import io.github.znetworkw.znpcservers.utility.location.ZLocation;
import org.apache.commons.io.FileUtils;
import org.bstats.bukkit.Metrics; import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
@ -26,6 +27,7 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.util.Collections; import java.util.Collections;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -43,6 +45,8 @@ public class ZNPCsPlus extends JavaPlugin {
public static SchedulerUtils SCHEDULER; public static SchedulerUtils SCHEDULER;
public static BungeeUtils BUNGEE_UTILS; public static BungeeUtils BUNGEE_UTILS;
private boolean enabled = false;
public static NPC createNPC(int id, NPCType npcType, Location location, String name) { public static NPC createNPC(int id, NPCType npcType, Location location, String name) {
NPC find = NPC.find(id); NPC find = NPC.find(id);
if (find != null) if (find != null)
@ -68,6 +72,12 @@ public class ZNPCsPlus extends JavaPlugin {
@Override @Override
public void onEnable() { public void onEnable() {
if (Bukkit.getPluginManager().isPluginEnabled("ServersNPC")) {
LOGGER.severe("Detected old version of ZNPCs! Disabling the plugin...");
Bukkit.getPluginManager().disablePlugin(this);
return;
}
checkOldFolder();
PLUGIN_FOLDER.mkdirs(); PLUGIN_FOLDER.mkdirs();
PATH_FOLDER.mkdirs(); PATH_FOLDER.mkdirs();
@ -83,10 +93,12 @@ public class ZNPCsPlus extends JavaPlugin {
new NPCSaveTask(this, ConfigurationConstants.SAVE_DELAY); new NPCSaveTask(this, ConfigurationConstants.SAVE_DELAY);
new PlayerListener(this); new PlayerListener(this);
new InventoryListener(this); new InventoryListener(this);
enabled = true;
} }
@Override @Override
public void onDisable() { public void onDisable() {
if (!enabled) return;
Configuration.SAVE_CONFIGURATIONS.forEach(Configuration::save); Configuration.SAVE_CONFIGURATIONS.forEach(Configuration::save);
Bukkit.getOnlinePlayers().forEach(ZUser::unregister); Bukkit.getOnlinePlayers().forEach(ZUser::unregister);
} }
@ -100,4 +112,17 @@ public class ZNPCsPlus extends JavaPlugin {
abstractTypeWriter.load(); abstractTypeWriter.load();
} }
} }
private void checkOldFolder() {
if (PLUGIN_FOLDER.exists()) return;
File oldFolder = new File(PLUGIN_FOLDER.getParent(), "ServersNPC");
if (!oldFolder.exists()) return;
LOGGER.info("Detected old ZNPCs files and no new ones present, converting...");
try {
FileUtils.moveDirectory(oldFolder, PLUGIN_FOLDER);
} catch (IOException e) {
LOGGER.severe("Failed to convert old ZNPCs files:");
e.printStackTrace();
}
}
} }

View file

@ -3,4 +3,4 @@ main: lol.pyr.znpcsplus.ZNPCsPlus
load: POSTWORLD load: POSTWORLD
version: ${version} version: ${version}
api-version: 1.13 api-version: 1.13
softdepend: [ PlaceholderAPI ] softdepend: [ PlaceholderAPI, ServersNPC ]