diff --git a/api/src/main/java/ru/dragonestia/msb3/api/dialog/DialogButton.java b/api/src/main/java/ru/dragonestia/msb3/api/dialog/DialogButton.java index b47dc51..d995f95 100644 --- a/api/src/main/java/ru/dragonestia/msb3/api/dialog/DialogButton.java +++ b/api/src/main/java/ru/dragonestia/msb3/api/dialog/DialogButton.java @@ -31,6 +31,10 @@ public class DialogButton { private List conditions; public boolean checkConditions(Player player, Dialog dialog, DialogButton button, DialogueRenderer renderer) { + if (PlayerContext.of(player, TalksContext.class).isIgnoreDialogConditions()) { + return true; + } + for (var condition: conditions) { if (!condition.check(player, dialog, button, renderer)) return false; } diff --git a/api/src/main/java/ru/dragonestia/msb3/api/player/defaults/TalksContext.java b/api/src/main/java/ru/dragonestia/msb3/api/player/defaults/TalksContext.java index 62e62dd..4d910d2 100644 --- a/api/src/main/java/ru/dragonestia/msb3/api/player/defaults/TalksContext.java +++ b/api/src/main/java/ru/dragonestia/msb3/api/player/defaults/TalksContext.java @@ -1,6 +1,7 @@ package ru.dragonestia.msb3.api.player.defaults; import lombok.Getter; +import lombok.Setter; import ru.dragonestia.msb3.api.dialog.DialogRegistry; import ru.dragonestia.msb3.api.dialog.data.TalksPlayerData; import ru.dragonestia.msb3.api.player.MsbPlayer; @@ -13,6 +14,7 @@ import java.util.Set; @Getter public class TalksContext extends PlayerContext { + @Setter private boolean ignoreDialogConditions = false; private final Set openedDialogues = Collections.synchronizedSet(new HashSet<>()); private final Set clickedButtons = Collections.synchronizedSet(new HashSet<>());