diff options
9 files changed, 54 insertions, 25 deletions
diff --git a/Essentials/src/net/ess3/Essentials.java b/Essentials/src/net/ess3/Essentials.java index a373b672a..f1deaee99 100644 --- a/Essentials/src/net/ess3/Essentials.java +++ b/Essentials/src/net/ess3/Essentials.java @@ -32,10 +32,7 @@ import net.ess3.economy.Economy; import net.ess3.economy.Trade; import net.ess3.economy.WorthHolder; import net.ess3.economy.register.Methods; -import net.ess3.listener.*; import net.ess3.metrics.Metrics; -import net.ess3.metrics.MetricsListener; -import net.ess3.metrics.MetricsStarter; import net.ess3.ranks.RanksStorage; import net.ess3.settings.SettingsHolder; import net.ess3.settings.SpawnsHolder; @@ -44,13 +41,7 @@ import net.ess3.utils.ExecuteTimer; import org.bukkit.Server; import org.bukkit.World; import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.plugin.InvalidDescriptionException; -import org.bukkit.plugin.Plugin; -import org.yaml.snakeyaml.error.YAMLException; public class Essentials implements IEssentials diff --git a/Essentials/src/net/ess3/api/IPermission.java b/Essentials/src/net/ess3/api/IPermission.java index 8a76cd549..66cf09ad0 100644 --- a/Essentials/src/net/ess3/api/IPermission.java +++ b/Essentials/src/net/ess3/api/IPermission.java @@ -14,5 +14,5 @@ public interface IPermission Permission getPermission(); - PermissionDefault getPermissionDefault(); + PermissionDefault getPermissionDefault(); } diff --git a/Essentials/src/net/ess3/utils/Util.java b/Essentials/src/net/ess3/utils/Util.java index 845f5ffd7..734ba921f 100644 --- a/Essentials/src/net/ess3/utils/Util.java +++ b/Essentials/src/net/ess3/utils/Util.java @@ -14,6 +14,7 @@ import net.ess3.api.IUser; import net.ess3.api.InvalidNameException; import net.ess3.utils.gnu.inet.encoding.Punycode; import net.ess3.utils.gnu.inet.encoding.PunycodeException; +import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.inventory.ItemStack; @@ -290,6 +291,45 @@ public final class Util } basePerm.recalculatePermissibles(); } + + private static transient final Pattern DOT_PATTERN = Pattern.compile("\\."); + public static Permission registerPermission(String permission, PermissionDefault defaultPerm) + { + final PluginManager pluginManager = Bukkit.getServer().getPluginManager(); + final String[] parts = DOT_PATTERN.split(permission); + final StringBuilder builder = new StringBuilder(permission.length()); + Permission parent = null; + for (int i = 0; i < parts.length - 1; i++) + { + builder.append(parts[i]).append(".*"); + String permString = builder.toString(); + Permission perm = pluginManager.getPermission(permString); + if (perm == null) + { + perm = new Permission(permString, PermissionDefault.FALSE); + pluginManager.addPermission(perm); + if (parent != null) + { + parent.getChildren().put(perm.getName(), Boolean.TRUE); + } + parent = perm; + } + builder.deleteCharAt(builder.length() - 1); + } + Permission perm = pluginManager.getPermission(permission); + if (perm == null) + { + perm = new Permission(permission, defaultPerm); + pluginManager.addPermission(perm); + if (parent != null) + { + parent.getChildren().put(perm.getName(), Boolean.TRUE); + } + parent = perm; + } + perm.recalculatePermissibles(); + return perm; + } private static transient final Pattern URL_PATTERN = Pattern.compile("((?:(?:https?)://)?[\\w-_\\.]{2,})\\.([a-z]{2,3}(?:/\\S+)?)"); private static transient final Pattern VANILLA_PATTERN = Pattern.compile("\u00A7+[0-9A-FK-ORa-fk-or]"); private static transient final Pattern REPLACE_PATTERN = Pattern.compile("&([0-9a-fk-or])"); diff --git a/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java b/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java index 5c12f09c6..676539b08 100644 --- a/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java +++ b/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java @@ -100,7 +100,7 @@ public class EssentialsGeoIPPlayerListener implements Listener, IReload final IUser user = ess.getUserMap().getUser(player); if (Permissions.GEOIP_SHOW.isAuthorized(user)) { - user.sendMessage(_("geoipJoinFormat", user.getDisplayName(), builder.toString())); + user.sendMessage(_("geoipJoinFormat", user.getPlayer().getDisplayName(), builder.toString())); } } } diff --git a/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java b/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java index b500c3ea3..a47ad5e08 100644 --- a/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java +++ b/EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java @@ -102,7 +102,7 @@ public class EssentialsConnect { try { - protect.setStorage(new ProtectedBlockSQLite("jdbc:sqlite:" + ess.getDataFolder() + "/EssentialsProtect.db")); + protect.setStorage(new ProtectedBlockSQLite("jdbc:sqlite:" + ess.getPlugin().getDataFolder() + "/EssentialsProtect.db")); } catch (PropertyVetoException ex) { diff --git a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java index 77bb472c7..d3677dc11 100644 --- a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java +++ b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java @@ -1,11 +1,9 @@ package net.ess3.protect; -import static net.ess3.I18n._; -import net.ess3.api.IEssentials; -import com.earth2me.essentials.protect.data.IProtectedBlock; import java.util.ArrayList; import java.util.List; - +import static net.ess3.I18n._; +import net.ess3.protect.data.IProtectedBlock; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; diff --git a/EssentialsProtect/src/net/ess3/protect/ItemUsePermissions.java b/EssentialsProtect/src/net/ess3/protect/ItemUsePermissions.java index d9ecf9bc0..e47c54400 100644 --- a/EssentialsProtect/src/net/ess3/protect/ItemUsePermissions.java +++ b/EssentialsProtect/src/net/ess3/protect/ItemUsePermissions.java @@ -1,10 +1,10 @@ package net.ess3.protect; -import net.ess3.api.IPermission; -import net.ess3.permissions.AbstractSuperpermsPermission; import java.util.EnumMap; import java.util.Locale; import java.util.Map; +import net.ess3.api.IPermission; +import net.ess3.permissions.AbstractSuperpermsPermission; import org.bukkit.Material; import org.bukkit.permissions.PermissionDefault; @@ -32,7 +32,7 @@ public class ItemUsePermissions extends AbstractSuperpermsPermission } @Override - public String getPermission() + public String getPermissionName() { return this.permission; } diff --git a/EssentialsProtect/src/net/ess3/protect/Permissions.java b/EssentialsProtect/src/net/ess3/protect/Permissions.java index 37042618b..7a0dd3b7e 100644 --- a/EssentialsProtect/src/net/ess3/protect/Permissions.java +++ b/EssentialsProtect/src/net/ess3/protect/Permissions.java @@ -1,8 +1,8 @@ package net.ess3.protect; +import java.util.Locale; import net.ess3.api.IPermission; import net.ess3.utils.Util; -import java.util.Locale; import org.bukkit.command.CommandSender; import org.bukkit.permissions.Permission; import org.bukkit.permissions.PermissionDefault; @@ -49,13 +49,13 @@ public enum Permissions implements IPermission } @Override - public String getPermission() + public String getPermissionName() { return permission; } @Override - public Permission getBukkitPermission() + public Permission getPermission() { if (bukkitPerm != null) { @@ -63,7 +63,7 @@ public enum Permissions implements IPermission } else { - return Util.registerPermission(getPermission(), getPermissionDefault()); + return Util.registerPermission(getPermissionName(), getPermissionDefault()); } } @@ -76,6 +76,6 @@ public enum Permissions implements IPermission @Override public boolean isAuthorized(final CommandSender sender) { - return sender.hasPermission(getBukkitPermission()); + return sender.hasPermission(getPermission()); } } diff --git a/EssentialsProtect/src/net/ess3/protect/ProtectHolder.java b/EssentialsProtect/src/net/ess3/protect/ProtectHolder.java index 145a5e97e..00d6f256b 100644 --- a/EssentialsProtect/src/net/ess3/protect/ProtectHolder.java +++ b/EssentialsProtect/src/net/ess3/protect/ProtectHolder.java @@ -17,7 +17,7 @@ public class ProtectHolder extends AsyncStorageObjectHolder<Protect> @Override public File getStorageFile() throws IOException { - return new File(ess.getDataFolder(), "protect.yml"); + return new File(ess.getPlugin().getDataFolder(), "protect.yml"); } @Override |