Skip to content
This repository was archived by the owner on Apr 3, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions src/com/ModDamage/Alias/Aliaser.java
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ public ScriptLineHandler handleLine(final ScriptLine nameLine, boolean hasChildr
@Override
public ScriptLineHandler handleLine(ScriptLine line, boolean hasChildren)
{
Collection<InfoType> subvalues = matchAlias(line.line);
Collection<InfoType> subvalues = matchAlias(line);
if (subvalues != null)
values.addAll(subvalues);
else {
Expand Down Expand Up @@ -278,7 +278,11 @@ public void done()
// }

//@Override
public Collection<InfoType> matchAlias(String key)
public Collection<InfoType> matchAlias(ScriptLine scriptLine) {
return matchAlias(scriptLine, scriptLine.line);
}

public Collection<InfoType> matchAlias(ScriptLine scriptLine, String key)
{
if(hasAlias(key))
return getAlias(key);
Expand All @@ -296,7 +300,7 @@ public Collection<InfoType> matchAlias(String key)
}
}
if(!failFlag && !values.isEmpty()) return values;
LogUtil.error("No matching " + name + " alias or value \"" + key + "\"");
LogUtil.error(scriptLine, "No matching " + name + " alias or value \"" + key + "\"");
return getDefaultValue();
}

Expand Down
4 changes: 3 additions & 1 deletion src/com/ModDamage/Alias/ArmorAliaser.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@

import com.ModDamage.Alias.Aliaser.CollectionAliaser;
import com.ModDamage.Backend.ArmorSet;
import com.ModDamage.Backend.ScriptLine;

public class ArmorAliaser extends CollectionAliaser<ArmorSet>
{
public static ArmorAliaser aliaser = new ArmorAliaser();
public static Collection<ArmorSet> match(String string) { return aliaser.matchAlias(string); }
public static Collection<ArmorSet> match(ScriptLine scriptLine, String string) { return aliaser.matchAlias(scriptLine, string); }
public static Collection<ArmorSet> match(ScriptLine scriptLine) { return aliaser.matchAlias(scriptLine); }

public ArmorAliaser(){ super(AliasManager.Armor.name()); }
@Override
Expand Down
4 changes: 3 additions & 1 deletion src/com/ModDamage/Alias/BiomeAliaser.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@
import org.bukkit.block.Biome;

import com.ModDamage.Alias.Aliaser.CollectionAliaser;
import com.ModDamage.Backend.ScriptLine;

public class BiomeAliaser extends CollectionAliaser<Biome>
{
public static BiomeAliaser aliaser = new BiomeAliaser();
public static Collection<Biome> match(String string) { return aliaser.matchAlias(string); }
public static Collection<Biome> match(ScriptLine scriptLine) { return aliaser.matchAlias(scriptLine); }
public static Collection<Biome> match(ScriptLine scriptLine, String key) { return aliaser.matchAlias(scriptLine, key); }

public BiomeAliaser(){ super(AliasManager.Biome.name()); }
@Override
Expand Down
9 changes: 5 additions & 4 deletions src/com/ModDamage/Alias/CommandAliaser.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import java.util.Map;

import com.ModDamage.Alias.Aliaser.CollectionAliaser;
import com.ModDamage.Backend.ScriptLine;
import com.ModDamage.EventInfo.EventInfo;
import com.ModDamage.Parsing.DataProvider;
import com.ModDamage.Parsing.IDataProvider;
Expand All @@ -16,16 +17,16 @@ public class CommandAliaser extends CollectionAliaser<String>
public static CommandAliaser aliaser = new CommandAliaser();
private final Map<InfoOtherPair<String>, Collection<IDataProvider<String>>> aliasedCommands = new HashMap<InfoOtherPair<String>, Collection<IDataProvider<String>>>();

public static Collection<IDataProvider<String>> match(String string, EventInfo info) {
public static Collection<IDataProvider<String>> match(ScriptLine scriptLine, String string, EventInfo info) {
InfoOtherPair<String> infoPair = new InfoOtherPair<String>(string, info);
if (aliaser.aliasedCommands.containsKey(infoPair)) return aliaser.aliasedCommands.get(infoPair);

Collection<String> strings = aliaser.matchAlias(string);
Collection<String> strings = aliaser.matchAlias(scriptLine, string);
if (strings == null) return null;
Collection<IDataProvider<String>> istrings = new ArrayList<IDataProvider<String>>();

for (String str : strings)
istrings.add(DataProvider.parse(info, String.class, str));
istrings.add(DataProvider.parse(scriptLine, info, String.class, str));

aliaser.aliasedCommands.put(infoPair, istrings);

Expand All @@ -35,7 +36,7 @@ public static Collection<IDataProvider<String>> match(String string, EventInfo i
public CommandAliaser() { super(AliasManager.Command.name()); }

@Override
public Collection<String> matchAlias(String cmd) {
public Collection<String> matchAlias(ScriptLine scriptLine, String cmd) {
if(hasAlias(cmd))
return getAlias(cmd);
return Arrays.asList(cmd);
Expand Down
4 changes: 3 additions & 1 deletion src/com/ModDamage/Alias/EnchantmentAliaser.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@
import org.bukkit.enchantments.Enchantment;

import com.ModDamage.Alias.Aliaser.CollectionAliaser;
import com.ModDamage.Backend.ScriptLine;

public class EnchantmentAliaser extends CollectionAliaser<Enchantment>
{
public static EnchantmentAliaser aliaser = new EnchantmentAliaser();
public static Collection<Enchantment> match(String string) { return aliaser.matchAlias(string); }
public static Collection<Enchantment> match(ScriptLine scriptLine) { return aliaser.matchAlias(scriptLine); }
public static Collection<Enchantment> match(ScriptLine scriptLine, String string) { return aliaser.matchAlias(scriptLine, string); }

public EnchantmentAliaser(){ super(AliasManager.Enchantment.name()); }

Expand Down
4 changes: 3 additions & 1 deletion src/com/ModDamage/Alias/GroupAliaser.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@
import java.util.Collection;

import com.ModDamage.Alias.Aliaser.CollectionAliaser;
import com.ModDamage.Backend.ScriptLine;

public class GroupAliaser extends CollectionAliaser<String>
{
public static GroupAliaser aliaser = new GroupAliaser();
public static Collection<String> match(String string) { return aliaser.matchAlias(string); }
public static Collection<String> match(ScriptLine scriptLine) { return aliaser.matchAlias(scriptLine); }
public static Collection<String> match(ScriptLine scriptLine, String string) { return aliaser.matchAlias(scriptLine, string); }

public GroupAliaser() { super(AliasManager.Group.name()); }

Expand Down
11 changes: 6 additions & 5 deletions src/com/ModDamage/Alias/ItemAliaser.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@
import com.ModDamage.StringMatcher;
import com.ModDamage.Alias.Aliaser.CollectionAliaser;
import com.ModDamage.Backend.ModDamageItemStack;
import com.ModDamage.Backend.ScriptLine;
import com.ModDamage.EventInfo.EventInfo;

public class ItemAliaser extends CollectionAliaser<String>
{
public static ItemAliaser aliaser = new ItemAliaser();
public static List<ModDamageItemStack> match(String string, EventInfo info) { return aliaser.matchAlias(string, info); }
public static List<ModDamageItemStack> match(ScriptLine line, String string, EventInfo info) { return aliaser.matchAlias(line, string, info); }

public ItemAliaser() { super(AliasManager.Item.name()); }

Expand All @@ -28,15 +29,15 @@ protected String matchNonAlias(String valueString)
static final Pattern commaPattern = Pattern.compile("\\s*,\\s*");


public List<ModDamageItemStack> matchAlias(String key, EventInfo info)
public List<ModDamageItemStack> matchAlias(ScriptLine line, String key, EventInfo info)
{
Collection<String> values = getAlias(key);
if (values == null)
{
if (key.startsWith("_")) {
if (hasAlias(key))
return Arrays.<ModDamageItemStack>asList(); // hmm, not ready yet?
LogUtil.error("Unknown alias: \"" + key + "\"");
LogUtil.error(line, "Unknown alias: \"" + key + "\"");
return null;
}
values = new ArrayList<String>();
Expand All @@ -49,7 +50,7 @@ public List<ModDamageItemStack> matchAlias(String key, EventInfo info)
{
StringMatcher sm = new StringMatcher(itemStr);
while(true) {
ModDamageItemStack item = ModDamageItemStack.getNewFromFront(info, sm.spawn());
ModDamageItemStack item = ModDamageItemStack.getNewFromFront(line, info, sm.spawn());
if (item == null) return null;
items.add(item);

Expand All @@ -58,7 +59,7 @@ public List<ModDamageItemStack> matchAlias(String key, EventInfo info)
if (sm.isEmpty())
break;

LogUtil.error("Unidentified Yucky Stuff: \""+ sm.string +"\"");
LogUtil.error(line, "Unidentified Yucky Stuff: \""+ sm.string +"\"");
return null;
}
}
Expand Down
4 changes: 3 additions & 1 deletion src/com/ModDamage/Alias/MaterialAliaser.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@
import org.bukkit.Material;

import com.ModDamage.Alias.Aliaser.CollectionAliaser;
import com.ModDamage.Backend.ScriptLine;

public class MaterialAliaser extends CollectionAliaser<Material>
{
public static MaterialAliaser aliaser = new MaterialAliaser();
public static Collection<Material> match(String string) { return aliaser.matchAlias(string); }
public static Collection<Material> match(ScriptLine scriptLine) { return aliaser.matchAlias(scriptLine); }
public static Collection<Material> match(ScriptLine scriptLine, String string) { return aliaser.matchAlias(scriptLine, string); }

public MaterialAliaser() { super(AliasManager.Material.name()); }

Expand Down
9 changes: 5 additions & 4 deletions src/com/ModDamage/Alias/MessageAliaser.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import java.util.Map;

import com.ModDamage.Alias.Aliaser.CollectionAliaser;
import com.ModDamage.Backend.ScriptLine;
import com.ModDamage.EventInfo.EventInfo;
import com.ModDamage.Expressions.InterpolatedString;
import com.ModDamage.Parsing.IDataProvider;
Expand All @@ -16,16 +17,16 @@ public class MessageAliaser extends CollectionAliaser<String>
public static MessageAliaser aliaser = new MessageAliaser();
private final Map<InfoOtherPair<String>, Collection<IDataProvider<String>>> aliasedMessages = new HashMap<InfoOtherPair<String>, Collection<IDataProvider<String>>>();

public static Collection<IDataProvider<String>> match(String string, EventInfo info) {
public static Collection<IDataProvider<String>> match(ScriptLine scriptLine, String string, EventInfo info) {
InfoOtherPair<String> infoPair = new InfoOtherPair<String>(string, info);
if (aliaser.aliasedMessages.containsKey(infoPair)) return aliaser.aliasedMessages.get(infoPair);

Collection<String> strings = aliaser.matchAlias(string);
Collection<String> strings = aliaser.matchAlias(scriptLine, string);
if (strings == null) return null;
Collection<IDataProvider<String>> istrings = new ArrayList<IDataProvider<String>>();

for (String str : strings)
istrings.add(new InterpolatedString(str, info, true));
istrings.add(new InterpolatedString(scriptLine, str, info, true));

aliaser.aliasedMessages.put(infoPair, istrings);

Expand All @@ -35,7 +36,7 @@ public static Collection<IDataProvider<String>> match(String string, EventInfo i
public MessageAliaser() { super(AliasManager.Message.name()); }

@Override
public Collection<String> matchAlias(String msg) {
public Collection<String> matchAlias(ScriptLine line, String msg) {
if(hasAlias(msg))
return getAlias(msg);
return Arrays.asList(msg);
Expand Down
4 changes: 3 additions & 1 deletion src/com/ModDamage/Alias/RegionAliaser.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@
import com.ModDamage.LogUtil;
import com.ModDamage.Alias.Aliaser.CollectionAliaser;
import com.ModDamage.Backend.ExternalPluginManager;
import com.ModDamage.Backend.ScriptLine;

public class RegionAliaser extends CollectionAliaser<String>
{
public static RegionAliaser aliaser = new RegionAliaser();
public static Collection<String> match(String string) { return aliaser.matchAlias(string); }
public static Collection<String> match(ScriptLine scriptLine) { return aliaser.matchAlias(scriptLine); }
public static Collection<String> match(ScriptLine scriptLine, String string) { return aliaser.matchAlias(scriptLine, string); }

public RegionAliaser() { super(AliasManager.Region.name()); }

Expand Down
4 changes: 3 additions & 1 deletion src/com/ModDamage/Alias/TypeAliaser.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
import java.util.Collection;

import com.ModDamage.Alias.Aliaser.CollectionAliaser;
import com.ModDamage.Backend.ScriptLine;
import com.ModDamage.Matchables.EntityType;

public class TypeAliaser extends CollectionAliaser<EntityType>
{
public static TypeAliaser aliaser = new TypeAliaser();
public static Collection<EntityType> match(String string) { return aliaser.matchAlias(string); }
public static Collection<EntityType> match(ScriptLine scriptLine) { return aliaser.matchAlias(scriptLine); }
public static Collection<EntityType> match(ScriptLine scriptLine, String string) { return aliaser.matchAlias(scriptLine, string); }

public TypeAliaser() {super(AliasManager.Type.name()); }

Expand Down
4 changes: 3 additions & 1 deletion src/com/ModDamage/Alias/WorldAliaser.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@

import com.ModDamage.LogUtil;
import com.ModDamage.Alias.Aliaser.CollectionAliaser;
import com.ModDamage.Backend.ScriptLine;

public class WorldAliaser extends CollectionAliaser<String>
{
public static WorldAliaser aliaser = new WorldAliaser();
public static Collection<String> match(String string) { return aliaser.matchAlias(string); }
public static Collection<String> match(ScriptLine scriptLine) { return aliaser.matchAlias(scriptLine); }
public static Collection<String> match(ScriptLine scriptLine, String string) { return aliaser.matchAlias(scriptLine, string); }

public WorldAliaser() {super(AliasManager.World.name()); }

Expand Down
12 changes: 6 additions & 6 deletions src/com/ModDamage/Backend/ModDamageItemStack.java
Original file line number Diff line number Diff line change
Expand Up @@ -116,26 +116,26 @@ public ItemStack toItemStack()

public static final Pattern materialPattern = Pattern.compile("(\\w+)(?=[@*]|$)"); // word followed by @ * or nothing

public static ModDamageItemStack getNewFromFront(EventInfo info, StringMatcher sm)
public static ModDamageItemStack getNewFromFront(ScriptLine line, EventInfo info, StringMatcher sm)
{
Matcher m = sm.matchFront(materialPattern);
if (m == null) return null;

Collection<Material> materials = MaterialAliaser.match(m.group());
Collection<Material> materials = MaterialAliaser.match(line, m.group());
Material first = null;

if (materials != null && materials.size() > 0)
first = materials.iterator().next();

if (first == null)
{
LogUtil.error("Error: unable to match material \"" + m.group() + "\"");
LogUtil.error(line, "Error: unable to match material \"" + m.group() + "\"");
return null;
}

if (materials == null || materials.size() > 1)
{
LogUtil.error("Error: matched "+(materials == null? 0:materials.size())+" materials, wanted only one: \"" + m.group() + "\"");
LogUtil.error(line, "Error: matched "+(materials == null? 0:materials.size())+" materials, wanted only one: \"" + m.group() + "\"");
return null;
}

Expand All @@ -144,7 +144,7 @@ public static ModDamageItemStack getNewFromFront(EventInfo info, StringMatcher s
IDataProvider<Integer> data;
if (sm.matchesFront("@"))
{
data = DataProvider.parse(info, Integer.class, sm.spawn());
data = DataProvider.parse(line, info, Integer.class, sm.spawn());
if (data == null) return null;
}
else
Expand All @@ -154,7 +154,7 @@ public static ModDamageItemStack getNewFromFront(EventInfo info, StringMatcher s
IDataProvider<? extends Number> amount;
if (sm.matchesFront("*"))
{
amount = DataProvider.parse(info, Integer.class, sm.spawn());
amount = DataProvider.parse(line, info, Integer.class, sm.spawn());
if (amount == null) return null;
}
else
Expand Down
5 changes: 3 additions & 2 deletions src/com/ModDamage/Conditionals/Chance.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import com.ModDamage.StringMatcher;
import com.ModDamage.Backend.BailException;
import com.ModDamage.Backend.ScriptLine;
import com.ModDamage.EventInfo.EventData;
import com.ModDamage.EventInfo.EventInfo;
import com.ModDamage.Parsing.BaseDataParser;
Expand Down Expand Up @@ -41,9 +42,9 @@ public static void register()
DataProvider.register(Boolean.class, pattern, new BaseDataParser<Boolean>()
{
@Override
public IDataProvider<Boolean> parse(EventInfo info, Matcher m, StringMatcher sm)
public IDataProvider<Boolean> parse(ScriptLine line, EventInfo info, Matcher m, StringMatcher sm)
{
IDataProvider<Integer> probability = DataProvider.parse(info, Integer.class, sm.spawn());
IDataProvider<Integer> probability = DataProvider.parse(line, info, Integer.class, sm.spawn());
if (probability == null) return null;

sm.accept();
Expand Down
5 changes: 3 additions & 2 deletions src/com/ModDamage/Conditionals/Comparison.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.ModDamage.StringMatcher;
import com.ModDamage.Utils;
import com.ModDamage.Backend.BailException;
import com.ModDamage.Backend.ScriptLine;
import com.ModDamage.EventInfo.EventData;
import com.ModDamage.EventInfo.EventInfo;
import com.ModDamage.Parsing.DataProvider;
Expand Down Expand Up @@ -119,11 +120,11 @@ public static void register()
DataProvider.register(Boolean.class, Number.class, operatorPattern, new IDataParser<Boolean, Number>()
{
@Override
public IDataProvider<Boolean> parse(EventInfo info, IDataProvider<Number> leftDP, Matcher m, StringMatcher sm)
public IDataProvider<Boolean> parse(ScriptLine line, EventInfo info, IDataProvider<Number> leftDP, Matcher m, StringMatcher sm)
{
ComparisonType comparisonType = ComparisonType.nameMap.get(m.group(1));

IDataProvider<Number> right = DataProvider.parse(info, Number.class, sm.spawn());
IDataProvider<Number> right = DataProvider.parse(line, info, Number.class, sm.spawn());

if(comparisonType == null)
return null;
Expand Down
5 changes: 3 additions & 2 deletions src/com/ModDamage/Conditionals/CompoundConditional.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.ModDamage.StringMatcher;
import com.ModDamage.Utils;
import com.ModDamage.Backend.BailException;
import com.ModDamage.Backend.ScriptLine;
import com.ModDamage.EventInfo.EventData;
import com.ModDamage.EventInfo.EventInfo;

Expand Down Expand Up @@ -123,11 +124,11 @@ public static void register()
DataProvider.register(Boolean.class, Boolean.class, LogicalOperator.pattern, new IDataParser<Boolean, Boolean>()
{
@Override
public IDataProvider<Boolean> parse(EventInfo info, IDataProvider<Boolean> leftDP, Matcher m, StringMatcher sm)
public IDataProvider<Boolean> parse(ScriptLine line, EventInfo info, IDataProvider<Boolean> leftDP, Matcher m, StringMatcher sm)
{
LogicalOperator operator = LogicalOperator.match(m.group(1));

IDataProvider<Boolean> rightDP = DataProvider.parse(info, Boolean.class, sm.spawn());
IDataProvider<Boolean> rightDP = DataProvider.parse(line, info, Boolean.class, sm.spawn());
if (rightDP == null) return null;

sm.accept();
Expand Down
Loading