Merge branch '2.X' of https://github.com/Pyrbu/ZNPCsPlus into 2.X
Conflicts: plugin/src/main/java/lol/pyr/znpcsplus/ZNpcsPlus.java
This commit is contained in:
commit
d91d86ca88
2 changed files with 34 additions and 6 deletions
|
@ -57,15 +57,15 @@ import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import java.io.Reader;
|
import java.io.*;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.StandardOpenOption;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ZNpcsPlus extends JavaPlugin {
|
public class ZNpcsPlus extends JavaPlugin {
|
||||||
private static final int PLUGIN_ID = 18244;
|
|
||||||
|
|
||||||
private PacketEventsAPI<Plugin> packetEvents;
|
|
||||||
private final LegacyComponentSerializer textSerializer = LegacyComponentSerializer.builder()
|
private final LegacyComponentSerializer textSerializer = LegacyComponentSerializer.builder()
|
||||||
.character('&')
|
.character('&')
|
||||||
.hexCharacter('#')
|
.hexCharacter('#')
|
||||||
|
@ -73,6 +73,7 @@ public class ZNpcsPlus extends JavaPlugin {
|
||||||
|
|
||||||
private final List<Runnable> shutdownTasks = new ArrayList<>();
|
private final List<Runnable> shutdownTasks = new ArrayList<>();
|
||||||
private boolean enabled = false;
|
private boolean enabled = false;
|
||||||
|
private PacketEventsAPI<Plugin> packetEvents;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoad() {
|
public void onLoad() {
|
||||||
|
@ -96,9 +97,18 @@ public class ZNpcsPlus extends JavaPlugin {
|
||||||
log("");
|
log("");
|
||||||
|
|
||||||
PluginManager pluginManager = Bukkit.getPluginManager();
|
PluginManager pluginManager = Bukkit.getPluginManager();
|
||||||
|
|
||||||
long before = System.currentTimeMillis();
|
long before = System.currentTimeMillis();
|
||||||
|
|
||||||
|
boolean legacy = new File(getDataFolder(), "data.json").isFile();
|
||||||
|
if (legacy) try {
|
||||||
|
Files.move(getDataFolder().toPath(), new File(getDataFolder().getParentFile(), "ZNPCsPlusLegacy").toPath());
|
||||||
|
} catch (IOException e) {
|
||||||
|
log(ChatColor.RED + " * Moving legacy files to subfolder failed, plugin will shut down.");
|
||||||
|
e.printStackTrace();
|
||||||
|
pluginManager.disablePlugin(this);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
log(ChatColor.WHITE + " * Initializing libraries...");
|
log(ChatColor.WHITE + " * Initializing libraries...");
|
||||||
packetEvents.init();
|
packetEvents.init();
|
||||||
BukkitAudiences adventure = BukkitAudiences.create(this);
|
BukkitAudiences adventure = BukkitAudiences.create(this);
|
||||||
|
@ -124,7 +134,7 @@ public class ZNpcsPlus extends JavaPlugin {
|
||||||
typeRegistry.registerDefault(packetEvents, propertyRegistry);
|
typeRegistry.registerDefault(packetEvents, propertyRegistry);
|
||||||
actionRegistry.registerTypes(scheduler, adventure, bungeeConnector, textSerializer);
|
actionRegistry.registerTypes(scheduler, adventure, bungeeConnector, textSerializer);
|
||||||
packetEvents.getEventManager().registerListener(new InteractionPacketListener(userManager, npcRegistry), PacketListenerPriority.MONITOR);
|
packetEvents.getEventManager().registerListener(new InteractionPacketListener(userManager, npcRegistry), PacketListenerPriority.MONITOR);
|
||||||
new Metrics(this, PLUGIN_ID);
|
new Metrics(this, 18244);
|
||||||
pluginManager.registerEvents(new UserListener(userManager), this);
|
pluginManager.registerEvents(new UserListener(userManager), this);
|
||||||
getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
|
getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
|
||||||
|
|
||||||
|
@ -143,6 +153,22 @@ public class ZNpcsPlus extends JavaPlugin {
|
||||||
log(ChatColor.WHITE + " * Loading data...");
|
log(ChatColor.WHITE + " * Loading data...");
|
||||||
npcRegistry.reload();
|
npcRegistry.reload();
|
||||||
|
|
||||||
|
if (legacy) {
|
||||||
|
log(ChatColor.WHITE + " * Converting legacy data...");
|
||||||
|
try {
|
||||||
|
Collection<NpcEntryImpl> entries = importerRegistry.getImporter("znpcsplus_legacy").importData();
|
||||||
|
npcRegistry.registerAll(entries);
|
||||||
|
} catch (Exception exception) {
|
||||||
|
log(ChatColor.RED + " * Legacy data conversion failed! Check conversion.log for more info.");
|
||||||
|
try (PrintWriter writer = new PrintWriter(Files.newBufferedWriter(new File(getDataFolder(), "conversion.log").toPath(), StandardOpenOption.CREATE_NEW))) {
|
||||||
|
exception.printStackTrace(writer);
|
||||||
|
} catch (IOException e) {
|
||||||
|
log(ChatColor.DARK_RED + " * Critical error! Writing to conversion.log failed.");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
shutdownTasks.add(npcRegistry::unload);
|
shutdownTasks.add(npcRegistry::unload);
|
||||||
shutdownTasks.add(scheduler::cancelAll);
|
shutdownTasks.add(scheduler::cancelAll);
|
||||||
shutdownTasks.add(userManager::shutdown);
|
shutdownTasks.add(userManager::shutdown);
|
||||||
|
|
|
@ -28,6 +28,8 @@ public class DataImporterRegistry {
|
||||||
|
|
||||||
register("znpcs", LazyLoader.of(() -> new ZNpcImporter(configManager, adventure, bungeeConnector, taskScheduler,
|
register("znpcs", LazyLoader.of(() -> new ZNpcImporter(configManager, adventure, bungeeConnector, taskScheduler,
|
||||||
packetFactory, textSerializer, typeRegistry, propertyRegistry, skinCache, new File(pluginsFolder, "ServersNPC/data.json"))));
|
packetFactory, textSerializer, typeRegistry, propertyRegistry, skinCache, new File(pluginsFolder, "ServersNPC/data.json"))));
|
||||||
|
register("znpcsplus_legacy", LazyLoader.of(() -> new ZNpcImporter(configManager, adventure, bungeeConnector, taskScheduler,
|
||||||
|
packetFactory, textSerializer, typeRegistry, propertyRegistry, skinCache, new File(pluginsFolder, "ZNPCsPlusLegacy/data.json"))));
|
||||||
/* register("citizens", LazyLoader.of(() -> new CitizensImporter(configManager, adventure, bungeeConnector, taskScheduler,
|
/* register("citizens", LazyLoader.of(() -> new CitizensImporter(configManager, adventure, bungeeConnector, taskScheduler,
|
||||||
packetFactory, textSerializer, typeRegistry, propertyRegistry, skinCache, new File(pluginsFolder, "Citizens/saves.yml")))); */
|
packetFactory, textSerializer, typeRegistry, propertyRegistry, skinCache, new File(pluginsFolder, "Citizens/saves.yml")))); */
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue