mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-10-31 01:23:44 +01:00 
			
		
		
		
	Add placeholders
This commit is contained in:
		| @@ -6,6 +6,7 @@ repositories { | ||||
|     maven { url = "https://oss.sonatype.org/content/repositories/snapshots/" } | ||||
|     maven { url = "https://jitpack.io" } | ||||
|     maven { url = "https://repo.codemc.org/repository/maven-public" } | ||||
|     maven { url = "http://repo.extendedclip.com/content/repositories/placeholderapi/" } | ||||
|     maven { | ||||
|         name = "papermc" | ||||
|         url = "https://papermc.io/repo/repository/maven-public/" | ||||
| @@ -26,6 +27,7 @@ dependencies { | ||||
|     compile("com.github.MilkBowl:VaultAPI:1.7") { | ||||
|         exclude(module: "bukkit") | ||||
|     } | ||||
|     implementation("me.clip:placeholderapi:2.10.4") | ||||
| } | ||||
|  | ||||
| sourceCompatibility = 1.8 | ||||
|   | ||||
| @@ -7,6 +7,7 @@ import com.github.intellectualsites.plotsquared.bukkit.listeners.PlayerEvents; | ||||
| import com.github.intellectualsites.plotsquared.bukkit.listeners.PlotPlusListener; | ||||
| import com.github.intellectualsites.plotsquared.bukkit.listeners.SingleWorldListener; | ||||
| import com.github.intellectualsites.plotsquared.bukkit.listeners.WorldEvents; | ||||
| import com.github.intellectualsites.plotsquared.bukkit.placeholders.Placeholders; | ||||
| import com.github.intellectualsites.plotsquared.bukkit.util.BukkitChatManager; | ||||
| import com.github.intellectualsites.plotsquared.bukkit.util.BukkitChunkManager; | ||||
| import com.github.intellectualsites.plotsquared.bukkit.util.BukkitCommand; | ||||
| @@ -163,6 +164,13 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain | ||||
|  | ||||
|         new UpdateUtility(this).updateChecker(); | ||||
|  | ||||
|         if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) { | ||||
|             new Placeholders(this).register(); | ||||
|             PlotSquared.log(Captions.PREFIX + "&6PlaceholderAPI found! Hook activated."); | ||||
|         } else { | ||||
|             PlotSquared.log(Captions.PREFIX + "&6PlaceholderAPI is not in use. Hook deactivated."); | ||||
|         } | ||||
|  | ||||
|         this.startMetrics(); | ||||
|         if (Settings.Enabled_Components.WORLDS) { | ||||
|             TaskManager.IMP.taskRepeat(this::unload, 20); | ||||
|   | ||||
| @@ -0,0 +1,172 @@ | ||||
| package com.github.intellectualsites.plotsquared.bukkit.placeholders; | ||||
|  | ||||
| import com.github.intellectualsites.plotsquared.bukkit.BukkitMain; | ||||
| import com.github.intellectualsites.plotsquared.plot.object.Plot; | ||||
| import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer; | ||||
| import com.github.intellectualsites.plotsquared.plot.util.UUIDHandler; | ||||
| import me.clip.placeholderapi.PlaceholderAPIPlugin; | ||||
| import me.clip.placeholderapi.expansion.PlaceholderExpansion; | ||||
| import org.bukkit.Bukkit; | ||||
| import org.bukkit.entity.Player; | ||||
|  | ||||
| import java.util.Set; | ||||
| import java.util.UUID; | ||||
|  | ||||
| public class Placeholders extends PlaceholderExpansion { | ||||
|  | ||||
|     public Placeholders(BukkitMain plugin) { | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean persist() { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean canRegister() { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getAuthor() { | ||||
|         return "NotMyFault"; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getIdentifier() { | ||||
|         return "plotsquared"; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getVersion() { | ||||
|         return "2.3"; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String onPlaceholderRequest(Player p, String identifier) { | ||||
|         final PlotPlayer pl = PlotPlayer.get(p.getName()); | ||||
|         final Plot plot = pl.getCurrentPlot(); | ||||
|         if (pl == null) { | ||||
|             return ""; | ||||
|         } | ||||
|  | ||||
|         if (identifier.startsWith("has_plot_")) { | ||||
|             if (identifier.split("has_plot_").length != 2) return null; | ||||
|  | ||||
|             identifier = identifier.split("has_plot_")[1]; | ||||
|             return pl.getPlotCount(identifier) > 0 ? PlaceholderAPIPlugin.booleanTrue() : PlaceholderAPIPlugin.booleanFalse(); | ||||
|         } | ||||
|  | ||||
|         if (identifier.startsWith("plot_count_")) { | ||||
|             if (identifier.split("plot_count_").length != 2) return null; | ||||
|  | ||||
|             identifier = identifier.split("plot_count_")[1]; | ||||
|             return String.valueOf(pl.getPlotCount(identifier)); | ||||
|         } | ||||
|  | ||||
|         switch (identifier) { | ||||
|             case "currentplot_alias": { | ||||
|                 return (pl.getCurrentPlot() != null) ? pl.getCurrentPlot().getAlias() : ""; | ||||
|             } | ||||
|             case "currentplot_owner": { | ||||
|                 if (pl.getCurrentPlot() == null) { | ||||
|                     return ""; | ||||
|                 } | ||||
|                 final Set<UUID> o = pl.getCurrentPlot().getOwners(); | ||||
|                 if (o == null || o.isEmpty()) { | ||||
|                     return ""; | ||||
|                 } | ||||
|                 final UUID uid = (UUID) o.toArray()[0]; | ||||
|                 if (uid == null) { | ||||
|                     return ""; | ||||
|                 } | ||||
|                 final String name = UUIDHandler.getName(uid); | ||||
|                 return (name != null) ? name : ((Bukkit.getOfflinePlayer(uid) != null) ? Bukkit.getOfflinePlayer(uid).getName() : "unknown"); | ||||
|             } | ||||
|             case "currentplot_world": { | ||||
|                 return p.getWorld().getName(); | ||||
|             } | ||||
|             case "has_plot": { | ||||
|                 return (pl.getPlotCount() > 0) ? PlaceholderAPIPlugin.booleanTrue() : PlaceholderAPIPlugin.booleanFalse(); | ||||
|             } | ||||
|             case "allowed_plot_count": { | ||||
|                 return String.valueOf(pl.getAllowedPlots()); | ||||
|             } | ||||
|             case "plot_count": { | ||||
|                 return String.valueOf(pl.getPlotCount()); | ||||
|             } | ||||
|             case "currentplot_members": { | ||||
|                 if (pl.getCurrentPlot() == null) { | ||||
|                     return ""; | ||||
|                 } | ||||
|                 if (pl.getCurrentPlot().getMembers() == null && pl.getCurrentPlot().getTrusted() == null) { | ||||
|                     return "0"; | ||||
|                 } | ||||
|                 return String.valueOf(pl.getCurrentPlot().getMembers().size() + pl.getCurrentPlot().getTrusted().size()); | ||||
|             } | ||||
|             case "currentplot_members_added": { | ||||
|                 if (pl.getCurrentPlot() == null) { | ||||
|                     return ""; | ||||
|                 } | ||||
|                 if (pl.getCurrentPlot().getMembers() == null) { | ||||
|                     return "0"; | ||||
|                 } | ||||
|                 return String.valueOf(pl.getCurrentPlot().getMembers().size()); | ||||
|             } | ||||
|             case "currentplot_members_trusted": { | ||||
|                 if (pl.getCurrentPlot() == null) { | ||||
|                     return ""; | ||||
|                 } | ||||
|                 if (pl.getCurrentPlot().getTrusted() == null) { | ||||
|                     return "0"; | ||||
|                 } | ||||
|                 return String.valueOf(plot.getTrusted().size()); | ||||
|             } | ||||
|             case "currentplot_members_denied": { | ||||
|                 if (pl.getCurrentPlot() == null) { | ||||
|                     return ""; | ||||
|                 } | ||||
|                 if (pl.getCurrentPlot().getDenied() == null) { | ||||
|                     return "0"; | ||||
|                 } | ||||
|                 return String.valueOf(pl.getCurrentPlot().getDenied().size()); | ||||
|             } | ||||
|             case "has_build_rights": { | ||||
|                 return (pl.getCurrentPlot() != null) ? ((pl.getCurrentPlot().isAdded(pl.getUUID())) ? PlaceholderAPIPlugin.booleanTrue() : PlaceholderAPIPlugin.booleanFalse()) : ""; | ||||
|             } | ||||
|             case "currentplot_x": { | ||||
|                 if (pl.getCurrentPlot() == null) { | ||||
|                     return ""; | ||||
|                 } | ||||
|                 return String.valueOf(plot.getId().x); | ||||
|             } | ||||
|             case "currentplot_y": { | ||||
|                 if (pl.getCurrentPlot() == null) { | ||||
|                     return ""; | ||||
|                 } | ||||
|                 return String.valueOf(plot.getId().y); | ||||
|             } | ||||
|             case "currentplot_xy": { | ||||
|                 if (pl.getCurrentPlot() == null) { | ||||
|                     return ""; | ||||
|                 } | ||||
|                 return pl.getCurrentPlot().getId().x + ";" + pl.getCurrentPlot().getId().y; | ||||
|             } | ||||
|             case "currentplot_rating": { | ||||
|                 if (pl.getCurrentPlot() == null) { | ||||
|                     return ""; | ||||
|                 } | ||||
|                 return String.valueOf(plot.getAverageRating()); | ||||
|             } | ||||
|             case "currentplot_biome": { | ||||
|                 if (pl.getCurrentPlot() == null) { | ||||
|                     return ""; | ||||
|                 } | ||||
|                 return plot.getBiome() + ""; | ||||
|             } | ||||
|             default: | ||||
|                 break; | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
| } | ||||
| @@ -6,7 +6,7 @@ load: STARTUP | ||||
| description: "Easy, yet powerful Plot World generation and management." | ||||
| authors: [Citymonstret, Empire92, MattBDev, dordsor21, NotMyFault] | ||||
| website: https://github.com/IntellectualSites/ | ||||
| softdepend: [BarAPI, CameraAPI, Vault] | ||||
| softdepend: [Vault, PlaceholderAPI] | ||||
| loadbefore: [MultiWorld, Multiverse-Core] | ||||
| depend: [WorldEdit] | ||||
| database: false | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 NotMyFault
					NotMyFault