1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-13 18:14:38 +02:00

Updates to protect and geoip

This commit is contained in:
ementalo
2012-08-29 15:11:29 +01:00
parent cc82d2ccc2
commit bbcf3ee352
9 changed files with 54 additions and 25 deletions

View File

@@ -32,10 +32,7 @@ import net.ess3.economy.Economy;
import net.ess3.economy.Trade; import net.ess3.economy.Trade;
import net.ess3.economy.WorthHolder; import net.ess3.economy.WorthHolder;
import net.ess3.economy.register.Methods; import net.ess3.economy.register.Methods;
import net.ess3.listener.*;
import net.ess3.metrics.Metrics; import net.ess3.metrics.Metrics;
import net.ess3.metrics.MetricsListener;
import net.ess3.metrics.MetricsStarter;
import net.ess3.ranks.RanksStorage; import net.ess3.ranks.RanksStorage;
import net.ess3.settings.SettingsHolder; import net.ess3.settings.SettingsHolder;
import net.ess3.settings.SpawnsHolder; import net.ess3.settings.SpawnsHolder;
@@ -44,13 +41,7 @@ import net.ess3.utils.ExecuteTimer;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.Player; 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.InvalidDescriptionException;
import org.bukkit.plugin.Plugin;
import org.yaml.snakeyaml.error.YAMLException;
public class Essentials implements IEssentials public class Essentials implements IEssentials

View File

@@ -14,5 +14,5 @@ public interface IPermission
Permission getPermission(); Permission getPermission();
PermissionDefault getPermissionDefault(); PermissionDefault getPermissionDefault();
} }

View File

@@ -14,6 +14,7 @@ import net.ess3.api.IUser;
import net.ess3.api.InvalidNameException; import net.ess3.api.InvalidNameException;
import net.ess3.utils.gnu.inet.encoding.Punycode; import net.ess3.utils.gnu.inet.encoding.Punycode;
import net.ess3.utils.gnu.inet.encoding.PunycodeException; import net.ess3.utils.gnu.inet.encoding.PunycodeException;
import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -290,6 +291,45 @@ public final class Util
} }
basePerm.recalculatePermissibles(); 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 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 VANILLA_PATTERN = Pattern.compile("\u00A7+[0-9A-FK-ORa-fk-or]");
private static transient final Pattern REPLACE_PATTERN = Pattern.compile("&([0-9a-fk-or])"); private static transient final Pattern REPLACE_PATTERN = Pattern.compile("&([0-9a-fk-or])");

View File

@@ -100,7 +100,7 @@ public class EssentialsGeoIPPlayerListener implements Listener, IReload
final IUser user = ess.getUserMap().getUser(player); final IUser user = ess.getUserMap().getUser(player);
if (Permissions.GEOIP_SHOW.isAuthorized(user)) if (Permissions.GEOIP_SHOW.isAuthorized(user))
{ {
user.sendMessage(_("geoipJoinFormat", user.getDisplayName(), builder.toString())); user.sendMessage(_("geoipJoinFormat", user.getPlayer().getDisplayName(), builder.toString()));
} }
} }
} }

View File

@@ -102,7 +102,7 @@ public class EssentialsConnect
{ {
try 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) catch (PropertyVetoException ex)
{ {

View File

@@ -1,11 +1,9 @@
package net.ess3.protect; 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.ArrayList;
import java.util.List; import java.util.List;
import static net.ess3.I18n._;
import net.ess3.protect.data.IProtectedBlock;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.block.BlockFace; import org.bukkit.block.BlockFace;

View File

@@ -1,10 +1,10 @@
package net.ess3.protect; package net.ess3.protect;
import net.ess3.api.IPermission;
import net.ess3.permissions.AbstractSuperpermsPermission;
import java.util.EnumMap; import java.util.EnumMap;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import net.ess3.api.IPermission;
import net.ess3.permissions.AbstractSuperpermsPermission;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.permissions.PermissionDefault; import org.bukkit.permissions.PermissionDefault;
@@ -32,7 +32,7 @@ public class ItemUsePermissions extends AbstractSuperpermsPermission
} }
@Override @Override
public String getPermission() public String getPermissionName()
{ {
return this.permission; return this.permission;
} }

View File

@@ -1,8 +1,8 @@
package net.ess3.protect; package net.ess3.protect;
import java.util.Locale;
import net.ess3.api.IPermission; import net.ess3.api.IPermission;
import net.ess3.utils.Util; import net.ess3.utils.Util;
import java.util.Locale;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.permissions.Permission; import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionDefault; import org.bukkit.permissions.PermissionDefault;
@@ -49,13 +49,13 @@ public enum Permissions implements IPermission
} }
@Override @Override
public String getPermission() public String getPermissionName()
{ {
return permission; return permission;
} }
@Override @Override
public Permission getBukkitPermission() public Permission getPermission()
{ {
if (bukkitPerm != null) if (bukkitPerm != null)
{ {
@@ -63,7 +63,7 @@ public enum Permissions implements IPermission
} }
else else
{ {
return Util.registerPermission(getPermission(), getPermissionDefault()); return Util.registerPermission(getPermissionName(), getPermissionDefault());
} }
} }
@@ -76,6 +76,6 @@ public enum Permissions implements IPermission
@Override @Override
public boolean isAuthorized(final CommandSender sender) public boolean isAuthorized(final CommandSender sender)
{ {
return sender.hasPermission(getBukkitPermission()); return sender.hasPermission(getPermission());
} }
} }

View File

@@ -17,7 +17,7 @@ public class ProtectHolder extends AsyncStorageObjectHolder<Protect>
@Override @Override
public File getStorageFile() throws IOException public File getStorageFile() throws IOException
{ {
return new File(ess.getDataFolder(), "protect.yml"); return new File(ess.getPlugin().getDataFolder(), "protect.yml");
} }
@Override @Override