1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-12 01:25:26 +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.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

View File

@@ -14,5 +14,5 @@ public interface IPermission
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.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])");

View File

@@ -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()));
}
}
}

View File

@@ -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)
{

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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());
}
}

View File

@@ -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