summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2012-02-18 21:09:18 +0000
committerKHobbits <rob@khobbits.co.uk>2012-02-18 21:09:18 +0000
commitd0c89f4e9f4df6756707031ba397c7e8185f9c42 (patch)
tree4d192590a56d551b931a29311fddeee309724e85
parentbccd39a62385561d74a5de3613e42a8a8ed4c56f (diff)
downloadEssentials-d0c89f4e9f4df6756707031ba397c7e8185f9c42.tar
Essentials-d0c89f4e9f4df6756707031ba397c7e8185f9c42.tar.gz
Essentials-d0c89f4e9f4df6756707031ba397c7e8185f9c42.tar.lz
Essentials-d0c89f4e9f4df6756707031ba397c7e8185f9c42.tar.xz
Essentials-d0c89f4e9f4df6756707031ba397c7e8185f9c42.zip
Adding full keyword support for newb join message.
Also adding {ADDRESS} and {USERNAME} as new keywords.
-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/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.txt3
-rw-r--r--EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java7
7 files changed, 105 insertions, 30 deletions
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..3307945f2 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(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/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..694093bbf 100644
--- a/Essentials/src/info.txt
+++ b/Essentials/src/info.txt
@@ -25,7 +25,9 @@ Minecraft colors:
#Tags
PLAYER: {PLAYER}
+USERNAME: {PLAYER}
IP: {IP}
+ADDRESS: {ADDRESS}
BALANCE: {BALANCE}
MAILS: {MAILS}
WORLD: {WORLD}
@@ -39,3 +41,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");