summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhyperia <khyperia@live.com>2011-12-03 12:13:42 -0500
committerKhyperia <khyperia@live.com>2011-12-03 12:13:42 -0500
commit3007e9346b9633563b1c45f7d26e06027f2ce512 (patch)
tree9635312bf61fcea93dbaf7e4d2dab462b433ea2d
parent1865e0d3f71aaafc349523a64d26c3b5ea5e0866 (diff)
downloadEssentials-3007e9346b9633563b1c45f7d26e06027f2ce512.tar
Essentials-3007e9346b9633563b1c45f7d26e06027f2ce512.tar.gz
Essentials-3007e9346b9633563b1c45f7d26e06027f2ce512.tar.lz
Essentials-3007e9346b9633563b1c45f7d26e06027f2ce512.tar.xz
Essentials-3007e9346b9633563b1c45f7d26e06027f2ce512.zip
Added per-world permissions for /world
-rw-r--r--Essentials/src/com/earth2me/essentials/ISettings.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/Settings.java21
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandworld.java9
-rw-r--r--Essentials/src/config.yml4
4 files changed, 29 insertions, 7 deletions
diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java
index d7764ed16..41e99c29c 100644
--- a/Essentials/src/com/earth2me/essentials/ISettings.java
+++ b/Essentials/src/com/earth2me/essentials/ISettings.java
@@ -140,4 +140,6 @@ public interface ISettings extends IConf
boolean getUpdateBedAtDaytime();
boolean getRepairEnchanted();
+
+ boolean getIsWorldTeleportPermissions();
}
diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java
index b65d53616..1683fd7ef 100644
--- a/Essentials/src/com/earth2me/essentials/Settings.java
+++ b/Essentials/src/com/earth2me/essentials/Settings.java
@@ -29,7 +29,7 @@ public class Settings implements ISettings
{
return config.getBoolean("respawn-at-home", false);
}
-
+
@Override
public boolean getUpdateBedAtDaytime()
{
@@ -332,7 +332,7 @@ public class Settings implements ISettings
public void reloadConfig()
{
config.load();
- noGodWorlds = new HashSet<String>(config.getStringList("no-god-in-worlds",Collections.<String>emptyList()));
+ noGodWorlds = new HashSet<String>(config.getStringList("no-god-in-worlds", Collections.<String>emptyList()));
}
@Override
@@ -535,13 +535,12 @@ public class Settings implements ISettings
{
return config.getBoolean("death-messages", true);
}
-
- Set <String> noGodWorlds = new HashSet<String>();
+ Set<String> noGodWorlds = new HashSet<String>();
+
@Override
public Set<String> getNoGodWorlds()
{
return noGodWorlds;
-
}
@Override
@@ -549,8 +548,16 @@ public class Settings implements ISettings
{
this.debug = debug;
}
-
- public boolean getRepairEnchanted() {
+
+ @Override
+ public boolean getRepairEnchanted()
+ {
return config.getBoolean("repair-enchanted", true);
}
+
+ @Override
+ public boolean getIsWorldTeleportPermissions()
+ {
+ return config.getBoolean("world-teleport-permissions", false);
+ }
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandworld.java b/Essentials/src/com/earth2me/essentials/commands/Commandworld.java
index 7380b23ae..b62276cf8 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandworld.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandworld.java
@@ -53,6 +53,15 @@ public class Commandworld extends EssentialsCommand
}
}
+ if (ess.getSettings().getIsWorldTeleportPermissions())
+ {
+ if (!user.isAuthorized("essentials.world." + world.getName()))
+ {
+ user.sendMessage(_("invalidWorld")); //TODO: Make a "world teleport denied" translation
+ throw new NoChargeException();
+ }
+ }
+
double factor;
if (user.getWorld().getEnvironment() == World.Environment.NETHER && world.getEnvironment() == World.Environment.NORMAL)
{
diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml
index 2f43cde1e..2bb8dbd0c 100644
--- a/Essentials/src/config.yml
+++ b/Essentials/src/config.yml
@@ -220,6 +220,10 @@ death-messages: true
no-god-in-worlds:
# - world_nether
+# Set to true to enable per-world permissions for teleporting with /world
+# Give someone permission to teleport to a world with essentials.world.<worldname>
+world-teleport-permissions: false
+
# Oversized stacks are stacks that ignore the normal max stacksize.
# They can be obtained using /give and /item, if the player has essentials.oversizedstacks permission.
# How many items should be in a oversized stack?