summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2012-02-19 01:20:50 +0000
committerKHobbits <rob@khobbits.co.uk>2012-02-19 01:20:50 +0000
commit8042cefd3daca229066578fe83a9b75eac09bb31 (patch)
treeac7c668bb74df071f97c0440b499f8afd6986826
parent16a0f44b4d8e3f582547a4357b1e6e17b60b7316 (diff)
parent514f07ce57c516eb6e4bc0691b7ce6abbc1d20b4 (diff)
downloadEssentials-8042cefd3daca229066578fe83a9b75eac09bb31.tar
Essentials-8042cefd3daca229066578fe83a9b75eac09bb31.tar.gz
Essentials-8042cefd3daca229066578fe83a9b75eac09bb31.tar.lz
Essentials-8042cefd3daca229066578fe83a9b75eac09bb31.tar.xz
Essentials-8042cefd3daca229066578fe83a9b75eac09bb31.zip
Merge branch 'master' into release
-rw-r--r--Essentials/nbproject/project.properties4
-rw-r--r--Essentials/src/com/earth2me/essentials/ISettings.java19
-rw-r--r--Essentials/src/com/earth2me/essentials/Settings.java32
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandback.java1
-rw-r--r--Essentials/src/com/earth2me/essentials/perm/BPermissions2Handler.java62
-rw-r--r--Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java33
-rw-r--r--Essentials/src/com/earth2me/essentials/perm/SuperpermsHandler.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/textreader/KeywordReplacer.java8
-rw-r--r--Essentials/src/com/earth2me/essentials/textreader/SimpleTextInput.java35
-rw-r--r--Essentials/src/com/earth2me/essentials/textreader/SimpleTextPager.java31
-rw-r--r--Essentials/src/info.txt7
-rw-r--r--EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java7
-rw-r--r--lib/bpermissions2.jarbin0 -> 129139 bytes
13 files changed, 198 insertions, 43 deletions
diff --git a/Essentials/nbproject/project.properties b/Essentials/nbproject/project.properties
index 71fea5cf9..7a5ffe7bb 100644
--- a/Essentials/nbproject/project.properties
+++ b/Essentials/nbproject/project.properties
@@ -66,6 +66,7 @@ endorsed.classpath=
excludes=
file.reference.BOSEconomy7.jar=../lib/BOSEconomy7.jar
file.reference.bPermissions.jar=../lib/bPermissions.jar
+file.reference.bpermissions2.jar=../lib/bpermissions2.jar
file.reference.bukkit.jar=../lib/bukkit.jar
file.reference.craftbukkit.jar=../lib/craftbukkit.jar
file.reference.iCo4.jar=../lib/iCo4.jar
@@ -97,7 +98,8 @@ javac.classpath=\
${file.reference.bukkit.jar}:\
${file.reference.craftbukkit.jar}:\
${file.reference.Vault.jar}:\
- ${file.reference.Privileges.jar}
+ ${file.reference.Privileges.jar}:\
+ ${file.reference.bpermissions2.jar}
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java
index 560eb6f79..c29cc5b1a 100644
--- a/Essentials/src/com/earth2me/essentials/ISettings.java
+++ b/Essentials/src/com/earth2me/essentials/ISettings.java
@@ -2,6 +2,7 @@ package com.earth2me.essentials;
import com.earth2me.essentials.commands.IEssentialsCommand;
import com.earth2me.essentials.signs.EssentialsSign;
+import com.earth2me.essentials.textreader.IText;
import java.text.MessageFormat;
import java.util.List;
import java.util.Map;
@@ -14,9 +15,7 @@ public interface ISettings extends IConf
{
boolean areSignsDisabled();
- String format(String format, IUser user);
-
- String getAnnounceNewPlayerFormat(IUser user);
+ IText getAnnounceNewPlayerFormat();
boolean getAnnounceNewPlayers();
@@ -35,7 +34,7 @@ public interface ISettings extends IConf
String getCurrencySymbol();
int getOversizedStackSize();
-
+
int getDefaultStackSize();
double getHealCooldown();
@@ -101,7 +100,7 @@ public interface ISettings extends IConf
boolean isTradeInStacks(int id);
List<Integer> itemSpawnBlacklist();
-
+
List<EssentialsSign> enabledSigns();
boolean permissionBasedItemSpawn();
@@ -143,18 +142,18 @@ public interface ISettings extends IConf
public void setDebug(boolean debug);
Set<String> getNoGodWorlds();
-
+
boolean getUpdateBedAtDaytime();
-
+
boolean getRepairEnchanted();
-
+
boolean getIsWorldTeleportPermissions();
-
+
boolean registerBackInListener();
boolean getDisableItemPickupWhileAfk();
EventPriority getRespawnPriority();
-
+
long getTpaAcceptCancellation();
}
diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java
index 6b81753b6..592b80694 100644
--- a/Essentials/src/com/earth2me/essentials/Settings.java
+++ b/Essentials/src/com/earth2me/essentials/Settings.java
@@ -4,6 +4,10 @@ import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.commands.IEssentialsCommand;
import com.earth2me.essentials.signs.EssentialsSign;
import com.earth2me.essentials.signs.Signs;
+import com.earth2me.essentials.textreader.IText;
+import com.earth2me.essentials.textreader.KeywordReplacer;
+import com.earth2me.essentials.textreader.SimpleTextInput;
+import com.earth2me.essentials.textreader.SimpleTextPager;
import java.io.File;
import java.text.MessageFormat;
import java.util.*;
@@ -324,15 +328,9 @@ public class Settings implements ISettings
}
@Override
- public String getAnnounceNewPlayerFormat(IUser user)
+ public IText getAnnounceNewPlayerFormat()
{
- return format(config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!"), user);
- }
-
- @Override
- public String format(String format, IUser user)
- {
- return format.replace('&', '§').replace("§§", "&").replace("{PLAYER}", user.getDisplayName()).replace("{DISPLAYNAME}", user.getDisplayName()).replace("{GROUP}", user.getGroup()).replace("{USERNAME}", user.getName()).replace("{ADDRESS}", user.getAddress().toString());
+ return new SimpleTextInput(Util.replaceColor(config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!")));
}
@Override
@@ -362,19 +360,19 @@ public class Settings implements ISettings
itemSpawnBl = getItemSpawnBlacklist();
chatFormats.clear();
}
-
private List<Integer> itemSpawnBl = new ArrayList<Integer>();
-
+
@Override
public List<Integer> itemSpawnBlacklist()
{
return itemSpawnBl;
}
-
+
private List<Integer> getItemSpawnBlacklist()
{
final List<Integer> epItemSpwn = new ArrayList<Integer>();
- if (ess.getItemDb() == null) {
+ if (ess.getItemDb() == null)
+ {
logger.log(Level.FINE, "Aborting ItemSpawnBL read, itemDB not yet loaded.");
return epItemSpwn;
}
@@ -384,7 +382,7 @@ public class Settings implements ISettings
if (itemName.isEmpty())
{
continue;
- }
+ }
try
{
final ItemStack iStack = ess.getItemDb().get(itemName);
@@ -397,19 +395,18 @@ public class Settings implements ISettings
}
return epItemSpwn;
}
-
private List<EssentialsSign> enabledSigns = new ArrayList<EssentialsSign>();
-
+
@Override
public List<EssentialsSign> enabledSigns()
{
return enabledSigns;
}
-
+
private List<EssentialsSign> getEnabledSigns()
{
List<EssentialsSign> newSigns = new ArrayList<EssentialsSign>();
-
+
for (String signName : config.getStringList("enabledSigns", null))
{
signName = signName.trim().toUpperCase(Locale.ENGLISH);
@@ -604,7 +601,6 @@ public class Settings implements ISettings
{
return config.getBoolean("death-messages", true);
}
-
private Set<String> noGodWorlds = new HashSet<String>();
@Override
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandback.java b/Essentials/src/com/earth2me/essentials/commands/Commandback.java
index 67698598a..2ad39ceea 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandback.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandback.java
@@ -20,5 +20,6 @@ public class Commandback extends EssentialsCommand
charge.isAffordableFor(user);
user.sendMessage(_("backUsageMsg"));
user.getTeleport().back(charge);
+ throw new NoChargeException();
}
}
diff --git a/Essentials/src/com/earth2me/essentials/perm/BPermissions2Handler.java b/Essentials/src/com/earth2me/essentials/perm/BPermissions2Handler.java
new file mode 100644
index 000000000..f4122bf53
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/perm/BPermissions2Handler.java
@@ -0,0 +1,62 @@
+package com.earth2me.essentials.perm;
+
+import de.bananaco.bpermissions.api.ApiLayer;
+import de.bananaco.bpermissions.api.World;
+import de.bananaco.bpermissions.api.WorldManager;
+import de.bananaco.bpermissions.api.util.Calculable;
+import de.bananaco.bpermissions.api.util.CalculableType;
+import java.util.Arrays;
+import java.util.List;
+import org.bukkit.entity.Player;
+
+
+public class BPermissions2Handler extends SuperpermsHandler
+{
+ public BPermissions2Handler()
+ {
+
+ }
+
+ @Override
+ public String getGroup(final Player base)
+ {
+ final List<String> groups = getGroups(base);
+ if (groups == null || groups.isEmpty())
+ {
+ return null;
+ }
+ return groups.get(0);
+ }
+
+ @Override
+ public List<String> getGroups(final Player base)
+ {
+ final String[] groups = ApiLayer.getGroups(base.getWorld().getName(), CalculableType.USER, base.getName());
+ return Arrays.asList(groups);
+ }
+
+ @Override
+ public boolean inGroup(final Player base, final String group)
+ {
+ return ApiLayer.hasGroup(base.getWorld().getName(), CalculableType.USER, base.getName(), group);
+ }
+
+ @Override
+ public boolean canBuild(final Player base, final String group)
+ {
+ return hasPermission(base, "essentials.build") || hasPermission(base, "bPermissions.build");
+ }
+
+ @Override
+ public String getPrefix(final Player base)
+ {
+ return ApiLayer.getValue(base.getWorld().getName(), CalculableType.USER, base.getName(), "prefix");
+ }
+
+ @Override
+ public String getSuffix(final Player base)
+ {
+ return ApiLayer.getValue(base.getWorld().getName(), CalculableType.USER, base.getName(), "suffix");
+ }
+
+}
diff --git a/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java b/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java
index aa786934e..a344968c2 100644
--- a/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java
+++ b/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java
@@ -1,5 +1,6 @@
package com.earth2me.essentials.perm;
+import com.earth2me.essentials.Util;
import java.util.Collections;
import java.util.List;
import java.util.logging.Level;
@@ -111,17 +112,6 @@ public class PermissionsHandler implements IPermissionsHandler
return;
}
- final Plugin bPermPlugin = pluginManager.getPlugin("bPermissions");
- if (bPermPlugin != null && bPermPlugin.isEnabled())
- {
- if (!(handler instanceof BPermissionsHandler))
- {
- LOGGER.log(Level.INFO, "Essentials: Using bPermissions based permissions.");
- handler = new BPermissionsHandler();
- }
- return;
- }
-
final Plugin GMplugin = pluginManager.getPlugin("GroupManager");
if (GMplugin != null && GMplugin.isEnabled())
{
@@ -155,6 +145,27 @@ public class PermissionsHandler implements IPermissionsHandler
return;
}
+ final Plugin bPermPlugin = pluginManager.getPlugin("bPermissions");
+ if (bPermPlugin != null && bPermPlugin.isEnabled())
+ {
+ final String bVer = bPermPlugin.getDescription().getVersion().replace(".", "");
+ if (Util.isInt(bVer) && Integer.parseInt(bVer) < 284)
+ {
+ if (!(handler instanceof BPermissionsHandler))
+ {
+ LOGGER.log(Level.INFO, "Essentials: Using bPermissions based permissions.");
+ handler = new BPermissionsHandler();
+ }
+ return;
+ }
+ if (!(handler instanceof BPermissions2Handler))
+ {
+ LOGGER.log(Level.INFO, "Essentials: Using bPermissions2 based permissions.");
+ handler = new BPermissions2Handler();
+ }
+ return;
+
+ }
final Plugin permPlugin = pluginManager.getPlugin("Permissions");
if (permPlugin != null && permPlugin.isEnabled())
{
diff --git a/Essentials/src/com/earth2me/essentials/perm/SuperpermsHandler.java b/Essentials/src/com/earth2me/essentials/perm/SuperpermsHandler.java
index 70a118bcf..2e767cb72 100644
--- a/Essentials/src/com/earth2me/essentials/perm/SuperpermsHandler.java
+++ b/Essentials/src/com/earth2me/essentials/perm/SuperpermsHandler.java
@@ -27,7 +27,7 @@ public class SuperpermsHandler implements IPermissionsHandler
@Override
public boolean inGroup(final Player base, final String group)
{
- return false;
+ return hasPermission(base, "group." + group);
}
@Override
diff --git a/Essentials/src/com/earth2me/essentials/textreader/KeywordReplacer.java b/Essentials/src/com/earth2me/essentials/textreader/KeywordReplacer.java
index a7aab67ba..4c4e3364b 100644
--- a/Essentials/src/com/earth2me/essentials/textreader/KeywordReplacer.java
+++ b/Essentials/src/com/earth2me/essentials/textreader/KeywordReplacer.java
@@ -33,12 +33,14 @@ public class KeywordReplacer implements IText
String displayName, ipAddress, balance, mails, world;
String worlds, online, unique, playerlist, date, time;
String worldTime12, worldTime24, worldDate, plugins;
- String version;
+ String userName, address, version;
if (sender instanceof Player)
{
final User user = ess.getUser(sender);
displayName = user.getDisplayName();
+ userName = user.getName();
ipAddress = user.getAddress().getAddress().toString();
+ address = user.getAddress().toString();
balance = Double.toString(user.getMoney());
mails = Integer.toString(user.getMails().size());
world = user.getLocation().getWorld().getName();
@@ -107,8 +109,12 @@ public class KeywordReplacer implements IText
for (int i = 0; i < input.getLines().size(); i++)
{
String line = input.getLines().get(i);
+
line = line.replace("{PLAYER}", displayName);
+ line = line.replace("{DISPLAYNAME}", displayName);
+ line = line.replace("{USERNAME}", displayName);
line = line.replace("{IP}", ipAddress);
+ line = line.replace("{ADDRESS}", ipAddress);
line = line.replace("{BALANCE}", balance);
line = line.replace("{MAILS}", mails);
line = line.replace("{WORLD}", world);
diff --git a/Essentials/src/com/earth2me/essentials/textreader/SimpleTextInput.java b/Essentials/src/com/earth2me/essentials/textreader/SimpleTextInput.java
new file mode 100644
index 000000000..a9f9e1480
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/textreader/SimpleTextInput.java
@@ -0,0 +1,35 @@
+package com.earth2me.essentials.textreader;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+
+public class SimpleTextInput implements IText
+{
+ private final transient List<String> lines = new ArrayList<String>();
+
+ public SimpleTextInput (final String input) {
+ lines.add(input);
+ }
+
+ @Override
+ public List<String> getLines()
+ {
+ return lines;
+ }
+
+ @Override
+ public List<String> getChapters()
+ {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public Map<String, Integer> getBookmarks()
+ {
+ return Collections.emptyMap();
+ }
+
+}
diff --git a/Essentials/src/com/earth2me/essentials/textreader/SimpleTextPager.java b/Essentials/src/com/earth2me/essentials/textreader/SimpleTextPager.java
new file mode 100644
index 000000000..ea1b787d5
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/textreader/SimpleTextPager.java
@@ -0,0 +1,31 @@
+package com.earth2me.essentials.textreader;
+
+import org.bukkit.command.CommandSender;
+
+
+public class SimpleTextPager
+{
+ private final transient IText text;
+
+ public SimpleTextPager(final IText text)
+ {
+ this.text = text;
+ }
+
+ public void showPage(final CommandSender sender)
+ {
+ for (String line : text.getLines())
+ {
+ sender.sendMessage(line);
+ }
+ }
+
+ public String getString(int line)
+ {
+ if (text.getLines().size() < line)
+ {
+ return null;
+ }
+ return text.getLines().get(line);
+ }
+}
diff --git a/Essentials/src/info.txt b/Essentials/src/info.txt
index e05843dcb..efc629923 100644
--- a/Essentials/src/info.txt
+++ b/Essentials/src/info.txt
@@ -7,6 +7,10 @@ Name it info_username.txt or info_groupname.txt
This also works with motd and rules.
+Extra pages:
+Type /info Colours
+Type /info Tags
+
It can contain chapters like the Chapter1 below:
#Chapter1
@@ -25,7 +29,9 @@ Minecraft colors:
#Tags
PLAYER: {PLAYER}
+USERNAME: {PLAYER}
IP: {IP}
+ADDRESS: {ADDRESS}
BALANCE: {BALANCE}
MAILS: {MAILS}
WORLD: {WORLD}
@@ -39,3 +45,4 @@ WORLDTIME12: {WORLDTIME12}
WORLDTIME24: {WORLDTIME24}
WORLDDATE: {WORLDDATE}
PLUGINS: {PLUGINS}
+VERSION: {VERSION} \ No newline at end of file
diff --git a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java
index b68b4e350..083fd66a5 100644
--- a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java
+++ b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java
@@ -4,6 +4,9 @@ import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.OfflinePlayer;
import com.earth2me.essentials.User;
+import com.earth2me.essentials.textreader.IText;
+import com.earth2me.essentials.textreader.KeywordReplacer;
+import com.earth2me.essentials.textreader.SimpleTextPager;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
@@ -73,7 +76,9 @@ public class EssentialsSpawnPlayerListener implements Listener
if (ess.getSettings().getAnnounceNewPlayers())
{
- ess.broadcastMessage(user, ess.getSettings().getAnnounceNewPlayerFormat(user));
+ final IText output = new KeywordReplacer(ess.getSettings().getAnnounceNewPlayerFormat(), user, ess);
+ final SimpleTextPager pager = new SimpleTextPager(output);
+ ess.broadcastMessage(user, pager.getString(0));
}
LOGGER.log(Level.FINE, "New player join");
diff --git a/lib/bpermissions2.jar b/lib/bpermissions2.jar
new file mode 100644
index 000000000..b6d344b82
--- /dev/null
+++ b/lib/bpermissions2.jar
Binary files differ