summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Essentials/src/net/ess3/Essentials.java9
-rw-r--r--Essentials/src/net/ess3/api/IPermission.java2
-rw-r--r--Essentials/src/net/ess3/utils/Util.java40
-rw-r--r--EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java2
-rw-r--r--EssentialsProtect/src/net/ess3/protect/EssentialsConnect.java2
-rw-r--r--EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java6
-rw-r--r--EssentialsProtect/src/net/ess3/protect/ItemUsePermissions.java6
-rw-r--r--EssentialsProtect/src/net/ess3/protect/Permissions.java10
-rw-r--r--EssentialsProtect/src/net/ess3/protect/ProtectHolder.java2
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