diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java b/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java index e2ded2fcf..aa9fcb8ed 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java @@ -37,6 +37,7 @@ import noppes.npcs.scripted.ScriptSound; import noppes.npcs.scripted.constants.EntityType; import noppes.npcs.scripted.gui.ScriptGui; import noppes.npcs.scripted.interfaces.*; +import noppes.npcs.scripted.interfaces.handler.data.IDialog; import noppes.npcs.scripted.interfaces.handler.data.IQuest; import noppes.npcs.scripted.interfaces.gui.ICustomGui; import noppes.npcs.scripted.interfaces.handler.data.ISound; @@ -111,15 +112,30 @@ public class ScriptPlayer extends ScriptLivingBase player.getFoodStats().addStats(0,saturation-prevSaturation); } - - public boolean hasFinishedQuest(int id){ - PlayerQuestData data = PlayerDataController.instance.getPlayerData(player).questData; - return data.finishedQuests.containsKey(id); + + public void showDialog(IDialog dialog) { + if (dialog != null) { + showDialog(dialog.getId()); + } } - - public boolean hasActiveQuest(int id){ - PlayerQuestData data = PlayerDataController.instance.getPlayerData(player).questData; - return data.activeQuests.containsKey(id); + + public boolean hasReadDialog(IDialog dialog) { + if (dialog != null) { + return hasReadDialog(dialog.getId()); + } + return false; + } + + public void readDialog(IDialog dialog) { + if (dialog != null) { + this.readDialog(dialog.getId()); + } + } + + public void unreadDialog(IDialog dialog) { + if (dialog != null) { + this.unreadDialog(dialog.getId()); + } } public void showDialog(int id){ @@ -129,7 +145,7 @@ public class ScriptPlayer extends ScriptLivingBase NoppesUtilServer.openDialog(player, new EntityDialogNpc(this.player.worldObj), dialog, 0); } - + public boolean hasReadDialog(int id){ PlayerDialogData data = PlayerDataController.instance.getPlayerData(player).dialogData; return data.dialogsRead.contains(id); @@ -143,6 +159,52 @@ public class ScriptPlayer extends ScriptLivingBase PlayerDataController.instance.getPlayerData(player).dialogData.dialogsRead.remove(id); } + public boolean hasFinishedQuest(IQuest quest) { + if (quest == null) + return false; + return hasFinishedQuest(quest.getId()); + } + + public boolean hasActiveQuest(IQuest quest) { + if (quest == null) + return false; + return hasActiveQuest(quest.getId()); + } + + public void startQuest(IQuest quest) { + if (quest == null) + return; + startQuest(quest.getId()); + } + + public void finishQuest(IQuest quest) { + if (quest == null) + return; + finishQuest(quest.getId()); + } + + public void stopQuest(IQuest quest) { + if (quest == null) + return; + stopQuest(quest.getId()); + } + + public void removeQuest(IQuest quest) { + if (quest == null) + return; + removeQuest(quest.getId()); + } + + public boolean hasFinishedQuest(int id){ + PlayerQuestData data = PlayerDataController.instance.getPlayerData(player).questData; + return data.finishedQuests.containsKey(id); + } + + public boolean hasActiveQuest(int id){ + PlayerQuestData data = PlayerDataController.instance.getPlayerData(player).questData; + return data.activeQuests.containsKey(id); + } + /** * Add the quest from active quest list * @param id The Quest ID diff --git a/src/main/java/noppes/npcs/scripted/interfaces/entity/IPlayer.java b/src/main/java/noppes/npcs/scripted/interfaces/entity/IPlayer.java index b76a5ad71..0379a2516 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/entity/IPlayer.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/entity/IPlayer.java @@ -6,6 +6,7 @@ import net.minecraft.util.EnumChatFormatting; import noppes.npcs.scripted.entity.ScriptDBCPlayer; import noppes.npcs.scripted.interfaces.handler.IOverlayHandler; import noppes.npcs.scripted.interfaces.handler.IPlayerData; +import noppes.npcs.scripted.interfaces.handler.data.IDialog; import noppes.npcs.scripted.interfaces.handler.data.IQuest; import noppes.npcs.scripted.interfaces.*; import noppes.npcs.scripted.interfaces.gui.ICustomGui; @@ -37,36 +38,69 @@ public interface IPlayer extends IEntityLivingBase void setSaturation(float saturation); - public boolean hasReadDialog(int id); + void showDialog(IDialog dialog); - public void readDialog(int id); + boolean hasReadDialog(IDialog dialog); - public void unreadDialog(int id); + void readDialog(IDialog dialog); + + void unreadDialog(IDialog dialog); + + void showDialog(int id); + + boolean hasReadDialog(int id); + + void readDialog(int id); + + void unreadDialog(int id); + + boolean hasFinishedQuest(IQuest quest); + + boolean hasActiveQuest(IQuest quest); + + /** + * Add the quest from active quest list + * @param quest The quest + */ + void startQuest(IQuest quest); + + /** + * Add the quest from finished quest list + * @param quest The quest + */ + void finishQuest(IQuest quest); + /** + * Removes the quest from active quest list + * @param quest The quest + */ + void stopQuest(IQuest quest); + + /** + * Removes the quest from active and finished quest list + * @param quest The quest + */ + void removeQuest(IQuest quest); boolean hasFinishedQuest(int id); boolean hasActiveQuest(int id); /** - * Add the quest from active quest list - * @param id The Quest ID + * @param id The quest ID */ void startQuest(int id); /** - * Add the quest from finished quest list - * @param id The Quest ID + * @param id The quest ID */ void finishQuest(int id); /** - * Removes the quest from active quest list - * @param id The Quest ID + * @param id The quest ID */ void stopQuest(int id); /** - * Removes the quest from active and finished quest list - * @param id The Quest ID + * @param id The quest ID */ void removeQuest(int id);