Skip to content

Commit

Permalink
move the QuestRegistry and processors into sub-packages
Browse files Browse the repository at this point in the history
  • Loading branch information
TheosRee committed May 26, 2024
1 parent 37bd493 commit 34602a8
Show file tree
Hide file tree
Showing 11 changed files with 50 additions and 20 deletions.
4 changes: 2 additions & 2 deletions src/main/java/org/betonquest/betonquest/BetonQuest.java
Original file line number Diff line number Diff line change
Expand Up @@ -105,13 +105,13 @@
import org.betonquest.betonquest.notify.SuppressNotifyIO;
import org.betonquest.betonquest.notify.TitleNotifyIO;
import org.betonquest.betonquest.notify.TotemNotifyIO;
import org.betonquest.betonquest.quest.QuestRegistry;
import org.betonquest.betonquest.quest.VariableProcessor;
import org.betonquest.betonquest.quest.event.NullStaticEventFactory;
import org.betonquest.betonquest.quest.event.legacy.FromClassQuestEventFactory;
import org.betonquest.betonquest.quest.event.legacy.QuestEventFactory;
import org.betonquest.betonquest.quest.event.legacy.QuestEventFactoryAdapter;
import org.betonquest.betonquest.quest.registry.CoreQuestTypes;
import org.betonquest.betonquest.quest.registry.QuestRegistry;
import org.betonquest.betonquest.quest.registry.processor.VariableProcessor;
import org.betonquest.betonquest.utils.PlayerConverter;
import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.betonquest.betonquest.quest;
package org.betonquest.betonquest.quest.registry;

import org.betonquest.betonquest.BetonQuest;
import org.betonquest.betonquest.api.Condition;
Expand All @@ -11,6 +11,12 @@
import org.betonquest.betonquest.id.ID;
import org.betonquest.betonquest.modules.schedule.EventScheduling;
import org.betonquest.betonquest.quest.event.legacy.QuestEventFactory;
import org.betonquest.betonquest.quest.registry.processor.CancellerProcessor;
import org.betonquest.betonquest.quest.registry.processor.ConditionProcessor;
import org.betonquest.betonquest.quest.registry.processor.ConversationProcessor;
import org.betonquest.betonquest.quest.registry.processor.EventProcessor;
import org.betonquest.betonquest.quest.registry.processor.ObjectiveProcessor;
import org.betonquest.betonquest.quest.registry.processor.VariableProcessor;

import java.util.Collection;
import java.util.HashMap;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.betonquest.betonquest.quest;
package org.betonquest.betonquest.quest.registry.processor;

import org.betonquest.betonquest.api.config.quest.QuestPackage;
import org.betonquest.betonquest.api.logger.BetonQuestLogger;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.betonquest.betonquest.quest;
package org.betonquest.betonquest.quest.registry.processor;

import io.papermc.lib.PaperLib;
import org.betonquest.betonquest.Instruction;
Expand All @@ -25,7 +25,7 @@
/**
* Does the logic around Conditions.
*/
public class ConditionProcessor extends QuestProcessor<Condition, ConditionID> {
public class ConditionProcessor extends QuestProcessor<Condition, ConditionID> implements MetricSupplying {
/**
* Available Condition types.
*/
Expand All @@ -40,7 +40,8 @@ public ConditionProcessor(final BetonQuestLogger log, final Map<String, Class<?
this.conditionTypes = conditionTypes;
}

/* default */ CompositeInstructionMetricsSupplier<ConditionID> metricsSupplier() {
@Override
public CompositeInstructionMetricsSupplier<ConditionID> metricsSupplier() {
return new CompositeInstructionMetricsSupplier<>(values::keySet, conditionTypes::keySet);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.betonquest.betonquest.quest;
package org.betonquest.betonquest.quest.registry.processor;

import org.betonquest.betonquest.BetonQuest;
import org.betonquest.betonquest.api.config.quest.QuestPackage;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.betonquest.betonquest.quest;
package org.betonquest.betonquest.quest.registry.processor;

import org.betonquest.betonquest.api.QuestEvent;
import org.betonquest.betonquest.api.config.quest.QuestPackage;
Expand All @@ -18,7 +18,7 @@
/**
* Stores Events and execute them.
*/
public class EventProcessor extends QuestProcessor<QuestEvent, EventID> {
public class EventProcessor extends QuestProcessor<QuestEvent, EventID> implements MetricSupplying {
/**
* Available Event types.
*/
Expand All @@ -35,7 +35,8 @@ public EventProcessor(final BetonQuestLogger log, final Map<String, QuestEventFa
this.eventTypes = eventTypes;
}

/* default */ CompositeInstructionMetricsSupplier<EventID> metricsSupplier() {
@Override
public CompositeInstructionMetricsSupplier<EventID> metricsSupplier() {
return new CompositeInstructionMetricsSupplier<>(values::keySet, eventTypes::keySet);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.betonquest.betonquest.quest.registry.processor;

import org.betonquest.betonquest.bstats.CompositeInstructionMetricsSupplier;

/**
* A Processor supplying BStats Metrics.
*/
@FunctionalInterface
public interface MetricSupplying {
/**
* Gets the bstats metric supplier for registered and active types.
*
* @return the metric
*/
CompositeInstructionMetricsSupplier<?> metricsSupplier();
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.betonquest.betonquest.quest;
package org.betonquest.betonquest.quest.registry.processor;

import org.betonquest.betonquest.Instruction;
import org.betonquest.betonquest.api.Objective;
Expand All @@ -20,7 +20,7 @@
/**
* Stores Objectives and starts/stops/resumes them.
*/
public class ObjectiveProcessor extends QuestProcessor<Objective, ObjectiveID> {
public class ObjectiveProcessor extends QuestProcessor<Objective, ObjectiveID> implements MetricSupplying {
/**
* Available Objective types
*/
Expand All @@ -38,15 +38,16 @@ public ObjectiveProcessor(final BetonQuestLogger log, final Map<String, Class<?
}

@Override
/* default */ void clear() {
public void clear() {
// save data of all objectives to the players
for (final Objective objective : values.values()) {
objective.close();
}
super.clear();
}

/* default */ CompositeInstructionMetricsSupplier<ObjectiveID> metricsSupplier() {
@Override
public CompositeInstructionMetricsSupplier<ObjectiveID> metricsSupplier() {
return new CompositeInstructionMetricsSupplier<>(values::keySet, objectiveTypes::keySet);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.betonquest.betonquest.quest;
package org.betonquest.betonquest.quest.registry.processor;

import org.betonquest.betonquest.api.config.quest.QuestPackage;
import org.betonquest.betonquest.api.logger.BetonQuestLogger;
Expand Down Expand Up @@ -37,7 +37,7 @@ public QuestProcessor(final BetonQuestLogger log) {
/**
* Clears the values. Used before reloading all QuestPackages.
*/
/* default */ void clear() {
public void clear() {
values.clear();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.betonquest.betonquest.quest;
package org.betonquest.betonquest.quest.registry.processor;

import org.betonquest.betonquest.Instruction;
import org.betonquest.betonquest.api.Variable;
Expand All @@ -23,7 +23,7 @@
/**
* Stores Variables and resolve them.
*/
public class VariableProcessor extends QuestProcessor<Variable, VariableID> {
public class VariableProcessor extends QuestProcessor<Variable, VariableID> implements MetricSupplying {
/**
* Available Variable types.
*/
Expand Down Expand Up @@ -69,7 +69,8 @@ public static List<String> resolveVariables(final String text) {
return variables;
}

/* default */ CompositeInstructionMetricsSupplier<VariableID> metricsSupplier() {
@Override
public CompositeInstructionMetricsSupplier<VariableID> metricsSupplier() {
return new CompositeInstructionMetricsSupplier<>(values::keySet, variableTypes::keySet);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/**
* Provides the functionality of the BetonQuest types used in the API.
*/
package org.betonquest.betonquest.quest.registry.processor;

0 comments on commit 34602a8

Please sign in to comment.