Skip to content

Commit

Permalink
Move conversation listener to separate class
Browse files Browse the repository at this point in the history
  • Loading branch information
PikaMug committed Dec 2, 2021
1 parent 43e2044 commit 71511a4
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 17 deletions.
27 changes: 10 additions & 17 deletions main/src/main/java/me/blackvein/quests/Quests.java
Expand Up @@ -29,6 +29,7 @@
import me.blackvein.quests.interfaces.ReloadCallback;
import me.blackvein.quests.listeners.BlockListener;
import me.blackvein.quests.listeners.CmdExecutor;
import me.blackvein.quests.listeners.ConvoListener;
import me.blackvein.quests.listeners.ItemListener;
import me.blackvein.quests.listeners.NpcListener;
import me.blackvein.quests.listeners.PartiesListener;
Expand Down Expand Up @@ -66,8 +67,6 @@
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.conversations.Conversable;
import org.bukkit.conversations.ConversationAbandonedEvent;
import org.bukkit.conversations.ConversationAbandonedListener;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.conversations.ConversationFactory;
import org.bukkit.conversations.Prompt;
Expand Down Expand Up @@ -116,7 +115,7 @@
import java.util.jar.JarFile;
import java.util.logging.Level;

public class Quests extends JavaPlugin implements ConversationAbandonedListener {
public class Quests extends JavaPlugin {

private boolean loading = true;
private String bukkitVersion = "0";
Expand All @@ -136,6 +135,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
private QuestFactory questFactory;
private ActionFactory actionFactory;
private ConditionFactory conditionFactory;
private ConvoListener convoListener;
private BlockListener blockListener;
private ItemListener itemListener;
private NpcListener npcListener;
Expand All @@ -161,6 +161,7 @@ public void onEnable() {
} catch (final Exception ignored) {
getLogger().info("LocaleLib not present. Is this a debug environment?");
}
convoListener = new ConvoListener();
blockListener = new BlockListener(this);
itemListener = new ItemListener(this);
npcListener = new NpcListener(this);
Expand Down Expand Up @@ -220,10 +221,10 @@ public void onEnable() {
.withPrefix(context -> ChatColor.GRAY.toString())
.withFirstPrompt(new QuestAcceptPrompt()).withTimeout(settings.getAcceptTimeout())
.thatExcludesNonPlayersWithMessage("Console may not perform this conversation!")
.addConversationAbandonedListener(this);
.addConversationAbandonedListener(convoListener);
this.npcConversationFactory = new ConversationFactory(this).withModality(false)
.withFirstPrompt(new NpcOfferQuestPrompt()).withTimeout(settings.getAcceptTimeout())
.withLocalEcho(false).addConversationAbandonedListener(this);
.withLocalEcho(false).addConversationAbandonedListener(convoListener);

// 10 - Register listeners
getServer().getPluginManager().registerEvents(getBlockListener(), this);
Expand Down Expand Up @@ -533,6 +534,10 @@ public ConditionFactory getConditionFactory() {
return conditionFactory;
}

public ConvoListener getConvoListener() {
return convoListener;
}

public BlockListener getBlockListener() {
return blockListener;
}
Expand Down Expand Up @@ -577,18 +582,6 @@ public Storage getStorage() {
return storage;
}

@Override
public void conversationAbandoned(final ConversationAbandonedEvent abandonedEvent) {
if (!abandonedEvent.gracefulExit()) {
try {
abandonedEvent.getContext().getForWhom().sendRawMessage(ChatColor.YELLOW
+ Lang.get((Player) abandonedEvent.getContext().getForWhom(), "questTimeout"));
} catch (final Exception e) {
// Do nothing
}
}
}

public class QuestAcceptPrompt extends MiscStringPrompt {

private ConversationContext cc;
Expand Down
@@ -0,0 +1,23 @@
package me.blackvein.quests.listeners;

import me.blackvein.quests.util.Lang;
import org.bukkit.ChatColor;
import org.bukkit.conversations.ConversationAbandonedEvent;
import org.bukkit.conversations.ConversationAbandonedListener;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;

public class ConvoListener implements ConversationAbandonedListener {

@Override
public void conversationAbandoned(@NotNull final ConversationAbandonedEvent abandonedEvent) {
if (!abandonedEvent.gracefulExit()) {
try {
abandonedEvent.getContext().getForWhom().sendRawMessage(ChatColor.YELLOW
+ Lang.get((Player) abandonedEvent.getContext().getForWhom(), "questTimeout"));
} catch (final Exception e) {
// Do nothing
}
}
}
}

0 comments on commit 71511a4

Please sign in to comment.