package net.aufdemrand.denizen;
import net.aufdemrand.denizen.objects.dNPC;
import net.aufdemrand.denizen.objects.dPlayer;
import net.aufdemrand.denizen.tags.BukkitTagContext;
import net.aufdemrand.denizencore.scripts.ScriptEntryData;
import net.aufdemrand.denizencore.tags.TagContext;
public class BukkitScriptEntryData extends ScriptEntryData {
private dPlayer player;
private dNPC npc;
public BukkitScriptEntryData(dPlayer player, dNPC npc) {
this.player = player;
this.npc = npc;
}
public dPlayer getPlayer() {
return player;
}
public dNPC getNPC() {
return npc;
}
public boolean hasNPC() {
return npc != null;
}
public boolean hasPlayer() {
return player != null;
}
public void setPlayer(dPlayer player) {
this.player = player;
}
public void setNPC(dNPC npc) {
this.npc = npc;
}
@Override
public void transferDataFrom(ScriptEntryData scriptEntryData) {
if (scriptEntryData == null) {
return;
}
player = ((BukkitScriptEntryData) scriptEntryData).getPlayer();
npc = ((BukkitScriptEntryData) scriptEntryData).getNPC();
scriptEntry = scriptEntryData.scriptEntry;
}
@Override
public TagContext getTagContext() {
return new BukkitTagContext(player, npc, false, scriptEntry,
scriptEntry != null ? scriptEntry.shouldDebug() : true,
scriptEntry != null ? scriptEntry.getScript() : null);
}
@Override
public String toString() {
if (npc == null && player == null) {
return "";
}
else if (npc == null) {
return "player=p@" + player.getName();
}
else if (player == null) {
return "npc=n@" + npc.getId();
}
else {
return "player=p@" + player.getName() + " npc=n@" + npc.getId();
}
}
}