Skip to content
This repository has been archived by the owner on Apr 12, 2022. It is now read-only.

Commit

Permalink
add clearer player tag base errors
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Feb 19, 2017
1 parent c2accfc commit 16d377d
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
Expand Up @@ -4,6 +4,7 @@
import com.denizenscript.denizen2core.tags.AbstractTagObject;
import com.denizenscript.denizen2core.tags.TagData;
import com.denizenscript.denizen2core.tags.objects.MapTag;
import com.denizenscript.denizen2core.tags.objects.NullTag;
import com.denizenscript.denizen2sponge.tags.objects.PlayerTag;

public class PlayerTagBase extends AbstractTagBase {
Expand All @@ -27,23 +28,31 @@ public String getName() {
@Override
public AbstractTagObject handle(TagData data) {
if (!data.hasNextModifier() && data.currentQueue != null) {
if (data.currentQueue.commandStack.peek().hasDefinition("player")){
if (data.currentQueue.commandStack.peek().hasDefinition("player")) {
AbstractTagObject ato = data.currentQueue.commandStack.peek().getDefinition("player");
if (ato instanceof PlayerTag) {
return ato.handle(data.shrink());
}
data.error.run("Tried to read connected player, but failed (improperly typed player).");
return new NullTag();
}
else if (data.currentQueue.commandStack.peek().hasDefinition("context")){
else if (data.currentQueue.commandStack.peek().hasDefinition("context")) {
AbstractTagObject ato = data.currentQueue.commandStack.peek().getDefinition("context");
if (ato instanceof MapTag) {
if (((MapTag) ato).getInternal().containsKey("player")) {
AbstractTagObject plt = ((MapTag) ato).getInternal().get("player");
if (plt instanceof PlayerTag) {
return plt.handle(data.shrink());
}
data.error.run("Tried to read connected player, but failed (improperly typed context -> player).");
return new NullTag();
}
}
data.error.run("Tried to read connected player, but failed (context isn't a map?!).");
return new NullTag();
}
data.error.run("Tried to read connected player, but failed (no connected player).");
return new NullTag();
}
return PlayerTag.getFor(data.error, data.getNextModifier()).handle(data.shrink());
}
Expand Down
Expand Up @@ -68,7 +68,7 @@ public static PlayerTag getFor(Action<String> error, String text) {
}
return new PlayerTag(oplayer.get());
}
catch (IllegalArgumentException e) {
catch (IllegalArgumentException e) { // TODO: better impl of this backup logic
Optional<Player> oplayer = Sponge.getServer().getPlayer(text);
if (!oplayer.isPresent()) {
error.run("Invalid PlayerTag named input!");
Expand Down

0 comments on commit 16d377d

Please sign in to comment.