Add keyword replacements in kits

Add SimpleTextInput constructor for lists
Variable refactoring for clarity.
This commit is contained in:
GunfighterJ 2013-04-29 06:31:08 -05:00
parent 28cbac6610
commit 79bdd8a212
2 changed files with 19 additions and 6 deletions

View File

@ -4,6 +4,9 @@ import static com.earth2me.essentials.I18n._;
import static com.earth2me.essentials.I18n.capitalCase;
import com.earth2me.essentials.commands.NoChargeException;
import com.earth2me.essentials.craftbukkit.InventoryWorkaround;
import com.earth2me.essentials.textreader.IText;
import com.earth2me.essentials.textreader.KeywordReplacer;
import com.earth2me.essentials.textreader.SimpleTextInput;
import java.util.*;
import java.util.logging.Level;
import org.bukkit.configuration.ConfigurationSection;
@ -102,24 +105,28 @@ public class Kit
{
try
{
IText input = new SimpleTextInput(items);
IText output = new KeywordReplacer(input, user, ess);
boolean spew = false;
final boolean allowUnsafe = ess.getSettings().allowUnsafeEnchantments();
for (String d : items)
{
if (d.startsWith(ess.getSettings().getCurrencySymbol()))
for (String kitItem : output.getLines())
{
if (kitItem.startsWith(ess.getSettings().getCurrencySymbol()))
{
Double value = Double.parseDouble(d.substring(ess.getSettings().getCurrencySymbol().length()).trim());
Double value = Double.parseDouble(kitItem.substring(ess.getSettings().getCurrencySymbol().length()).trim());
Trade t = new Trade(value, ess);
t.pay(user);
continue;
}
final String[] parts = d.split(" ");
final String[] parts = kitItem.split(" ");
final ItemStack parseStack = ess.getItemDb().get(parts[0], parts.length > 1 ? Integer.parseInt(parts[1]) : 1);
final MetaItemStack metaStack = new MetaItemStack(parseStack);
if (parts.length > 2)
{
// We pass a null sender here because kits should not do perm checks
metaStack.parseStringMeta(null, allowUnsafe, parts, 2, ess);
}

View File

@ -7,9 +7,15 @@ public class SimpleTextInput implements IText
{
private final transient List<String> lines = new ArrayList<String>();
public SimpleTextInput (final String input) {
public SimpleTextInput (final String input)
{
lines.addAll(Arrays.asList(input.split("\\n")));
}
public SimpleTextInput (final List<String> input)
{
lines.addAll(input);
}
@Override
public List<String> getLines()