diff --git a/src/main/java/noppes/npcs/NoppesUtilServer.java b/src/main/java/noppes/npcs/NoppesUtilServer.java index 70751237b..f790873ed 100644 --- a/src/main/java/noppes/npcs/NoppesUtilServer.java +++ b/src/main/java/noppes/npcs/NoppesUtilServer.java @@ -672,17 +672,20 @@ public class NoppesUtilServer { } public static DialogOption setNpcDialog(int slot, int dialogId, EntityPlayer player) throws IOException { - EntityNPCInterface npc = getEditingNpc(player); + return setNpcDialog(slot, dialogId, getEditingNpc(player)); + } + + public static DialogOption setNpcDialog(int slot, int dialogId, EntityNPCInterface npc) { if(npc == null) return null; if(!npc.dialogs.containsKey(slot)) npc.dialogs.put(slot, new DialogOption()); - + DialogOption option = npc.dialogs.get(slot); option.dialogId = dialogId; if(option.hasDialog()) option.title = option.getDialog().title; - + return option; } diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java b/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java index a90216a0a..50814865e 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java @@ -10,6 +10,7 @@ import noppes.npcs.api.entity.IPlayer; import noppes.npcs.api.entity.data.IModelData; import noppes.npcs.api.handler.IOverlayHandler; import noppes.npcs.api.handler.data.IAnimationData; +import noppes.npcs.api.handler.data.IDialog; import noppes.npcs.api.handler.data.IFaction; import noppes.npcs.api.item.IItemStack; import noppes.npcs.api.jobs.IJob; @@ -17,6 +18,7 @@ import noppes.npcs.api.roles.IRole; import noppes.npcs.config.ConfigMain; import noppes.npcs.constants.*; import noppes.npcs.controllers.FactionController; +import noppes.npcs.controllers.data.DialogOption; import noppes.npcs.controllers.data.Line; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; @@ -326,7 +328,29 @@ public class ScriptNpc extends ScriptLiving imp return; npc.say((EntityPlayer) player.getMCEntity(), new Line(message)); } - + + public IDialog getDialog(int slot) { + return NpcAPI.Instance().getDialogs().get(this.getDialogId(slot)); + } + + public int getDialogId(int slot) { + if (npc.dialogs.containsKey(slot)) { + DialogOption option = npc.dialogs.get(slot); + if (option.hasDialog()) { + return option.dialogId; + } + } + return -1; + } + + public void setDialog(int slot, IDialog dialog) { + this.setDialog(slot, dialog.getId()); + } + + public void setDialog(int slot, int dialogId) { + NoppesUtilServer.setNpcDialog(slot,dialogId, this.npc); + } + /** * Kill the npc, doesnt't despawn it */