mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-10-31 17:43:44 +01:00 
			
		
		
		
	Nothing is implemented, but it can compile and "run" on sponge now.
This commit is contained in:
		| @@ -5,8 +5,7 @@ import com.intellectualcrafters.plot.generator.HybridUtils; | |||||||
| import com.intellectualcrafters.plot.generator.PlotGenerator; | import com.intellectualcrafters.plot.generator.PlotGenerator; | ||||||
| import com.intellectualcrafters.plot.object.PlotPlayer; | import com.intellectualcrafters.plot.object.PlotPlayer; | ||||||
| import com.intellectualcrafters.plot.util.*; | import com.intellectualcrafters.plot.util.*; | ||||||
| import com.plotsquared.bukkit.listeners.APlotListener; | import com.plotsquared.listener.APlotListener; | ||||||
| import com.plotsquared.bukkit.util.SetupUtils; |  | ||||||
|  |  | ||||||
| import java.io.File; | import java.io.File; | ||||||
| import java.util.UUID; | import java.util.UUID; | ||||||
|   | |||||||
| @@ -12,9 +12,7 @@ import com.intellectualcrafters.plot.flag.FlagValue; | |||||||
| import com.intellectualcrafters.plot.generator.*; | import com.intellectualcrafters.plot.generator.*; | ||||||
| import com.intellectualcrafters.plot.object.*; | import com.intellectualcrafters.plot.object.*; | ||||||
| import com.intellectualcrafters.plot.util.*; | import com.intellectualcrafters.plot.util.*; | ||||||
| import com.plotsquared.bukkit.listeners.APlotListener; | import com.plotsquared.listener.APlotListener; | ||||||
| import com.plotsquared.bukkit.object.comment.CommentManager; |  | ||||||
| import com.plotsquared.bukkit.util.SetupUtils; |  | ||||||
| import com.sk89q.worldedit.bukkit.WorldEditPlugin; | import com.sk89q.worldedit.bukkit.WorldEditPlugin; | ||||||
|  |  | ||||||
| import java.io.*; | import java.io.*; | ||||||
| @@ -73,136 +71,143 @@ public class PS { | |||||||
|      * @param imp_class |      * @param imp_class | ||||||
|      */ |      */ | ||||||
|     public PS(final IPlotMain imp_class) { |     public PS(final IPlotMain imp_class) { | ||||||
|         instance = this; |  | ||||||
|         SetupUtils.generators = new HashMap<>(); |  | ||||||
|         IMP = imp_class; |  | ||||||
|         try { |         try { | ||||||
|             FILE = new File(PS.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()); |             instance = this; | ||||||
|         } catch (Exception e) { |             SetupUtils.generators = new HashMap<>(); | ||||||
|             log("Could not determine file path"); |             IMP = imp_class; | ||||||
|         } |             try { | ||||||
|         VERSION = IMP.getPluginVersion(); |                 FILE = new File(PS.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()); | ||||||
|         EconHandler.manager = IMP.getEconomyHandler(); |             } catch (Exception e) { | ||||||
|         if (getJavaVersion() < 1.7) { |                 FILE = new File(IMP.getDirectory().getParentFile(), "PlotSquared.jar"); | ||||||
|             log(C.PREFIX.s() + "&cYour java version is outdated. Please update to at least 1.7."); |                 e.printStackTrace(); | ||||||
|             // Didn't know of any other link :D |                 log("Could not determine file path"); | ||||||
|             log(C.PREFIX.s() + "&cURL: &6https://java.com/en/download/index.jsp"); |  | ||||||
|             IMP.disable(); |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|         if (getJavaVersion() < 1.8) { |  | ||||||
|             log(C.PREFIX.s() + "&cIt's really recommended to run Java 1.8, as it increases performance"); |  | ||||||
|         } |  | ||||||
|         this.TASK = IMP.getTaskManager(); |  | ||||||
|         if (C.ENABLED.s().length() > 0) { |  | ||||||
|             log(C.ENABLED.s()); |  | ||||||
|         } |  | ||||||
|         setupConfigs(); |  | ||||||
|         this.translationFile = new File(IMP.getDirectory() + File.separator + "translations" + File.separator + "PlotSquared.use_THIS.yml"); |  | ||||||
|         C.load(translationFile); |  | ||||||
|         setupDefaultFlags(); |  | ||||||
|         setupDatabase(); |  | ||||||
|         CommentManager.registerDefaultInboxes(); |  | ||||||
|         // Tasks |  | ||||||
|         if (Settings.KILL_ROAD_MOBS) { |  | ||||||
|             IMP.runEntityTask(); |  | ||||||
|         } |  | ||||||
|         // Events |  | ||||||
|         IMP.registerCommands(); |  | ||||||
|         IMP.registerPlayerEvents(); |  | ||||||
|         IMP.registerInventoryEvents(); |  | ||||||
|         IMP.registerPlotPlusEvents(); |  | ||||||
|         IMP.registerForceFieldEvents(); |  | ||||||
|         IMP.registerWorldEditEvents(); |  | ||||||
|         IMP.registerWorldEvents(); |  | ||||||
|         if (Settings.METRICS) { |  | ||||||
|             IMP.startMetrics(); |  | ||||||
|         } else { |  | ||||||
|             log("&dUsing metrics will allow us to improve the plugin, please consider it :)"); |  | ||||||
|         } |  | ||||||
|         IMP.startMetrics(); |  | ||||||
|         if (Settings.TNT_LISTENER) { |  | ||||||
|             IMP.registerTNTListener(); |  | ||||||
|         } |  | ||||||
|         if (Settings.CHUNK_PROCESSOR) { |  | ||||||
|             IMP.registerChunkProcessor(); |  | ||||||
|         } |  | ||||||
|         // create UUIDWrapper |  | ||||||
|         UUIDHandler.implementation = IMP.initUUIDHandler(); |  | ||||||
|         UUIDHandler.implementation.startCaching(null); // TODO maybe a notification when this is done? |  | ||||||
|         // create event util class |  | ||||||
|         EventUtil.manager = IMP.initEventUtil(); |  | ||||||
|         // create Hybrid utility class |  | ||||||
|         HybridUtils.manager = IMP.initHybridUtils(); |  | ||||||
|         // Inventory utility class |  | ||||||
|         InventoryUtil.manager = IMP.initInventoryUtil(); |  | ||||||
|         // create setup util class |  | ||||||
|         SetupUtils.manager = IMP.initSetupUtils(); |  | ||||||
|         // Set block |  | ||||||
|         BlockManager.manager = IMP.initBlockManager(); |  | ||||||
|         // Set chunk |  | ||||||
|         ChunkManager.manager = IMP.initChunkManager(); |  | ||||||
|         // Plot listener |  | ||||||
|         APlotListener.manager = IMP.initPlotListener(); |  | ||||||
|         // Player manager |  | ||||||
|         PlayerManager.manager = IMP.initPlayerManager(); |  | ||||||
|  |  | ||||||
|         // Check for updates |  | ||||||
|         TaskManager.runTaskAsync(new Runnable() { |  | ||||||
|             @Override |  | ||||||
|             public void run() { |  | ||||||
|                 URL url = getUpdate(); |  | ||||||
|                 if (url != null) { |  | ||||||
|                     update = url; |  | ||||||
|                     log("&6You are running an older version of PlotSquared..."); |  | ||||||
|                     log("&8 - &3Use: &7/plot update"); |  | ||||||
|                     log("&8 - &3Or: &7" + url); |  | ||||||
|                 } |  | ||||||
|                 else if (LAST_VERSION != null && !VERSION.equals(LAST_VERSION)) { |  | ||||||
|                     log("&aThanks for updating from: " + LAST_VERSION + " to " + StringMan.join(VERSION, ".")); |  | ||||||
|                 } |  | ||||||
|             } |             } | ||||||
|         }); |             VERSION = IMP.getPluginVersion(); | ||||||
|          |             EconHandler.manager = IMP.getEconomyHandler(); | ||||||
|         // PlotMe |             if (getJavaVersion() < 1.7) { | ||||||
|         if (Settings.CONVERT_PLOTME || Settings.CACHE_PLOTME) { |                 log(C.PREFIX.s() + "&cYour java version is outdated. Please update to at least 1.7."); | ||||||
|             TaskManager.runTaskLater(new Runnable() { |                 // Didn't know of any other link :D | ||||||
|  |                 log(C.PREFIX.s() + "&cURL: &6https://java.com/en/download/index.jsp"); | ||||||
|  |                 IMP.disable(); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |             if (getJavaVersion() < 1.8) { | ||||||
|  |                 log(C.PREFIX.s() + "&cIt's really recommended to run Java 1.8, as it increases performance"); | ||||||
|  |             } | ||||||
|  |             this.TASK = IMP.getTaskManager(); | ||||||
|  |             if (C.ENABLED.s().length() > 0) { | ||||||
|  |                 log(C.ENABLED.s()); | ||||||
|  |             } | ||||||
|  |             setupConfigs(); | ||||||
|  |             this.translationFile = new File(IMP.getDirectory() + File.separator + "translations" + File.separator + "PlotSquared.use_THIS.yml"); | ||||||
|  |             C.load(translationFile); | ||||||
|  |             setupDefaultFlags(); | ||||||
|  |             setupDatabase(); | ||||||
|  |             CommentManager.registerDefaultInboxes(); | ||||||
|  |             // Tasks | ||||||
|  |             if (Settings.KILL_ROAD_MOBS) { | ||||||
|  |                 IMP.runEntityTask(); | ||||||
|  |             } | ||||||
|  |             // Events | ||||||
|  |             IMP.registerCommands(); | ||||||
|  |             IMP.registerPlayerEvents(); | ||||||
|  |             IMP.registerInventoryEvents(); | ||||||
|  |             IMP.registerPlotPlusEvents(); | ||||||
|  |             IMP.registerForceFieldEvents(); | ||||||
|  |             IMP.registerWorldEditEvents(); | ||||||
|  |             IMP.registerWorldEvents(); | ||||||
|  |             if (Settings.METRICS) { | ||||||
|  |                 IMP.startMetrics(); | ||||||
|  |             } else { | ||||||
|  |                 log("&dUsing metrics will allow us to improve the plugin, please consider it :)"); | ||||||
|  |             } | ||||||
|  |             IMP.startMetrics(); | ||||||
|  |             if (Settings.TNT_LISTENER) { | ||||||
|  |                 IMP.registerTNTListener(); | ||||||
|  |             } | ||||||
|  |             if (Settings.CHUNK_PROCESSOR) { | ||||||
|  |                 IMP.registerChunkProcessor(); | ||||||
|  |             } | ||||||
|  |             // create UUIDWrapper | ||||||
|  |             UUIDHandler.implementation = IMP.initUUIDHandler(); | ||||||
|  |             UUIDHandler.startCaching(null); // TODO maybe a notification when this is done? | ||||||
|  |             // create event util class | ||||||
|  |             EventUtil.manager = IMP.initEventUtil(); | ||||||
|  |             // create Hybrid utility class | ||||||
|  |             HybridUtils.manager = IMP.initHybridUtils(); | ||||||
|  |             // Inventory utility class | ||||||
|  |             InventoryUtil.manager = IMP.initInventoryUtil(); | ||||||
|  |             // create setup util class | ||||||
|  |             SetupUtils.manager = IMP.initSetupUtils(); | ||||||
|  |             // Set block | ||||||
|  |             BlockManager.manager = IMP.initBlockManager(); | ||||||
|  |             // Set chunk | ||||||
|  |             ChunkManager.manager = IMP.initChunkManager(); | ||||||
|  |             // Plot listener | ||||||
|  |             APlotListener.manager = IMP.initPlotListener(); | ||||||
|  |             // Player manager | ||||||
|  |             PlayerManager.manager = IMP.initPlayerManager(); | ||||||
|  |      | ||||||
|  |             // Check for updates | ||||||
|  |             TaskManager.runTaskAsync(new Runnable() { | ||||||
|  |                 @Override | ||||||
|                 public void run() { |                 public void run() { | ||||||
|                     if (IMP.initPlotMeConverter()) { |                     URL url = getUpdate(); | ||||||
|                         log("&c=== IMPORTANT ==="); |                     if (url != null) { | ||||||
|                         log("&cTHIS MESSAGE MAY BE EXTREMELY HELPFUL IF YOU HAVE TROUBLE CONVERTING PLOTME!"); |                         update = url; | ||||||
|                         log("&c - Make sure 'UUID.read-from-disk' is disabled (false)!"); |                         log("&6You are running an older version of PlotSquared..."); | ||||||
|                         log("&c - Sometimes the database can be locked, deleting PlotMe.jar beforehand will fix the issue!"); |                         log("&8 - &3Use: &7/plot update"); | ||||||
|                         log("&c - After the conversion is finished, please set 'plotme-convert.enabled' to false in the 'settings.yml'"); |                         log("&8 - &3Or: &7" + url); | ||||||
|  |                     } | ||||||
|  |                     else if (LAST_VERSION != null && !StringMan.join(VERSION,".").equals(LAST_VERSION)) { | ||||||
|  |                         log("&aThanks for updating from: " + LAST_VERSION + " to " + StringMan.join(VERSION, ".")); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             }, 200); |             }); | ||||||
|         } |              | ||||||
|          |             // PlotMe | ||||||
|         // Auto clearing |             if (Settings.CONVERT_PLOTME || Settings.CACHE_PLOTME) { | ||||||
|         if (Settings.AUTO_CLEAR) { |                 TaskManager.runTaskLater(new Runnable() { | ||||||
|             ExpireManager.runTask(); |      | ||||||
|         } |                     public void run() { | ||||||
|          |                         if (IMP.initPlotMeConverter()) { | ||||||
|         // World generators: |                             log("&c=== IMPORTANT ==="); | ||||||
|         ConfigurationSection section = config.getConfigurationSection("worlds"); |                             log("&cTHIS MESSAGE MAY BE EXTREMELY HELPFUL IF YOU HAVE TROUBLE CONVERTING PLOTME!"); | ||||||
|         if (section != null) { |                             log("&c - Make sure 'UUID.read-from-disk' is disabled (false)!"); | ||||||
|             for (String world : section.getKeys(false)) { |                             log("&c - Sometimes the database can be locked, deleting PlotMe.jar beforehand will fix the issue!"); | ||||||
|                 if (BlockManager.manager.isWorld(world)) { |                             log("&c - After the conversion is finished, please set 'plotme-convert.enabled' to false in the 'settings.yml'"); | ||||||
|                     break; |                         } | ||||||
|  |                     } | ||||||
|  |                 }, 200); | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             // Auto clearing | ||||||
|  |             if (Settings.AUTO_CLEAR) { | ||||||
|  |                 ExpireManager.runTask(); | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             // World generators: | ||||||
|  |             ConfigurationSection section = config.getConfigurationSection("worlds"); | ||||||
|  |             if (section != null) { | ||||||
|  |                 for (String world : section.getKeys(false)) { | ||||||
|  |                     if (BlockManager.manager.isWorld(world)) { | ||||||
|  |                         break; | ||||||
|  |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |      | ||||||
|  |             // Copy files | ||||||
|  |             copyFile("town.template", "templates"); | ||||||
|  |             copyFile("skyblock.template", "templates"); | ||||||
|  |             copyFile("german.yml", "translations"); | ||||||
|  |             copyFile("s_chinese_unescaped.yml", "translations"); | ||||||
|  |             copyFile("s_chinese.yml", "translations"); | ||||||
|  |             copyFile("italian.yml", "translations"); | ||||||
|  |             showDebug(); | ||||||
|  |         } | ||||||
|  |         catch (Throwable e) { | ||||||
|  |             e.printStackTrace(); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // Copy files |  | ||||||
|         copyFile("town.template", "templates"); |  | ||||||
|         copyFile("skyblock.template", "templates"); |  | ||||||
|         copyFile("german.yml", "translations"); |  | ||||||
|         copyFile("s_chinese_unescaped.yml", "translations"); |  | ||||||
|         copyFile("s_chinese.yml", "translations"); |  | ||||||
|         copyFile("italian.yml", "translations"); |  | ||||||
|         showDebug(); |  | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     public boolean checkVersion(int[] version, int major, int minor, int minor2) { |     public boolean checkVersion(int[] version, int major, int minor, int minor2) { | ||||||
| @@ -1260,7 +1265,7 @@ public class PS { | |||||||
|      */ |      */ | ||||||
|     public void setupConfig() { |     public void setupConfig() { | ||||||
|         LAST_VERSION = config.getString("version"); |         LAST_VERSION = config.getString("version"); | ||||||
|         config.set("version", VERSION); |         config.set("version", StringMan.join(VERSION,".")); | ||||||
|          |          | ||||||
|         final Map<String, Object> options = new HashMap<>(); |         final Map<String, Object> options = new HashMap<>(); | ||||||
|         // Command confirmation |         // Command confirmation | ||||||
| @@ -1553,7 +1558,7 @@ public class PS { | |||||||
|      * Setup the storage file (load + save missing nodes) |      * Setup the storage file (load + save missing nodes) | ||||||
|      */ |      */ | ||||||
|     private void setupStorage() { |     private void setupStorage() { | ||||||
|         storage.set("version", VERSION); |         storage.set("version", StringMan.join(VERSION,".")); | ||||||
|         final Map<String, Object> options = new HashMap<>(); |         final Map<String, Object> options = new HashMap<>(); | ||||||
|         options.put("mysql.use", false); |         options.put("mysql.use", false); | ||||||
|         options.put("sqlite.use", true); |         options.put("sqlite.use", true); | ||||||
| @@ -1611,7 +1616,7 @@ public class PS { | |||||||
|      * Setup the style.yml file |      * Setup the style.yml file | ||||||
|      */ |      */ | ||||||
|     private void setupStyle() { |     private void setupStyle() { | ||||||
|         style.set("version", VERSION); |         style.set("version", StringMan.join(VERSION,".")); | ||||||
|         final Map<String, Object> o = new HashMap<>(); |         final Map<String, Object> o = new HashMap<>(); | ||||||
|         o.put("color.1", "6"); |         o.put("color.1", "6"); | ||||||
|         o.put("color.2", "7"); |         o.put("color.2", "7"); | ||||||
|   | |||||||
| @@ -28,8 +28,8 @@ import com.intellectualcrafters.plot.util.*; | |||||||
| import com.plotsquared.bukkit.generator.AugmentedPopulator; | import com.plotsquared.bukkit.generator.AugmentedPopulator; | ||||||
| import com.plotsquared.bukkit.generator.BukkitPlotGenerator; | import com.plotsquared.bukkit.generator.BukkitPlotGenerator; | ||||||
| import com.plotsquared.bukkit.generator.HybridGen; | import com.plotsquared.bukkit.generator.HybridGen; | ||||||
| import com.plotsquared.bukkit.util.SetupUtils; |  | ||||||
| import com.plotsquared.general.commands.CommandDeclaration; | import com.plotsquared.general.commands.CommandDeclaration; | ||||||
|  |  | ||||||
| import org.bukkit.generator.ChunkGenerator; | import org.bukkit.generator.ChunkGenerator; | ||||||
|  |  | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
|   | |||||||
| @@ -27,9 +27,10 @@ import com.intellectualcrafters.plot.object.PlotId; | |||||||
| import com.intellectualcrafters.plot.object.PlotPlayer; | import com.intellectualcrafters.plot.object.PlotPlayer; | ||||||
| import com.intellectualcrafters.plot.object.comment.CommentInbox; | import com.intellectualcrafters.plot.object.comment.CommentInbox; | ||||||
| import com.intellectualcrafters.plot.object.comment.PlotComment; | import com.intellectualcrafters.plot.object.comment.PlotComment; | ||||||
|  | import com.intellectualcrafters.plot.util.CommentManager; | ||||||
| import com.intellectualcrafters.plot.util.MainUtil; | import com.intellectualcrafters.plot.util.MainUtil; | ||||||
| import com.plotsquared.bukkit.object.comment.CommentManager; |  | ||||||
| import com.plotsquared.general.commands.CommandDeclaration; | import com.plotsquared.general.commands.CommandDeclaration; | ||||||
|  |  | ||||||
| import org.apache.commons.lang.StringUtils; | import org.apache.commons.lang.StringUtils; | ||||||
|  |  | ||||||
| import java.util.Arrays; | import java.util.Arrays; | ||||||
|   | |||||||
| @@ -51,7 +51,7 @@ public class Delete extends SubCommand { | |||||||
|         if (!MainUtil.getTopPlot(plot).equals(MainUtil.getBottomPlot(plot))) { |         if (!MainUtil.getTopPlot(plot).equals(MainUtil.getBottomPlot(plot))) { | ||||||
|             return !sendMessage(plr, C.UNLINK_REQUIRED); |             return !sendMessage(plr, C.UNLINK_REQUIRED); | ||||||
|         } |         } | ||||||
|         if (((!plot.hasOwner() || !plot.isOwner(UUIDHandler.getUUIDWrapper().getUUID(plr)))) && !Permissions.hasPermission(plr, "plots.admin.command.delete")) { |         if (((!plot.hasOwner() || !plot.isOwner(plr.getUUID()))) && !Permissions.hasPermission(plr, "plots.admin.command.delete")) { | ||||||
|             return !sendMessage(plr, C.NO_PLOT_PERMS); |             return !sendMessage(plr, C.NO_PLOT_PERMS); | ||||||
|         } |         } | ||||||
|         final PlotWorld pWorld = PS.get().getPlotWorld(plot.world); |         final PlotWorld pWorld = PS.get().getPlotWorld(plot.world); | ||||||
|   | |||||||
| @@ -26,10 +26,11 @@ import com.intellectualcrafters.plot.object.PlotPlayer; | |||||||
| import com.intellectualcrafters.plot.object.RunnableVal; | import com.intellectualcrafters.plot.object.RunnableVal; | ||||||
| import com.intellectualcrafters.plot.object.comment.CommentInbox; | import com.intellectualcrafters.plot.object.comment.CommentInbox; | ||||||
| import com.intellectualcrafters.plot.object.comment.PlotComment; | import com.intellectualcrafters.plot.object.comment.PlotComment; | ||||||
|  | import com.intellectualcrafters.plot.util.CommentManager; | ||||||
| import com.intellectualcrafters.plot.util.MainUtil; | import com.intellectualcrafters.plot.util.MainUtil; | ||||||
| import com.intellectualcrafters.plot.util.StringMan; | import com.intellectualcrafters.plot.util.StringMan; | ||||||
| import com.plotsquared.bukkit.object.comment.CommentManager; |  | ||||||
| import com.plotsquared.general.commands.CommandDeclaration; | import com.plotsquared.general.commands.CommandDeclaration; | ||||||
|  |  | ||||||
| import org.apache.commons.lang.StringUtils; | import org.apache.commons.lang.StringUtils; | ||||||
|  |  | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
|   | |||||||
| @@ -28,8 +28,9 @@ import com.intellectualcrafters.plot.flag.Flag; | |||||||
| import com.intellectualcrafters.plot.flag.FlagManager; | import com.intellectualcrafters.plot.flag.FlagManager; | ||||||
| import com.intellectualcrafters.plot.object.*; | import com.intellectualcrafters.plot.object.*; | ||||||
| import com.intellectualcrafters.plot.util.*; | import com.intellectualcrafters.plot.util.*; | ||||||
| import com.plotsquared.bukkit.listeners.APlotListener; |  | ||||||
| import com.plotsquared.general.commands.CommandDeclaration; | import com.plotsquared.general.commands.CommandDeclaration; | ||||||
|  | import com.plotsquared.listener.APlotListener; | ||||||
|  |  | ||||||
| import org.apache.commons.lang.StringUtils; | import org.apache.commons.lang.StringUtils; | ||||||
|  |  | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
|   | |||||||
| @@ -23,14 +23,16 @@ package com.intellectualcrafters.plot.commands; | |||||||
| import com.intellectualcrafters.plot.config.C; | import com.intellectualcrafters.plot.config.C; | ||||||
| import com.intellectualcrafters.plot.config.ConfigurationNode; | import com.intellectualcrafters.plot.config.ConfigurationNode; | ||||||
| import com.intellectualcrafters.plot.config.Settings; | import com.intellectualcrafters.plot.config.Settings; | ||||||
|  | import com.intellectualcrafters.plot.generator.PlotGenerator; | ||||||
| import com.intellectualcrafters.plot.object.PlotPlayer; | import com.intellectualcrafters.plot.object.PlotPlayer; | ||||||
| import com.intellectualcrafters.plot.object.SetupObject; | import com.intellectualcrafters.plot.object.SetupObject; | ||||||
| import com.intellectualcrafters.plot.util.BlockManager; | import com.intellectualcrafters.plot.util.BlockManager; | ||||||
| import com.intellectualcrafters.plot.util.MainUtil; | import com.intellectualcrafters.plot.util.MainUtil; | ||||||
|  | import com.intellectualcrafters.plot.util.SetupUtils; | ||||||
| import com.plotsquared.bukkit.generator.BukkitPlotGenerator; | import com.plotsquared.bukkit.generator.BukkitPlotGenerator; | ||||||
| import com.plotsquared.bukkit.generator.HybridGen; | import com.plotsquared.bukkit.generator.HybridGen; | ||||||
| import com.plotsquared.bukkit.util.SetupUtils; |  | ||||||
| import com.plotsquared.general.commands.CommandDeclaration; | import com.plotsquared.general.commands.CommandDeclaration; | ||||||
|  |  | ||||||
| import org.apache.commons.lang.StringUtils; | import org.apache.commons.lang.StringUtils; | ||||||
| import org.bukkit.generator.ChunkGenerator; | import org.bukkit.generator.ChunkGenerator; | ||||||
|  |  | ||||||
| @@ -52,14 +54,11 @@ public class Setup extends SubCommand { | |||||||
|     public void displayGenerators(PlotPlayer plr) { |     public void displayGenerators(PlotPlayer plr) { | ||||||
|         StringBuffer message = new StringBuffer(); |         StringBuffer message = new StringBuffer(); | ||||||
|         message.append("&6What generator do you want?"); |         message.append("&6What generator do you want?"); | ||||||
|         for (Entry<String, ChunkGenerator> entry : SetupUtils.generators.entrySet()) { |         for (Entry<String, PlotGenerator<?>> entry : SetupUtils.generators.entrySet()) { | ||||||
|             if (entry.getKey().equals("PlotSquared")) { |             if (entry.getKey().equals("PlotSquared")) { | ||||||
|                 message.append("\n&8 - &2" + entry.getKey() + " (Default Generator)"); |                 message.append("\n&8 - &2" + entry.getKey() + " (Default Generator)"); | ||||||
|             } |             } | ||||||
|             else if (entry.getValue() instanceof HybridGen) { |             else if (entry.getValue().isFull()) { | ||||||
|                 message.append("\n&8 - &7" + entry.getKey() + " (Hybrid Generator)"); |  | ||||||
|             } |  | ||||||
|             else if (entry.getValue() instanceof BukkitPlotGenerator) { |  | ||||||
|                 message.append("\n&8 - &7" + entry.getKey() + " (Plot Generator)"); |                 message.append("\n&8 - &7" + entry.getKey() + " (Plot Generator)"); | ||||||
|             } |             } | ||||||
|             else { |             else { | ||||||
| @@ -119,7 +118,7 @@ public class Setup extends SubCommand { | |||||||
|                 List<String> allTypes = Arrays.asList(new String[] { "default", "augmented", "partial"}); |                 List<String> allTypes = Arrays.asList(new String[] { "default", "augmented", "partial"}); | ||||||
|                 List<String> allDesc = Arrays.asList(new String[] { "Standard plot generation", "Plot generation with vanilla terrain", "Vanilla with clusters of plots"}); |                 List<String> allDesc = Arrays.asList(new String[] { "Standard plot generation", "Plot generation with vanilla terrain", "Vanilla with clusters of plots"}); | ||||||
|                 ArrayList<String> types = new ArrayList<>(); |                 ArrayList<String> types = new ArrayList<>(); | ||||||
|                 if (SetupUtils.generators.get(object.setupGenerator) instanceof BukkitPlotGenerator) { |                 if (SetupUtils.generators.get(object.setupGenerator).isFull()) { | ||||||
|                     types.add("default"); |                     types.add("default"); | ||||||
|                 } |                 } | ||||||
|                 types.add("augmented"); |                 types.add("augmented"); | ||||||
| @@ -140,13 +139,13 @@ public class Setup extends SubCommand { | |||||||
|                     return false; |                     return false; | ||||||
|                 } |                 } | ||||||
|                 object.type = allTypes.indexOf(args[0].toLowerCase()); |                 object.type = allTypes.indexOf(args[0].toLowerCase()); | ||||||
|                 ChunkGenerator gen = SetupUtils.generators.get(object.setupGenerator); |                 PlotGenerator<?> gen = SetupUtils.generators.get(object.setupGenerator); | ||||||
|                 if (object.type == 0) { |                 if (object.type == 0) { | ||||||
|                     object.current++; |                     object.current++; | ||||||
|                     if (object.step == null) { |                     if (object.step == null) { | ||||||
|                         object.plotManager = object.setupGenerator; |                         object.plotManager = object.setupGenerator; | ||||||
|                         object.step = ((BukkitPlotGenerator) SetupUtils.generators.get(object.plotManager)).getNewPlotWorld(null).getSettingNodes(); |                         object.step = SetupUtils.generators.get(object.plotManager).getNewPlotWorld(null).getSettingNodes(); | ||||||
|                         ((BukkitPlotGenerator) SetupUtils.generators.get(object.plotManager)).processSetup(object); |                         SetupUtils.generators.get(object.plotManager).processSetup(object); | ||||||
|                     } |                     } | ||||||
|                     if (object.step.length == 0) { |                     if (object.step.length == 0) { | ||||||
|                         object.current = 4; |                         object.current = 4; | ||||||
| @@ -157,17 +156,17 @@ public class Setup extends SubCommand { | |||||||
|                     final ConfigurationNode step = object.step[object.setup_index]; |                     final ConfigurationNode step = object.step[object.setup_index]; | ||||||
|                     sendMessage(plr, C.SETUP_STEP, object.setup_index + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + ""); |                     sendMessage(plr, C.SETUP_STEP, object.setup_index + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + ""); | ||||||
|                 } else { |                 } else { | ||||||
|                     if (gen instanceof BukkitPlotGenerator) { |                     if (gen.isFull()) { | ||||||
|                         object.plotManager = object.setupGenerator; |                         object.plotManager = object.setupGenerator; | ||||||
|                         object.setupGenerator = null; |                         object.setupGenerator = null; | ||||||
|                         object.step = ((BukkitPlotGenerator) SetupUtils.generators.get(object.plotManager)).getNewPlotWorld(null).getSettingNodes(); |                         object.step = SetupUtils.generators.get(object.plotManager).getNewPlotWorld(null).getSettingNodes(); | ||||||
|                         ((BukkitPlotGenerator) SetupUtils.generators.get(object.plotManager)).processSetup(object); |                         SetupUtils.generators.get(object.plotManager).processSetup(object); | ||||||
|                     } |                     } | ||||||
|                     else { |                     else { | ||||||
|                         object.plotManager = "PlotSquared"; |                         object.plotManager = "PlotSquared"; | ||||||
|                         MainUtil.sendMessage(plr, "&c[WARNING] The specified generator does not identify as BukkitPlotGenerator"); |                         MainUtil.sendMessage(plr, "&c[WARNING] The specified generator does not identify as BukkitPlotGenerator"); | ||||||
|                         MainUtil.sendMessage(plr, "&7 - You may need to manually configure the other plugin"); |                         MainUtil.sendMessage(plr, "&7 - You may need to manually configure the other plugin"); | ||||||
|                         object.step = ((BukkitPlotGenerator) SetupUtils.generators.get(object.plotManager)).getNewPlotWorld(null).getSettingNodes(); |                         object.step = SetupUtils.generators.get(object.plotManager).getNewPlotWorld(null).getSettingNodes(); | ||||||
|                     } |                     } | ||||||
|                     MainUtil.sendMessage(plr, "&6What terrain would you like in plots?" + "\n&8 - &2NONE&8 - &7No terrain at all" + "\n&8 - &7ORE&8 - &7Just some ore veins and trees" + "\n&8 - &7ROAD&8 - &7Terrain seperated by roads" + "\n&8 - &7ALL&8 - &7Entirely vanilla generation"); |                     MainUtil.sendMessage(plr, "&6What terrain would you like in plots?" + "\n&8 - &2NONE&8 - &7No terrain at all" + "\n&8 - &7ORE&8 - &7Just some ore veins and trees" + "\n&8 - &7ROAD&8 - &7Terrain seperated by roads" + "\n&8 - &7ALL&8 - &7Entirely vanilla generation"); | ||||||
|                 } |                 } | ||||||
| @@ -183,7 +182,7 @@ public class Setup extends SubCommand { | |||||||
|                 object.terrain = terrain.indexOf(args[0].toLowerCase()); |                 object.terrain = terrain.indexOf(args[0].toLowerCase()); | ||||||
|                 object.current++; |                 object.current++; | ||||||
|                 if (object.step == null) { |                 if (object.step == null) { | ||||||
|                     object.step = ((BukkitPlotGenerator) SetupUtils.generators.get(object.plotManager)).getNewPlotWorld(null).getSettingNodes(); |                     object.step = SetupUtils.generators.get(object.plotManager).getNewPlotWorld(null).getSettingNodes(); | ||||||
|                 } |                 } | ||||||
|                 final ConfigurationNode step = object.step[object.setup_index]; |                 final ConfigurationNode step = object.step[object.setup_index]; | ||||||
|                 sendMessage(plr, C.SETUP_STEP, object.setup_index + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + ""); |                 sendMessage(plr, C.SETUP_STEP, object.setup_index + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + ""); | ||||||
|   | |||||||
| @@ -28,8 +28,8 @@ import com.intellectualcrafters.plot.config.ConfigurationNode; | |||||||
| import com.intellectualcrafters.plot.object.*; | import com.intellectualcrafters.plot.object.*; | ||||||
| import com.intellectualcrafters.plot.util.BlockManager; | import com.intellectualcrafters.plot.util.BlockManager; | ||||||
| import com.intellectualcrafters.plot.util.MainUtil; | import com.intellectualcrafters.plot.util.MainUtil; | ||||||
|  | import com.intellectualcrafters.plot.util.SetupUtils; | ||||||
| import com.intellectualcrafters.plot.util.TaskManager; | import com.intellectualcrafters.plot.util.TaskManager; | ||||||
| import com.plotsquared.bukkit.util.SetupUtils; |  | ||||||
| import com.plotsquared.general.commands.CommandDeclaration; | import com.plotsquared.general.commands.CommandDeclaration; | ||||||
|  |  | ||||||
| import java.io.File; | import java.io.File; | ||||||
|   | |||||||
| @@ -209,10 +209,8 @@ public enum C { | |||||||
|     /* |     /* | ||||||
|      * Title Stuff |      * Title Stuff | ||||||
|      */ |      */ | ||||||
|     TITLE_ENTERED_PLOT("Plot: %world%;%x%;%z%", "Titles"), |     TITLE_ENTERED_PLOT("$1Plot: %world%;%x%;%z%", "Titles"), | ||||||
|     TITLE_ENTERED_PLOT_COLOR("GOLD", "Titles"), |     TITLE_ENTERED_PLOT_SUB("$4Owned by %s", "Titles"), | ||||||
|     TITLE_ENTERED_PLOT_SUB("Owned by %s", "Titles"), |  | ||||||
|     TITLE_ENTERED_PLOT_SUB_COLOR("RED", "Titles"), |  | ||||||
|     PREFIX_GREETING("$1%id%$2> ", "Titles"), |     PREFIX_GREETING("$1%id%$2> ", "Titles"), | ||||||
|     PREFIX_FAREWELL("$1%id%$2> ", "Titles"), |     PREFIX_FAREWELL("$1%id%$2> ", "Titles"), | ||||||
|     /* |     /* | ||||||
|   | |||||||
| @@ -3,6 +3,7 @@ package com.intellectualcrafters.plot.generator; | |||||||
| import com.intellectualcrafters.plot.object.PlotCluster; | import com.intellectualcrafters.plot.object.PlotCluster; | ||||||
| import com.intellectualcrafters.plot.object.PlotManager; | import com.intellectualcrafters.plot.object.PlotManager; | ||||||
| import com.intellectualcrafters.plot.object.PlotWorld; | import com.intellectualcrafters.plot.object.PlotWorld; | ||||||
|  | import com.intellectualcrafters.plot.object.SetupObject; | ||||||
|  |  | ||||||
| public abstract class PlotGenerator<T> { | public abstract class PlotGenerator<T> { | ||||||
|     public final String world; |     public final String world; | ||||||
| @@ -46,4 +47,6 @@ public abstract class PlotGenerator<T> { | |||||||
|     public abstract boolean isFull(); |     public abstract boolean isFull(); | ||||||
|      |      | ||||||
|     public abstract String getName(); |     public abstract String getName(); | ||||||
|  |      | ||||||
|  |     public abstract void processSetup(SetupObject object); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| package com.intellectualcrafters.plot.object; | package com.intellectualcrafters.plot.object; | ||||||
|  |  | ||||||
| import com.intellectualcrafters.plot.config.ConfigurationNode; | import com.intellectualcrafters.plot.config.ConfigurationNode; | ||||||
| import com.plotsquared.bukkit.util.SetupUtils; | import com.intellectualcrafters.plot.util.SetupUtils; | ||||||
|  |  | ||||||
| public class SetupObject { | public class SetupObject { | ||||||
|      |      | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| package com.plotsquared.bukkit.object.comment; | package com.intellectualcrafters.plot.util; | ||||||
| 
 | 
 | ||||||
| import com.intellectualcrafters.plot.config.C; | import com.intellectualcrafters.plot.config.C; | ||||||
| import com.intellectualcrafters.plot.config.Settings; | import com.intellectualcrafters.plot.config.Settings; | ||||||
| @@ -6,9 +6,7 @@ import com.intellectualcrafters.plot.object.Plot; | |||||||
| import com.intellectualcrafters.plot.object.PlotPlayer; | import com.intellectualcrafters.plot.object.PlotPlayer; | ||||||
| import com.intellectualcrafters.plot.object.RunnableVal; | import com.intellectualcrafters.plot.object.RunnableVal; | ||||||
| import com.intellectualcrafters.plot.object.comment.*; | import com.intellectualcrafters.plot.object.comment.*; | ||||||
| import com.intellectualcrafters.plot.util.TaskManager; |  | ||||||
| import com.plotsquared.bukkit.titles.AbstractTitle; | import com.plotsquared.bukkit.titles.AbstractTitle; | ||||||
| import org.bukkit.ChatColor; |  | ||||||
| 
 | 
 | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
| @@ -50,7 +48,7 @@ public class CommentManager { | |||||||
|                                 total = count.get(); |                                 total = count.get(); | ||||||
|                             } |                             } | ||||||
|                             if (size.decrementAndGet() == 0 && total > 0) { |                             if (size.decrementAndGet() == 0 && total > 0) { | ||||||
|                                 AbstractTitle.sendTitle(player, "", C.INBOX_NOTIFICATION.s().replaceAll("%s", "" + total), ChatColor.GOLD, ChatColor.valueOf(C.TITLE_ENTERED_PLOT_SUB_COLOR.s())); |                                 AbstractTitle.sendTitle(player, "", C.INBOX_NOTIFICATION.s().replaceAll("%s", "" + total)); | ||||||
|                             } |                             } | ||||||
|                         } |                         } | ||||||
|                     }); |                     }); | ||||||
| @@ -15,7 +15,6 @@ import com.intellectualcrafters.plot.object.PlotBlock; | |||||||
| import com.intellectualcrafters.plot.object.PlotCluster; | import com.intellectualcrafters.plot.object.PlotCluster; | ||||||
| import com.intellectualcrafters.plot.object.PlotId; | import com.intellectualcrafters.plot.object.PlotId; | ||||||
| import com.intellectualcrafters.plot.object.PlotPlayer; | import com.intellectualcrafters.plot.object.PlotPlayer; | ||||||
| import com.plotsquared.bukkit.util.SetupUtils; |  | ||||||
|  |  | ||||||
| public abstract class EventUtil { | public abstract class EventUtil { | ||||||
|      |      | ||||||
|   | |||||||
| @@ -16,6 +16,106 @@ public class MathMan { | |||||||
|         } |         } | ||||||
|         return count / array.length; |         return count / array.length; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Returns [x, y, z] | ||||||
|  |      * @param yaw | ||||||
|  |      * @param pitch | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public static float[] getDirection(float yaw, float pitch) { | ||||||
|  |         double pitch_sin = Math.sin(pitch); | ||||||
|  |         return new float[] { | ||||||
|  |                 (float) (pitch_sin * Math.cos(yaw)), | ||||||
|  |                 (float) (pitch_sin * Math.sin(yaw)), | ||||||
|  |                 (float) Math.cos(pitch) | ||||||
|  |         }; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Returns [ pitch, yaw ] | ||||||
|  |      * @param x | ||||||
|  |      * @param y | ||||||
|  |      * @param z | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public static float[] getPitchAndYaw(float x, float y, float z) { | ||||||
|  |         float distance = sqrtApprox(z * z + x * x); | ||||||
|  |         return new float[] { atan2(y, distance), atan2(x, z) }; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     private static final int ATAN2_BITS = 7; | ||||||
|  |      | ||||||
|  |     private static final int ATAN2_BITS2 = ATAN2_BITS << 1; | ||||||
|  |     private static final int ATAN2_MASK = ~(-1 << ATAN2_BITS2); | ||||||
|  |     private static final int ATAN2_COUNT = ATAN2_MASK + 1; | ||||||
|  |     private static final int ATAN2_DIM = (int) Math.sqrt(ATAN2_COUNT); | ||||||
|  |      | ||||||
|  |     private static final float INV_ATAN2_DIM_MINUS_1 = 1.0f / (ATAN2_DIM - 1); | ||||||
|  |      | ||||||
|  |     private static final float[] atan2 = new float[ATAN2_COUNT]; | ||||||
|  |      | ||||||
|  |     static { | ||||||
|  |         for (int i = 0; i < ATAN2_DIM; i++) { | ||||||
|  |             for (int j = 0; j < ATAN2_DIM; j++) { | ||||||
|  |                 float x0 = (float) i / ATAN2_DIM; | ||||||
|  |                 float y0 = (float) j / ATAN2_DIM; | ||||||
|  |                  | ||||||
|  |                 atan2[j * ATAN2_DIM + i] = (float) Math.atan2(y0, x0); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     public static final float atan2(float y, float x) { | ||||||
|  |         float add, mul; | ||||||
|  |          | ||||||
|  |         if (x < 0.0f) { | ||||||
|  |             if (y < 0.0f) { | ||||||
|  |                 x = -x; | ||||||
|  |                 y = -y; | ||||||
|  |                  | ||||||
|  |                 mul = 1.0f; | ||||||
|  |             } else { | ||||||
|  |                 x = -x; | ||||||
|  |                 mul = -1.0f; | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             add = -3.141592653f; | ||||||
|  |         } else { | ||||||
|  |             if (y < 0.0f) { | ||||||
|  |                 y = -y; | ||||||
|  |                 mul = -1.0f; | ||||||
|  |             } else { | ||||||
|  |                 mul = 1.0f; | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             add = 0.0f; | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         float invDiv = 1.0f / (((x < y) ? y : x) * INV_ATAN2_DIM_MINUS_1); | ||||||
|  |          | ||||||
|  |         int xi = (int) (x * invDiv); | ||||||
|  |         int yi = (int) (y * invDiv); | ||||||
|  |          | ||||||
|  |         return (atan2[yi * ATAN2_DIM + xi] + add) * mul; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     public static float sqrtApprox(float f) { | ||||||
|  |         return f * Float.intBitsToFloat(0x5f375a86 - (Float.floatToIntBits(f) >> 1)); | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     public static double sqrtApprox(double d) { | ||||||
|  |         return Double.longBitsToDouble( ( ( Double.doubleToLongBits( d )-(1l<<52) )>>1 ) + ( 1l<<61 ) ); | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     public static float invSqrt(float x) { | ||||||
|  |         float xhalf = 0.5f*x; | ||||||
|  |         int i = Float.floatToIntBits(x); | ||||||
|  |         i = 0x5f3759df - (i>>1); | ||||||
|  |         x = Float.intBitsToFloat(i); | ||||||
|  |         x = x*(1.5f - xhalf*x*x); | ||||||
|  |         return x; | ||||||
|  |     } | ||||||
|      |      | ||||||
|     public static int getPositiveId(int i) { |     public static int getPositiveId(int i) { | ||||||
|         if (i < 0) { |         if (i < 0) { | ||||||
|   | |||||||
| @@ -1,7 +1,9 @@ | |||||||
| package com.plotsquared.bukkit.util; | package com.intellectualcrafters.plot.util; | ||||||
| 
 | 
 | ||||||
|  | import com.intellectualcrafters.plot.generator.PlotGenerator; | ||||||
| import com.intellectualcrafters.plot.object.PlotWorld; | import com.intellectualcrafters.plot.object.PlotWorld; | ||||||
| import com.intellectualcrafters.plot.object.SetupObject; | import com.intellectualcrafters.plot.object.SetupObject; | ||||||
|  | 
 | ||||||
| import org.bukkit.generator.ChunkGenerator; | import org.bukkit.generator.ChunkGenerator; | ||||||
| 
 | 
 | ||||||
| import java.util.HashMap; | import java.util.HashMap; | ||||||
| @@ -12,7 +14,7 @@ public abstract class SetupUtils { | |||||||
|     public static SetupUtils manager; |     public static SetupUtils manager; | ||||||
|      |      | ||||||
|     public final static Map<String, SetupObject> setupMap = new HashMap<>(); |     public final static Map<String, SetupObject> setupMap = new HashMap<>(); | ||||||
|     public static HashMap<String, ChunkGenerator> generators = new HashMap<>(); |     public static HashMap<String, PlotGenerator<?>> generators = new HashMap<>(); | ||||||
| 
 | 
 | ||||||
|     public abstract void updateGenerators(); |     public abstract void updateGenerators(); | ||||||
| 
 | 
 | ||||||
| @@ -33,6 +33,7 @@ import com.intellectualcrafters.plot.util.EventUtil; | |||||||
| import com.intellectualcrafters.plot.util.InventoryUtil; | import com.intellectualcrafters.plot.util.InventoryUtil; | ||||||
| import com.intellectualcrafters.plot.util.MainUtil; | import com.intellectualcrafters.plot.util.MainUtil; | ||||||
| import com.intellectualcrafters.plot.util.PlayerManager; | import com.intellectualcrafters.plot.util.PlayerManager; | ||||||
|  | import com.intellectualcrafters.plot.util.SetupUtils; | ||||||
| import com.intellectualcrafters.plot.util.TaskManager; | import com.intellectualcrafters.plot.util.TaskManager; | ||||||
| import com.intellectualcrafters.plot.util.UUIDHandlerImplementation; | import com.intellectualcrafters.plot.util.UUIDHandlerImplementation; | ||||||
| import com.intellectualcrafters.plot.uuid.UUIDWrapper; | import com.intellectualcrafters.plot.uuid.UUIDWrapper; | ||||||
| @@ -42,7 +43,6 @@ import com.plotsquared.bukkit.database.plotme.LikePlotMeConverter; | |||||||
| import com.plotsquared.bukkit.database.plotme.PlotMeConnector_017; | import com.plotsquared.bukkit.database.plotme.PlotMeConnector_017; | ||||||
| import com.plotsquared.bukkit.generator.BukkitGeneratorWrapper; | import com.plotsquared.bukkit.generator.BukkitGeneratorWrapper; | ||||||
| import com.plotsquared.bukkit.generator.HybridGen; | import com.plotsquared.bukkit.generator.HybridGen; | ||||||
| import com.plotsquared.bukkit.listeners.APlotListener; |  | ||||||
| import com.plotsquared.bukkit.listeners.ChunkListener; | import com.plotsquared.bukkit.listeners.ChunkListener; | ||||||
| import com.plotsquared.bukkit.listeners.ForceFieldListener; | import com.plotsquared.bukkit.listeners.ForceFieldListener; | ||||||
| import com.plotsquared.bukkit.listeners.PlayerEvents; | import com.plotsquared.bukkit.listeners.PlayerEvents; | ||||||
| @@ -57,7 +57,6 @@ import com.plotsquared.bukkit.listeners.worldedit.WESubscriber; | |||||||
| import com.plotsquared.bukkit.titles.AbstractTitle; | import com.plotsquared.bukkit.titles.AbstractTitle; | ||||||
| import com.plotsquared.bukkit.titles.DefaultTitle; | import com.plotsquared.bukkit.titles.DefaultTitle; | ||||||
| import com.plotsquared.bukkit.util.BukkitHybridUtils; | import com.plotsquared.bukkit.util.BukkitHybridUtils; | ||||||
| import com.plotsquared.bukkit.util.SetupUtils; |  | ||||||
| import com.plotsquared.bukkit.util.bukkit.BukkitChunkManager; | import com.plotsquared.bukkit.util.bukkit.BukkitChunkManager; | ||||||
| import com.plotsquared.bukkit.util.bukkit.BukkitEconHandler; | import com.plotsquared.bukkit.util.bukkit.BukkitEconHandler; | ||||||
| import com.plotsquared.bukkit.util.bukkit.BukkitEventUtil; | import com.plotsquared.bukkit.util.bukkit.BukkitEventUtil; | ||||||
| @@ -78,6 +77,7 @@ import com.plotsquared.bukkit.util.bukkit.uuid.SQLUUIDHandler; | |||||||
| import com.plotsquared.bukkit.uuid.DefaultUUIDWrapper; | import com.plotsquared.bukkit.uuid.DefaultUUIDWrapper; | ||||||
| import com.plotsquared.bukkit.uuid.LowerOfflineUUIDWrapper; | import com.plotsquared.bukkit.uuid.LowerOfflineUUIDWrapper; | ||||||
| import com.plotsquared.bukkit.uuid.OfflineUUIDWrapper; | import com.plotsquared.bukkit.uuid.OfflineUUIDWrapper; | ||||||
|  | import com.plotsquared.listener.APlotListener; | ||||||
| import com.sk89q.worldedit.WorldEdit; | import com.sk89q.worldedit.WorldEdit; | ||||||
| import com.sk89q.worldedit.bukkit.WorldEditPlugin; | import com.sk89q.worldedit.bukkit.WorldEditPlugin; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -5,6 +5,8 @@ import com.intellectualcrafters.plot.generator.PlotGenerator; | |||||||
| import com.intellectualcrafters.plot.object.PlotCluster; | import com.intellectualcrafters.plot.object.PlotCluster; | ||||||
| import com.intellectualcrafters.plot.object.PlotManager; | import com.intellectualcrafters.plot.object.PlotManager; | ||||||
| import com.intellectualcrafters.plot.object.PlotWorld; | import com.intellectualcrafters.plot.object.PlotWorld; | ||||||
|  | import com.intellectualcrafters.plot.object.SetupObject; | ||||||
|  |  | ||||||
| import org.bukkit.generator.ChunkGenerator; | import org.bukkit.generator.ChunkGenerator; | ||||||
|  |  | ||||||
| public class BukkitGeneratorWrapper extends PlotGenerator<ChunkGenerator> { | public class BukkitGeneratorWrapper extends PlotGenerator<ChunkGenerator> { | ||||||
| @@ -13,7 +15,7 @@ public class BukkitGeneratorWrapper extends PlotGenerator<ChunkGenerator> { | |||||||
|      |      | ||||||
|     public BukkitGeneratorWrapper(String world, ChunkGenerator generator) { |     public BukkitGeneratorWrapper(String world, ChunkGenerator generator) { | ||||||
|         super(world, generator); |         super(world, generator); | ||||||
|         full = generator != null; |         full = (generator instanceof BukkitPlotGenerator); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -76,5 +78,12 @@ public class BukkitGeneratorWrapper extends PlotGenerator<ChunkGenerator> { | |||||||
|         } |         } | ||||||
|         return generator.getClass().getName(); |         return generator.getClass().getName(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void processSetup(SetupObject object) { | ||||||
|  |         if (generator instanceof BukkitPlotGenerator) { | ||||||
|  |             ((BukkitPlotGenerator) generator).processSetup(object); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|      |      | ||||||
| } | } | ||||||
|   | |||||||
| @@ -31,8 +31,9 @@ import com.intellectualcrafters.plot.util.*; | |||||||
| import com.plotsquared.bukkit.events.PlayerEnterPlotEvent; | import com.plotsquared.bukkit.events.PlayerEnterPlotEvent; | ||||||
| import com.plotsquared.bukkit.events.PlayerLeavePlotEvent; | import com.plotsquared.bukkit.events.PlayerLeavePlotEvent; | ||||||
| import com.plotsquared.bukkit.object.BukkitPlayer; | import com.plotsquared.bukkit.object.BukkitPlayer; | ||||||
| import com.plotsquared.bukkit.object.comment.CommentManager; |  | ||||||
| import com.plotsquared.bukkit.titles.AbstractTitle; | import com.plotsquared.bukkit.titles.AbstractTitle; | ||||||
|  | import com.plotsquared.listener.APlotListener; | ||||||
|  |  | ||||||
| import org.bukkit.*; | import org.bukkit.*; | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
|  |  | ||||||
| @@ -205,7 +206,7 @@ public class PlotListener extends APlotListener { | |||||||
|                                 replacements.put("%s", getName(plot.owner)); |                                 replacements.put("%s", getName(plot.owner)); | ||||||
|                                 String main = StringMan.replaceFromMap(C.TITLE_ENTERED_PLOT.s(), replacements); |                                 String main = StringMan.replaceFromMap(C.TITLE_ENTERED_PLOT.s(), replacements); | ||||||
|                                 String sub = StringMan.replaceFromMap(C.TITLE_ENTERED_PLOT_SUB.s(), replacements); |                                 String sub = StringMan.replaceFromMap(C.TITLE_ENTERED_PLOT_SUB.s(), replacements); | ||||||
|                                 AbstractTitle.sendTitle(pp, main, sub, ChatColor.valueOf(C.TITLE_ENTERED_PLOT_COLOR.s()), ChatColor.valueOf(C.TITLE_ENTERED_PLOT_SUB_COLOR.s())); |                                 AbstractTitle.sendTitle(pp, main, sub); | ||||||
|                             } |                             } | ||||||
|                         } |                         } | ||||||
|                     }, 20); |                     }, 20); | ||||||
|   | |||||||
| @@ -21,12 +21,12 @@ import java.util.UUID; | |||||||
| public class BukkitPlayer implements PlotPlayer { | public class BukkitPlayer implements PlotPlayer { | ||||||
|      |      | ||||||
|     public final Player player; |     public final Player player; | ||||||
|     UUID uuid; |     private UUID uuid; | ||||||
|     String name; |     private String name; | ||||||
|     private int op = 0; |     private int op = 0; | ||||||
|     private long last = 0; |     private long last = 0; | ||||||
|     public HashSet<String> hasPerm = new HashSet<>(); |     private HashSet<String> hasPerm = new HashSet<>(); | ||||||
|     public HashSet<String> noPerm = new HashSet<>(); |     private HashSet<String> noPerm = new HashSet<>(); | ||||||
|      |      | ||||||
|     private HashMap<String, Object> meta; |     private HashMap<String, Object> meta; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -6,11 +6,11 @@ import org.bukkit.ChatColor; | |||||||
| public abstract class AbstractTitle { | public abstract class AbstractTitle { | ||||||
|     public static AbstractTitle TITLE_CLASS; |     public static AbstractTitle TITLE_CLASS; | ||||||
|      |      | ||||||
|     public static void sendTitle(PlotPlayer player, String head, String sub, ChatColor head_color, ChatColor sub_color) { |     public static void sendTitle(PlotPlayer player, String head, String sub) { | ||||||
|         if (TITLE_CLASS != null && !player.getAttribute("disabletitles")) { |         if (TITLE_CLASS != null && !player.getAttribute("disabletitles")) { | ||||||
|             TITLE_CLASS.sendTitle(player, head, sub, head_color, sub_color, 1, 2, 1); |             TITLE_CLASS.sendTitle(player, head, sub, 1, 2, 1); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public abstract void sendTitle(PlotPlayer player, String head, String sub, ChatColor head_color, ChatColor sub_color, int in, int delay, int out); |     public abstract void sendTitle(PlotPlayer player, String head, String sub, int in, int delay, int out); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -6,15 +6,13 @@ import org.bukkit.ChatColor; | |||||||
|  |  | ||||||
| public class DefaultTitle extends AbstractTitle { | public class DefaultTitle extends AbstractTitle { | ||||||
|     @Override |     @Override | ||||||
|     public void sendTitle(final PlotPlayer player, final String head, final String sub, final ChatColor head_color, final ChatColor sub_color, int in, int delay, int out) { |     public void sendTitle(final PlotPlayer player, final String head, final String sub, int in, int delay, int out) { | ||||||
|         try { |         try { | ||||||
|             final DefaultTitleManager title = new DefaultTitleManager(head, sub, in, delay, out); |             final DefaultTitleManager title = new DefaultTitleManager(head, sub, in, delay, out); | ||||||
|             title.setTitleColor(head_color); |  | ||||||
|             title.setSubtitleColor(sub_color); |  | ||||||
|             title.send(((BukkitPlayer) player).player); |             title.send(((BukkitPlayer) player).player); | ||||||
|         } catch (final Throwable e) { |         } catch (final Throwable e) { | ||||||
|             AbstractTitle.TITLE_CLASS = new DefaultTitle_183(); |             AbstractTitle.TITLE_CLASS = new DefaultTitle_183(); | ||||||
|             AbstractTitle.TITLE_CLASS.sendTitle(player, head, sub, head_color, sub_color, in, delay, out); |             AbstractTitle.TITLE_CLASS.sendTitle(player, head, sub, in, delay, out); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -6,15 +6,13 @@ import org.bukkit.ChatColor; | |||||||
|  |  | ||||||
| public class DefaultTitle_183 extends AbstractTitle { | public class DefaultTitle_183 extends AbstractTitle { | ||||||
|     @Override |     @Override | ||||||
|     public void sendTitle(final PlotPlayer player, final String head, final String sub, final ChatColor head_color, final ChatColor sub_color, int in, int delay, int out) { |     public void sendTitle(final PlotPlayer player, final String head, final String sub, int in, int delay, int out) { | ||||||
|         try { |         try { | ||||||
|             final DefaultTitleManager_183 title = new DefaultTitleManager_183(head, sub, in, delay, out); |             final DefaultTitleManager_183 title = new DefaultTitleManager_183(head, sub, in, delay, out); | ||||||
|             title.setTitleColor(head_color); |  | ||||||
|             title.setSubtitleColor(sub_color); |  | ||||||
|             title.send(((BukkitPlayer) player).player); |             title.send(((BukkitPlayer) player).player); | ||||||
|         } catch (final Throwable e) { |         } catch (final Throwable e) { | ||||||
|             AbstractTitle.TITLE_CLASS = new HackTitle(); |             AbstractTitle.TITLE_CLASS = new HackTitle(); | ||||||
|             AbstractTitle.TITLE_CLASS.sendTitle(player, head, sub, head_color, sub_color, in, delay, out); |             AbstractTitle.TITLE_CLASS.sendTitle(player, head, sub, in, delay, out); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -8,11 +8,9 @@ import org.bukkit.ChatColor; | |||||||
|  |  | ||||||
| public class HackTitle extends AbstractTitle { | public class HackTitle extends AbstractTitle { | ||||||
|     @Override |     @Override | ||||||
|     public void sendTitle(final PlotPlayer player, final String head, final String sub, final ChatColor head_color, final ChatColor sub_color, int in, int delay, int out) { |     public void sendTitle(final PlotPlayer player, final String head, final String sub, int in, int delay, int out) { | ||||||
|         try { |         try { | ||||||
|             final HackTitleManager title = new HackTitleManager(head, sub, in, delay, out); |             final HackTitleManager title = new HackTitleManager(head, sub, in, delay, out); | ||||||
|             title.setTitleColor(head_color); |  | ||||||
|             title.setSubtitleColor(sub_color); |  | ||||||
|             title.send(((BukkitPlayer) player).player); |             title.send(((BukkitPlayer) player).player); | ||||||
|         } catch (final Throwable e) { |         } catch (final Throwable e) { | ||||||
|             PS.log("&cYour server version does not support titles!"); |             PS.log("&cYour server version does not support titles!"); | ||||||
|   | |||||||
| @@ -2,10 +2,13 @@ package com.plotsquared.bukkit.util.bukkit; | |||||||
|  |  | ||||||
| import com.intellectualcrafters.plot.PS; | import com.intellectualcrafters.plot.PS; | ||||||
| import com.intellectualcrafters.plot.config.ConfigurationNode; | import com.intellectualcrafters.plot.config.ConfigurationNode; | ||||||
|  | import com.intellectualcrafters.plot.generator.PlotGenerator; | ||||||
| import com.intellectualcrafters.plot.object.PlotWorld; | import com.intellectualcrafters.plot.object.PlotWorld; | ||||||
| import com.intellectualcrafters.plot.object.SetupObject; | import com.intellectualcrafters.plot.object.SetupObject; | ||||||
|  | import com.intellectualcrafters.plot.util.SetupUtils; | ||||||
|  | import com.plotsquared.bukkit.generator.BukkitGeneratorWrapper; | ||||||
| import com.plotsquared.bukkit.generator.BukkitPlotGenerator; | import com.plotsquared.bukkit.generator.BukkitPlotGenerator; | ||||||
| import com.plotsquared.bukkit.util.SetupUtils; |  | ||||||
| import org.bukkit.Bukkit; | import org.bukkit.Bukkit; | ||||||
| import org.bukkit.World; | import org.bukkit.World; | ||||||
| import org.bukkit.World.Environment; | import org.bukkit.World.Environment; | ||||||
| @@ -32,7 +35,7 @@ public class BukkitSetupUtils extends SetupUtils { | |||||||
|                     final String name = plugin.getDescription().getName(); |                     final String name = plugin.getDescription().getName(); | ||||||
| //                        final PlotGenerator pgen = (PlotGenerator) generator; | //                        final PlotGenerator pgen = (PlotGenerator) generator; | ||||||
| //                        if (pgen.getPlotManager() instanceof SquarePlotManager) { | //                        if (pgen.getPlotManager() instanceof SquarePlotManager) { | ||||||
|                             SetupUtils.generators.put(name, generator); |                             SetupUtils.generators.put(name, new BukkitGeneratorWrapper("CheckingPlotSquaredGenerator", generator)); | ||||||
| //                        } | //                        } | ||||||
| //                    } | //                    } | ||||||
|                 } |                 } | ||||||
| @@ -55,8 +58,8 @@ public class BukkitSetupUtils extends SetupUtils { | |||||||
|             if (object.setupGenerator != null && !object.setupGenerator.equals(object.plotManager)) { |             if (object.setupGenerator != null && !object.setupGenerator.equals(object.plotManager)) { | ||||||
|                 PS.get().config.set("worlds." + world + "." + "generator.init", object.setupGenerator); |                 PS.get().config.set("worlds." + world + "." + "generator.init", object.setupGenerator); | ||||||
|             } |             } | ||||||
|             ChunkGenerator gen = generators.get(object.setupGenerator); |             PlotGenerator<ChunkGenerator> gen = (PlotGenerator<ChunkGenerator>) generators.get(object.setupGenerator); | ||||||
|             if (gen instanceof BukkitPlotGenerator) { |             if (gen.generator instanceof BukkitPlotGenerator) { | ||||||
|                 object.setupGenerator = null; |                 object.setupGenerator = null; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| @@ -105,8 +108,8 @@ public class BukkitSetupUtils extends SetupUtils { | |||||||
|         if (!(generator instanceof BukkitPlotGenerator)) { |         if (!(generator instanceof BukkitPlotGenerator)) { | ||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
|         for (Entry<String, ChunkGenerator> entry : generators.entrySet()) { |         for (Entry<String, PlotGenerator<?>> entry : generators.entrySet()) { | ||||||
|             if (entry.getValue().getClass().getName().equals(generator.getClass().getName())) { |             if (entry.getValue().generator.getClass().getName().equals(generator.getClass().getName())) { | ||||||
|                 return entry.getKey(); |                 return entry.getKey(); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -1,8 +1,10 @@ | |||||||
| package com.plotsquared.bukkit.util.bukkit; | package com.plotsquared.bukkit.util.bukkit; | ||||||
|  |  | ||||||
| import com.intellectualcrafters.plot.PS; | import com.intellectualcrafters.plot.PS; | ||||||
|  | import com.intellectualcrafters.plot.generator.PlotGenerator; | ||||||
|  | import com.intellectualcrafters.plot.util.SetupUtils; | ||||||
| import com.plotsquared.bukkit.generator.AugmentedPopulator; | import com.plotsquared.bukkit.generator.AugmentedPopulator; | ||||||
| import com.plotsquared.bukkit.util.SetupUtils; |  | ||||||
| import org.bukkit.World; | import org.bukkit.World; | ||||||
| import org.bukkit.generator.BlockPopulator; | import org.bukkit.generator.BlockPopulator; | ||||||
| import org.bukkit.generator.ChunkGenerator; | import org.bukkit.generator.ChunkGenerator; | ||||||
| @@ -22,7 +24,8 @@ public class SetGenCB { | |||||||
|         } |         } | ||||||
|         String name = gen.getClass().getCanonicalName(); |         String name = gen.getClass().getCanonicalName(); | ||||||
|         boolean set = false; |         boolean set = false; | ||||||
|         for (ChunkGenerator newGen : SetupUtils.generators.values()) { |         for (PlotGenerator<?> wrapper : SetupUtils.generators.values()) { | ||||||
|  |             ChunkGenerator newGen = (ChunkGenerator) wrapper.generator; | ||||||
|             if (newGen.getClass().getCanonicalName().equals(name)) { |             if (newGen.getClass().getCanonicalName().equals(name)) { | ||||||
|                 // set generator |                 // set generator | ||||||
|                 Field generator = world.getClass().getDeclaredField("generator"); |                 Field generator = world.getClass().getDeclaredField("generator"); | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| package com.plotsquared.bukkit.listeners; | package com.plotsquared.listener; | ||||||
| 
 | 
 | ||||||
| import com.intellectualcrafters.plot.object.Plot; | import com.intellectualcrafters.plot.object.Plot; | ||||||
| import com.intellectualcrafters.plot.object.PlotPlayer; | import com.intellectualcrafters.plot.object.PlotPlayer; | ||||||
| @@ -4,6 +4,8 @@ import com.intellectualcrafters.plot.generator.PlotGenerator; | |||||||
| import com.intellectualcrafters.plot.object.PlotCluster; | import com.intellectualcrafters.plot.object.PlotCluster; | ||||||
| import com.intellectualcrafters.plot.object.PlotManager; | import com.intellectualcrafters.plot.object.PlotManager; | ||||||
| import com.intellectualcrafters.plot.object.PlotWorld; | import com.intellectualcrafters.plot.object.PlotWorld; | ||||||
|  | import com.intellectualcrafters.plot.object.SetupObject; | ||||||
|  |  | ||||||
| import org.spongepowered.api.world.gen.WorldGenerator; | import org.spongepowered.api.world.gen.WorldGenerator; | ||||||
|  |  | ||||||
| public class SpongeGeneratorWrapper extends PlotGenerator<WorldGenerator>{ | public class SpongeGeneratorWrapper extends PlotGenerator<WorldGenerator>{ | ||||||
| @@ -54,5 +56,10 @@ public class SpongeGeneratorWrapper extends PlotGenerator<WorldGenerator>{ | |||||||
|         // TODO Auto-generated method stub |         // TODO Auto-generated method stub | ||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void processSetup(SetupObject object) { | ||||||
|  |         // TODO Auto-generated method stub | ||||||
|  |     } | ||||||
|      |      | ||||||
| } | } | ||||||
|   | |||||||
| @@ -0,0 +1,93 @@ | |||||||
|  | package com.plotsquared.sponge; | ||||||
|  |  | ||||||
|  | import java.util.UUID; | ||||||
|  | import java.util.concurrent.ExecutionException; | ||||||
|  |  | ||||||
|  | import org.spongepowered.api.GameProfile; | ||||||
|  | import org.spongepowered.api.entity.player.Player; | ||||||
|  | import org.spongepowered.api.service.profile.GameProfileResolver; | ||||||
|  |  | ||||||
|  | import com.google.common.base.Charsets; | ||||||
|  | import com.google.inject.Inject; | ||||||
|  | import com.intellectualcrafters.plot.object.OfflinePlotPlayer; | ||||||
|  | import com.intellectualcrafters.plot.object.PlotPlayer; | ||||||
|  | import com.intellectualcrafters.plot.util.UUIDHandler; | ||||||
|  | import com.intellectualcrafters.plot.uuid.UUIDWrapper; | ||||||
|  |  | ||||||
|  | public class SpongeLowerOfflineUUIDWrapper extends UUIDWrapper { | ||||||
|  |  | ||||||
|  |     public SpongeLowerOfflineUUIDWrapper() { | ||||||
|  |         // Anything? | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public UUID getUUID(final PlotPlayer player) { | ||||||
|  |         return getUUID(player.getName()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public UUID getUUID(final OfflinePlotPlayer player) { | ||||||
|  |         return getUUID(player.getName()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public OfflinePlotPlayer getOfflinePlayer(final UUID uuid) { | ||||||
|  |         String name = UUIDHandler.getName(uuid); | ||||||
|  |         if (name == null) { | ||||||
|  |             try { | ||||||
|  |                 GameProfile profile = SpongeMain.THIS.getResolver().get(uuid).get(); | ||||||
|  |                 if (profile != null) { | ||||||
|  |                     name = profile.getName(); | ||||||
|  |                 } | ||||||
|  |             } catch (Exception e) { | ||||||
|  |                 e.printStackTrace(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         if (name == null) { | ||||||
|  |             for (GameProfile profile : SpongeMain.THIS.getResolver().getCachedProfiles()) { | ||||||
|  |                 if (getUUID(profile.getName()).equals(uuid)) { | ||||||
|  |                     name = profile.getName(); | ||||||
|  |                     break; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         final String username = name; | ||||||
|  |         return new OfflinePlotPlayer() { | ||||||
|  |             @Override | ||||||
|  |             public boolean isOnline() { | ||||||
|  |                 return UUIDHandler.getPlayer(uuid) != null; | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             @Override | ||||||
|  |             public UUID getUUID() { | ||||||
|  |                 return uuid; | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             @Override | ||||||
|  |             public String getName() { | ||||||
|  |                 return username; | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             @Override | ||||||
|  |             public long getLastPlayed() { | ||||||
|  |              // TODO FIXME | ||||||
|  |                 throw new UnsupportedOperationException("NOT IMPLEMENTED YET"); | ||||||
|  |             } | ||||||
|  |         }; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public Player[] getOnlinePlayers() { | ||||||
|  |         return SpongeMain.THIS.getServer().getOnlinePlayers().toArray(new Player[0]); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public UUID getUUID(final String name) { | ||||||
|  |         return UUID.nameUUIDFromBytes(("OfflinePlayer:" + name.toLowerCase()).getBytes(Charsets.UTF_8)); | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     @Override | ||||||
|  |     public OfflinePlotPlayer[] getOfflinePlayers() { | ||||||
|  |      // TODO FIXME | ||||||
|  |         throw new UnsupportedOperationException("NOT IMPLEMENTED YET"); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -9,11 +9,13 @@ import com.intellectualcrafters.plot.config.Settings; | |||||||
| import com.intellectualcrafters.plot.generator.HybridUtils; | import com.intellectualcrafters.plot.generator.HybridUtils; | ||||||
| import com.intellectualcrafters.plot.object.PlotPlayer; | import com.intellectualcrafters.plot.object.PlotPlayer; | ||||||
| import com.intellectualcrafters.plot.util.*; | import com.intellectualcrafters.plot.util.*; | ||||||
| import com.plotsquared.bukkit.listeners.APlotListener; | import com.intellectualcrafters.plot.uuid.UUIDWrapper; | ||||||
| import com.plotsquared.bukkit.util.SetupUtils; | import com.plotsquared.listener.APlotListener; | ||||||
|  |  | ||||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||||
| import org.spongepowered.api.Game; | import org.spongepowered.api.Game; | ||||||
|  | import org.spongepowered.api.GameRegistry; | ||||||
|  | import org.spongepowered.api.MinecraftVersion; | ||||||
| import org.spongepowered.api.Server; | import org.spongepowered.api.Server; | ||||||
| import org.spongepowered.api.entity.player.Player; | import org.spongepowered.api.entity.player.Player; | ||||||
| import org.spongepowered.api.entity.player.gamemode.GameModes; | import org.spongepowered.api.entity.player.gamemode.GameModes; | ||||||
| @@ -23,6 +25,7 @@ import org.spongepowered.api.event.state.PreInitializationEvent; | |||||||
| import org.spongepowered.api.event.state.ServerAboutToStartEvent; | import org.spongepowered.api.event.state.ServerAboutToStartEvent; | ||||||
| import org.spongepowered.api.plugin.Plugin; | import org.spongepowered.api.plugin.Plugin; | ||||||
| import org.spongepowered.api.plugin.PluginContainer; | import org.spongepowered.api.plugin.PluginContainer; | ||||||
|  | import org.spongepowered.api.service.profile.GameProfileResolver; | ||||||
| import org.spongepowered.api.world.DimensionTypes; | import org.spongepowered.api.world.DimensionTypes; | ||||||
| import org.spongepowered.api.world.GeneratorTypes; | import org.spongepowered.api.world.GeneratorTypes; | ||||||
| import org.spongepowered.api.world.World; | import org.spongepowered.api.world.World; | ||||||
| @@ -43,7 +46,33 @@ public class SpongeMain implements IPlotMain, PluginContainer { | |||||||
|     @Inject private Game game; |     @Inject private Game game; | ||||||
|     private Server server; |     private Server server; | ||||||
|      |      | ||||||
|  |     private GameProfileResolver resolver; | ||||||
|  |      | ||||||
|     private WorldModify modify; |     private WorldModify modify; | ||||||
|  |      | ||||||
|  |     private Object plugin; | ||||||
|  |      | ||||||
|  |     // stuff // | ||||||
|  |     public Logger getLogger() { | ||||||
|  |         return logger; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     public Game getGame() { | ||||||
|  |         return game; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     public Server getServer() { | ||||||
|  |         return server; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     public GameProfileResolver getResolver() { | ||||||
|  |         return resolver; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     public Object getPlugin() { | ||||||
|  |         return this.plugin; | ||||||
|  |     } | ||||||
|  |     ///////// | ||||||
|  |  | ||||||
|     ////////////////////// SPONGE PLUGIN REGISTRATION //////////////////// |     ////////////////////// SPONGE PLUGIN REGISTRATION //////////////////// | ||||||
|     @Override |     @Override | ||||||
| @@ -84,27 +113,18 @@ public class SpongeMain implements IPlotMain, PluginContainer { | |||||||
|     public void onServerAboutToStart(ServerAboutToStartEvent event) { |     public void onServerAboutToStart(ServerAboutToStartEvent event) { | ||||||
|         log("INIT"); |         log("INIT"); | ||||||
|         THIS = this; |         THIS = this; | ||||||
|         PS.instance = new PS(this); |  | ||||||
|          |          | ||||||
|         // Setup metrics |         // resolver | ||||||
|         if (Settings.METRICS) { |         resolver = game.getServiceManager().provide(GameProfileResolver.class).get(); | ||||||
|             try { |         plugin = game.getPluginManager().getPlugin("PlotSquared").get().getInstance(); | ||||||
|                 final SpongeMetrics metrics = new SpongeMetrics(game, this); |          | ||||||
|                 metrics.start(); |         PS.instance = new PS(this); | ||||||
|                 log(C.PREFIX.s() + "&6Metrics enabled."); |  | ||||||
|             } catch (final Exception e) { |  | ||||||
|                 log(C.PREFIX.s() + "&cFailed to load up metrics."); |  | ||||||
|             } |  | ||||||
|         } else { |  | ||||||
|             log("&dUsing metrics will allow us to improve the plugin, please consider it :)"); |  | ||||||
|         } |  | ||||||
|          |          | ||||||
|         // Set the generators for each world... |         // Set the generators for each world... | ||||||
|         server = game.getServer(); |         server = game.getServer(); | ||||||
|         Collection<World> worlds = server.getWorlds(); |         Collection<World> worlds = server.getWorlds(); | ||||||
|         if (worlds.size() > 0) { |         if (worlds.size() > 0) { | ||||||
|             log("INJECTING WORLDS!!!!!!!"); |             log("INJECTING WORLDS!!!!!!!"); | ||||||
|             UUIDHandler.startCaching(null); |  | ||||||
|             for (World world : server.getWorlds()) { |             for (World world : server.getWorlds()) { | ||||||
|                 log("INJECTING WORLD: " + world.getName()); |                 log("INJECTING WORLD: " + world.getName()); | ||||||
|                 world.setWorldGenerator(new SpongePlotGenerator(world.getName())); |                 world.setWorldGenerator(new SpongePlotGenerator(world.getName())); | ||||||
| @@ -112,31 +132,25 @@ public class SpongeMain implements IPlotMain, PluginContainer { | |||||||
|         } |         } | ||||||
|          |          | ||||||
|         ConfigurationSection worldSection = PS.get().config.getConfigurationSection("worlds"); |         ConfigurationSection worldSection = PS.get().config.getConfigurationSection("worlds"); | ||||||
|         for (String world : worldSection.getKeys(false)) { |         if (worldSection != null) { | ||||||
|             this.modify = new WorldModify(this); |             for (String world : worldSection.getKeys(false)) { | ||||||
|             Game game = event.getGame(); |                 this.modify = new WorldModify(this); | ||||||
|             game.getRegistry().registerWorldGeneratorModifier(modify); |                 Game game = event.getGame(); | ||||||
|             game.getRegistry().getWorldBuilder() |                 game.getRegistry().registerWorldGeneratorModifier(modify); | ||||||
|             .name(world) |                 game.getRegistry().getWorldBuilder() | ||||||
|             .enabled(true) |                 .name(world) | ||||||
|             .loadsOnStartup(true) |                 .enabled(true) | ||||||
|             .keepsSpawnLoaded(true) |                 .loadsOnStartup(true) | ||||||
|             .dimensionType(DimensionTypes.OVERWORLD) |                 .keepsSpawnLoaded(true) | ||||||
|             .generator(GeneratorTypes.DEBUG) |                 .dimensionType(DimensionTypes.OVERWORLD) | ||||||
|             .gameMode(GameModes.CREATIVE) |                 .generator(GeneratorTypes.DEBUG) | ||||||
|             .generatorModifiers(modify) |                 .gameMode(GameModes.CREATIVE) | ||||||
|             .build(); |                 .generatorModifiers(modify) | ||||||
|  |                 .build(); | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     public Logger getLogger() { |  | ||||||
|         return logger; |  | ||||||
|     } |  | ||||||
|      |  | ||||||
|     public Game getGame() { |  | ||||||
|         return game; |  | ||||||
|     } |  | ||||||
|      |  | ||||||
|     @Subscribe |     @Subscribe | ||||||
|     public void onPlayerChat(PlayerChatEvent event) { |     public void onPlayerChat(PlayerChatEvent event) { | ||||||
|         // This is how events sort of work? |         // This is how events sort of work? | ||||||
| @@ -163,68 +177,72 @@ public class SpongeMain implements IPlotMain, PluginContainer { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int[] getPluginVersion() { |     public int[] getPluginVersion() { | ||||||
|         // TODO Auto-generated method stub |         PluginContainer plugin = game.getPluginManager().getPlugin("PlotSquared").get(); | ||||||
|         return null; |         String version = plugin.getVersion(); | ||||||
|  |         log("Checking plugin version: PlotSquared: "); | ||||||
|  |         String[] split = version.split("\\."); | ||||||
|  |         return new int[] { Integer.parseInt(split[0]), Integer.parseInt(split[1]), (split.length == 3) ? Integer.parseInt(split[2]) : 0 }; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int[] getServerVersion() { |     public int[] getServerVersion() { | ||||||
|         // TODO Auto-generated method stub |         log("Checking minecraft version: Sponge: "); | ||||||
|         return null; |         String version = game.getPlatform().getMinecraftVersion().getName(); | ||||||
|  |         String[] split = version.split("\\."); | ||||||
|  |         return new int[] { Integer.parseInt(split[0]), Integer.parseInt(split[1]), (split.length == 3) ? Integer.parseInt(split[2]) : 0 }; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public TaskManager getTaskManager() { |     public TaskManager getTaskManager() { | ||||||
|         // TODO Auto-generated method stub |         return new SpongeTaskManager(); | ||||||
|         return null; |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void runEntityTask() { |     public void runEntityTask() { | ||||||
|         // TODO Auto-generated method stub |         // TODO Auto-generated method stub | ||||||
|          |         log("runEntityTask is not implemented!"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void registerCommands() { |     public void registerCommands() { | ||||||
|         // TODO Auto-generated method stub |         // TODO Auto-generated method stub | ||||||
|          |         log("registerCommands is not implemented!"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void registerPlayerEvents() { |     public void registerPlayerEvents() { | ||||||
|         // TODO Auto-generated method stub |         // TODO Auto-generated method stub | ||||||
|          |         log("registerPlayerEvents is not implemented!"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void registerInventoryEvents() { |     public void registerInventoryEvents() { | ||||||
|         // TODO Auto-generated method stub |         // TODO Auto-generated method stub | ||||||
|          |         log("registerInventoryEvents is not implemented!"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void registerPlotPlusEvents() { |     public void registerPlotPlusEvents() { | ||||||
|         // TODO Auto-generated method stub |         // TODO Auto-generated method stub | ||||||
|          |         log("registerPlotPlusEvents is not implemented!"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void registerForceFieldEvents() { |     public void registerForceFieldEvents() { | ||||||
|         // TODO Auto-generated method stub |         // TODO Auto-generated method stub | ||||||
|          |         log("registerForceFieldEvents is not implemented!"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void registerWorldEditEvents() { |     public void registerWorldEditEvents() { | ||||||
|         // TODO Auto-generated method stub |         // TODO Auto-generated method stub | ||||||
|          |         log("registerWorldEditEvents is not implemented!"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void registerTNTListener() { |     public void registerTNTListener() { | ||||||
|         // TODO Auto-generated method stub |         // TODO Auto-generated method stub | ||||||
|          |         log("registerTNTListener is not implemented!"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -265,8 +283,14 @@ public class SpongeMain implements IPlotMain, PluginContainer { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public UUIDHandlerImplementation initUUIDHandler() { |     public UUIDHandlerImplementation initUUIDHandler() { | ||||||
|         // TODO Auto-generated method stub |         UUIDWrapper wrapper; | ||||||
|         return null; |         if (Settings.OFFLINE_MODE || !PS.get().checkVersion(this.getServerVersion(), 1, 7, 6)) { | ||||||
|  |             wrapper = new SpongeLowerOfflineUUIDWrapper(); | ||||||
|  |         } | ||||||
|  |         else { | ||||||
|  |             wrapper = new SpongeOnlineUUIDWrapper(); | ||||||
|  |         } | ||||||
|  |         return new SpongeUUIDHandler(wrapper); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -319,14 +343,19 @@ public class SpongeMain implements IPlotMain, PluginContainer { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public String getServerName() { |     public String getServerName() { | ||||||
|         // TODO Auto-generated method stub |      // TODO FIXME | ||||||
|         return null; |         throw new UnsupportedOperationException("NOT IMPLEMENTED YET"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void startMetrics() { |     public void startMetrics() { | ||||||
|         // TODO Auto-generated method stub |         try { | ||||||
|          |             final SpongeMetrics metrics = new SpongeMetrics(game, this); | ||||||
|  |             metrics.start(); | ||||||
|  |             log(C.PREFIX.s() + "&6Metrics enabled."); | ||||||
|  |         } catch (final Exception e) { | ||||||
|  |             log(C.PREFIX.s() + "&cFailed to load up metrics."); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -0,0 +1,72 @@ | |||||||
|  | package com.plotsquared.sponge; | ||||||
|  |  | ||||||
|  | import java.util.UUID; | ||||||
|  | import java.util.concurrent.ExecutionException; | ||||||
|  |  | ||||||
|  | import com.intellectualcrafters.plot.object.OfflinePlotPlayer; | ||||||
|  | import com.intellectualcrafters.plot.object.PlotPlayer; | ||||||
|  | import com.intellectualcrafters.plot.util.UUIDHandler; | ||||||
|  | import com.intellectualcrafters.plot.uuid.UUIDWrapper; | ||||||
|  |  | ||||||
|  | public class SpongeOnlineUUIDWrapper extends UUIDWrapper { | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public UUID getUUID(PlotPlayer player) { | ||||||
|  |         return ((SpongePlayer) player).player.getUniqueId(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public UUID getUUID(OfflinePlotPlayer player) { | ||||||
|  |         return player.getUUID(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public UUID getUUID(String name) { | ||||||
|  |         try { | ||||||
|  |             return SpongeMain.THIS.getResolver().get(name, true).get().getUniqueId(); | ||||||
|  |         } catch (Exception e) { | ||||||
|  |             e.printStackTrace(); | ||||||
|  |         } | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public OfflinePlotPlayer getOfflinePlayer(final UUID uuid) { | ||||||
|  |         String name; | ||||||
|  |         try { | ||||||
|  |             name = SpongeMain.THIS.getResolver().get(uuid, true).get().getName(); | ||||||
|  |         } | ||||||
|  |         catch (Exception e) { | ||||||
|  |             name = null; | ||||||
|  |         } | ||||||
|  |         final String username = name; | ||||||
|  |         return new OfflinePlotPlayer() { | ||||||
|  |             @Override | ||||||
|  |             public boolean isOnline() { | ||||||
|  |                 return UUIDHandler.getPlayer(uuid) != null; | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             @Override | ||||||
|  |             public UUID getUUID() { | ||||||
|  |                 return uuid; | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             @Override | ||||||
|  |             public String getName() { | ||||||
|  |                 return username; | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             @Override | ||||||
|  |             public long getLastPlayed() { | ||||||
|  |                 // TODO FIXME | ||||||
|  |                 throw new UnsupportedOperationException("NOT IMPLEMENTED YET"); | ||||||
|  |             } | ||||||
|  |         }; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public OfflinePlotPlayer[] getOfflinePlayers() { | ||||||
|  |         throw new UnsupportedOperationException("NOT IMPLEMENTED YET"); | ||||||
|  |     } | ||||||
|  |      | ||||||
|  | } | ||||||
							
								
								
									
										205
									
								
								src/main/java/com/plotsquared/sponge/SpongePlayer.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										205
									
								
								src/main/java/com/plotsquared/sponge/SpongePlayer.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,205 @@ | |||||||
|  | package com.plotsquared.sponge; | ||||||
|  |  | ||||||
|  | import java.util.HashMap; | ||||||
|  | import java.util.HashSet; | ||||||
|  | import java.util.UUID; | ||||||
|  |  | ||||||
|  | import org.bukkit.Bukkit; | ||||||
|  | import org.bukkit.permissions.Permission; | ||||||
|  | import org.bukkit.permissions.PermissionDefault; | ||||||
|  | import org.spongepowered.api.entity.player.Player; | ||||||
|  | import org.spongepowered.api.text.chat.ChatTypes; | ||||||
|  |  | ||||||
|  | import com.flowpowered.math.vector.Vector3d; | ||||||
|  | import com.intellectualcrafters.plot.commands.RequiredType; | ||||||
|  | import com.intellectualcrafters.plot.config.C; | ||||||
|  | import com.intellectualcrafters.plot.config.Settings; | ||||||
|  | import com.intellectualcrafters.plot.object.Location; | ||||||
|  | import com.intellectualcrafters.plot.object.PlotPlayer; | ||||||
|  | import com.intellectualcrafters.plot.util.EconHandler; | ||||||
|  | import com.intellectualcrafters.plot.util.MainUtil; | ||||||
|  | import com.intellectualcrafters.plot.util.UUIDHandler; | ||||||
|  |  | ||||||
|  | public class SpongePlayer implements PlotPlayer { | ||||||
|  |  | ||||||
|  |     public final Player player; | ||||||
|  |     private UUID uuid; | ||||||
|  |     private String name; | ||||||
|  |     private int op = 0; | ||||||
|  |     private long last = 0; | ||||||
|  |     private HashSet<String> hasPerm = new HashSet<>(); | ||||||
|  |     private HashSet<String> noPerm = new HashSet<>(); | ||||||
|  |      | ||||||
|  |     private HashMap<String, Object> meta; | ||||||
|  |  | ||||||
|  |     public SpongePlayer(Player player) { | ||||||
|  |         this.player = player; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     @Override | ||||||
|  |     public void sendMessage(C c, String... args) { | ||||||
|  |         MainUtil.sendMessage(this, c, args); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public RequiredType getSuperCaller() { | ||||||
|  |         return RequiredType.PLAYER; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public long getPreviousLogin() { | ||||||
|  |         return (long) (player.getJoinData().getLastPlayed().getSeconds()) * 1000; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Location getLocation() { | ||||||
|  |         return SpongeUtil.getLocation(player); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Location getLocationFull() { | ||||||
|  |         return SpongeUtil.getLocationFull(player); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public UUID getUUID() { | ||||||
|  |         if (this.uuid == null) { | ||||||
|  |             this.uuid = UUIDHandler.getUUID(this); | ||||||
|  |         } | ||||||
|  |         return uuid; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public boolean hasPermission(String perm) { | ||||||
|  |         if (Settings.PERMISSION_CACHING) { | ||||||
|  |             if (this.noPerm.contains(perm)) { | ||||||
|  |                 return false; | ||||||
|  |             } | ||||||
|  |             if (this.hasPerm.contains(perm)) { | ||||||
|  |                 return true; | ||||||
|  |             } | ||||||
|  |             final boolean result = this.player.hasPermission(perm); | ||||||
|  |             if (!result) { | ||||||
|  |                 this.noPerm.add(perm); | ||||||
|  |                 return false; | ||||||
|  |             } | ||||||
|  |             this.hasPerm.add(perm); | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         return this.player.hasPermission(perm); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void sendMessage(String message) { | ||||||
|  |         player.sendMessage(ChatTypes.CHAT, message); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void teleport(Location loc) { | ||||||
|  |         String world = player.getWorld().getName(); | ||||||
|  |         if (world != loc.getWorld()) { | ||||||
|  |             player.transferToWorld(world, new Vector3d(loc.getX(), loc.getY(), loc.getZ())); | ||||||
|  |         } | ||||||
|  |         else { | ||||||
|  |             org.spongepowered.api.world.Location current = player.getLocation(); | ||||||
|  |             player.setLocationSafely(current.setPosition(new Vector3d(loc.getX(), loc.getY(), loc.getZ()))); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public boolean isOp() { | ||||||
|  |         if (this.op != 0) { | ||||||
|  |             return this.op != 1; | ||||||
|  |         } | ||||||
|  |         final boolean result = this.player.hasPermission("*"); | ||||||
|  |         if (!result) { | ||||||
|  |             this.op = 1; | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  |         this.op = 2; | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public boolean isOnline() { | ||||||
|  |         return player.isOnline(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public String getName() { | ||||||
|  |         if (this.name == null) { | ||||||
|  |             this.name = this.player.getName(); | ||||||
|  |         } | ||||||
|  |         return this.name; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void setCompassTarget(Location loc) { | ||||||
|  |         // TODO set compass target | ||||||
|  |         throw new UnsupportedOperationException("NOT IMPLEMENTED YET"); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void loadData() { | ||||||
|  |         // TODO Auto-generated method stub | ||||||
|  |         throw new UnsupportedOperationException("NOT IMPLEMENTED YET"); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void saveData() { | ||||||
|  |         // TODO Auto-generated method stub | ||||||
|  |         throw new UnsupportedOperationException("NOT IMPLEMENTED YET"); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void setMeta(String key, Object value) { | ||||||
|  |         if (this.meta == null) { | ||||||
|  |             this.meta = new HashMap<String, Object>(); | ||||||
|  |         } | ||||||
|  |         this.meta.put(key, value); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Object getMeta(String key) { | ||||||
|  |         if (this.meta != null) { | ||||||
|  |             return this.meta.get(key); | ||||||
|  |         } | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void deleteMeta(String key) { | ||||||
|  |         if (this.meta != null) { | ||||||
|  |             this.meta.remove(key); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     @Override | ||||||
|  |     public String toString() { | ||||||
|  |         return getName(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void setAttribute(String key) { | ||||||
|  |         key = "plotsquared_user_attributes." + key; | ||||||
|  |         EconHandler.manager.setPermission(this, key, true); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public boolean getAttribute(String key) { | ||||||
|  |         key = "plotsquared_user_attributes." + key; | ||||||
|  |         Permission perm = Bukkit.getServer().getPluginManager().getPermission(key); | ||||||
|  |         if (perm == null) { | ||||||
|  |             perm = new Permission(key, PermissionDefault.FALSE); | ||||||
|  |             Bukkit.getServer().getPluginManager().addPermission(perm); | ||||||
|  |             Bukkit.getServer().getPluginManager().recalculatePermissionDefaults(perm); | ||||||
|  |         } | ||||||
|  |         return player.hasPermission(key); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void removeAttribute(String key) { | ||||||
|  |         key = "plotsquared_user_attributes." + key; | ||||||
|  |         EconHandler.manager.setPermission(this, key, false); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										59
									
								
								src/main/java/com/plotsquared/sponge/SpongeTaskManager.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								src/main/java/com/plotsquared/sponge/SpongeTaskManager.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | |||||||
|  | package com.plotsquared.sponge; | ||||||
|  |  | ||||||
|  | import java.util.HashMap; | ||||||
|  | import java.util.concurrent.atomic.AtomicInteger; | ||||||
|  |  | ||||||
|  | import org.spongepowered.api.service.scheduler.Task; | ||||||
|  | import org.spongepowered.api.service.scheduler.TaskBuilder; | ||||||
|  |  | ||||||
|  | import com.intellectualcrafters.plot.util.TaskManager; | ||||||
|  |  | ||||||
|  | public class SpongeTaskManager extends TaskManager { | ||||||
|  |  | ||||||
|  |     private AtomicInteger i = new AtomicInteger(); | ||||||
|  |      | ||||||
|  |     private HashMap<Integer, Task> tasks = new HashMap<>(); | ||||||
|  |      | ||||||
|  |     @Override | ||||||
|  |     public int taskRepeat(Runnable r, int interval) { | ||||||
|  |         int val = i.incrementAndGet(); | ||||||
|  |         TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().getTaskBuilder(); | ||||||
|  |         TaskBuilder built = builder.delay(interval).interval(interval).execute(r); | ||||||
|  |         Task task = built.submit(SpongeMain.THIS.getPlugin()); | ||||||
|  |         tasks.put(val, task); | ||||||
|  |         return val; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void taskAsync(Runnable r) { | ||||||
|  |         TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().getTaskBuilder(); | ||||||
|  |         builder.async().execute(r); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void task(Runnable r) { | ||||||
|  |         TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().getTaskBuilder(); | ||||||
|  |         builder.execute(r); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void taskLater(Runnable r, int delay) { | ||||||
|  |         TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().getTaskBuilder(); | ||||||
|  |         builder.delay(delay).execute(r); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void taskLaterAsync(Runnable r, int delay) { | ||||||
|  |         TaskBuilder builder = SpongeMain.THIS.getGame().getScheduler().getTaskBuilder(); | ||||||
|  |         builder.async().delay(delay).execute(r); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void cancelTask(int i) { | ||||||
|  |         Task task = tasks.remove(i); | ||||||
|  |         if (task != null) { | ||||||
|  |             task.cancel(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  | } | ||||||
							
								
								
									
										53
									
								
								src/main/java/com/plotsquared/sponge/SpongeUUIDHandler.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								src/main/java/com/plotsquared/sponge/SpongeUUIDHandler.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | |||||||
|  | package com.plotsquared.sponge; | ||||||
|  |  | ||||||
|  | import java.util.Collection; | ||||||
|  | import java.util.UUID; | ||||||
|  |  | ||||||
|  | import org.spongepowered.api.GameProfile; | ||||||
|  | import org.spongepowered.api.service.profile.GameProfileResolver; | ||||||
|  |  | ||||||
|  | import com.google.inject.Inject; | ||||||
|  | import com.intellectualcrafters.plot.database.DBFunc; | ||||||
|  | import com.intellectualcrafters.plot.object.RunnableVal; | ||||||
|  | import com.intellectualcrafters.plot.object.StringWrapper; | ||||||
|  | import com.intellectualcrafters.plot.util.TaskManager; | ||||||
|  | import com.intellectualcrafters.plot.util.UUIDHandlerImplementation; | ||||||
|  | import com.intellectualcrafters.plot.uuid.UUIDWrapper; | ||||||
|  |  | ||||||
|  | public class SpongeUUIDHandler extends UUIDHandlerImplementation { | ||||||
|  |  | ||||||
|  |     public SpongeUUIDHandler(UUIDWrapper wrapper) { | ||||||
|  |         super(wrapper); | ||||||
|  |         // TODO Auto-generated constructor stub | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     @Override | ||||||
|  |     public boolean startCaching(Runnable whenDone) { | ||||||
|  |         if (!super.startCaching(whenDone)) { | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  |         return cache(whenDone); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public boolean cache(Runnable whenDone) { | ||||||
|  |         // TODO cache UUIDS | ||||||
|  | //        SpongeMain.THIS.getRegistry().get | ||||||
|  |         add(new StringWrapper("*"), DBFunc.everyone); | ||||||
|  |         for (GameProfile profile : SpongeMain.THIS.getResolver().getCachedProfiles()) { | ||||||
|  |             add(new StringWrapper(profile.getName()), profile.getUniqueId()); | ||||||
|  |         } | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void fetchUUID(final String name, final RunnableVal<UUID> ifFetch) { | ||||||
|  |         TaskManager.runTaskAsync(new Runnable() { | ||||||
|  |             @Override | ||||||
|  |             public void run() { | ||||||
|  |                 ifFetch.value = uuidWrapper.getUUID(name); | ||||||
|  |                 TaskManager.runTask(ifFetch); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  |      | ||||||
|  | } | ||||||
							
								
								
									
										28
									
								
								src/main/java/com/plotsquared/sponge/SpongeUtil.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								src/main/java/com/plotsquared/sponge/SpongeUtil.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | package com.plotsquared.sponge; | ||||||
|  |  | ||||||
|  | import org.spongepowered.api.entity.Entity; | ||||||
|  |  | ||||||
|  | import com.flowpowered.math.vector.Vector3d; | ||||||
|  | import com.flowpowered.math.vector.Vector3i; | ||||||
|  | import com.intellectualcrafters.plot.object.Location; | ||||||
|  | import com.intellectualcrafters.plot.util.MathMan; | ||||||
|  |  | ||||||
|  | public class SpongeUtil { | ||||||
|  |  | ||||||
|  |     public static Location getLocation(Entity player) { | ||||||
|  |         String world = player.getWorld().getName(); | ||||||
|  |         org.spongepowered.api.world.Location loc = player.getLocation(); | ||||||
|  |         Vector3i pos = loc.getBlockPosition(); | ||||||
|  |         return new Location(world, pos.getX(), pos.getY(), pos.getZ()); | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     public static Location getLocationFull(Entity player) { | ||||||
|  |         String world = player.getWorld().getName(); | ||||||
|  |         Vector3d rot = player.getRotation(); | ||||||
|  |         float[] pitchYaw = MathMan.getPitchAndYaw((float) rot.getX(), (float) rot.getY(), (float) rot.getZ()); | ||||||
|  |         org.spongepowered.api.world.Location loc = player.getLocation(); | ||||||
|  |         Vector3i pos = loc.getBlockPosition(); | ||||||
|  |         return new Location(world, pos.getX(), pos.getY(), pos.getZ(), pitchYaw[1], pitchYaw[0]); | ||||||
|  |     } | ||||||
|  |      | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	 boy0001
					boy0001