Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
ac48fd1
Fix building issues
Foxikle Dec 30, 2024
19bd072
Cleaning up deprecated methods scheduled for removal in 1.8.0
Foxikle Dec 30, 2024
020200c
Protobuf is cool
Foxikle Dec 30, 2024
fdbabb6
Merge pull request #114 from Foxikle/1.8/remove-deprecation
Foxikle Dec 30, 2024
a9260ad
Update dependencies
Foxikle Dec 30, 2024
39474ee
Cleaning up deprecated methods scheduled for removal in 1.8.0
Foxikle Dec 30, 2024
859a12c
Protobuf is cool
Foxikle Dec 30, 2024
2f86b7c
load protobuf at runtime
Foxikle Jan 17, 2025
5916a4f
Merge remote-tracking branch 'origin/1.8/protobuf' into 1.8/protobuf
Foxikle Jan 17, 2025
d4d67f0
Merge pull request #118 from Foxikle/1.8/protobuf
Foxikle Jan 17, 2025
056567b
Import the right chart
Foxikle Mar 9, 2025
510d2e2
Merge remote-tracking branch 'origin/master' into 1.8/protobuf
Foxikle Mar 9, 2025
0482974
Remove old file manager
Foxikle Mar 10, 2025
0e5cd34
chore: direction & storage manager
Foxikle Mar 10, 2025
176ae29
New storage options
Foxikle Mar 10, 2025
49557c7
Create custom exceptions
Foxikle Mar 10, 2025
c30b5a7
close the classloader
Foxikle Mar 10, 2025
bed2434
use the new file manager
Foxikle Mar 10, 2025
a28eff6
Use proto wrapped things
Foxikle Mar 10, 2025
969f37a
Add storage options and debug modes
Foxikle Mar 10, 2025
4f44cfc
Enable debug mode if its true in the config
Foxikle Mar 10, 2025
aa436fc
Create a command to move the NPC data around
Foxikle Mar 10, 2025
74c40e4
Fix async error creating NPCs
Foxikle Apr 5, 2025
dd2ac09
Merge remote-tracking branch 'origin/version/1.8' into 1.8/protobuf
Foxikle Apr 5, 2025
75d18cb
Update core/src/main/java/dev/foxikle/customnpcs/internal/commands/Mo…
Foxikle Apr 5, 2025
fa48f82
Add conditions for injection
Foxikle Sep 3, 2025
32223a4
!! Breaking changes !! - removed conditional classes, move nested enu…
Foxikle Sep 3, 2025
5d2f1e5
Merge branch 'feat/conditional-injection' of https://github.com/Foxik…
Foxikle Sep 4, 2025
8991f0c
Fix merge issues
Foxikle Sep 4, 2025
da14e16
Merge pull request #168 from Foxikle/feat/conditional-injection
Foxikle Sep 4, 2025
b369fc4
Begin working on configurate port [Not Done]
Foxikle Sep 5, 2025
bdc6867
Merge branch 'version/1.8' of https://github.com/Foxikle/CustomNPCs i…
Foxikle Sep 5, 2025
b8cf08f
It actually works again
Foxikle Sep 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,6 @@ build

# Common working directory
run/

# Proto
compile_proto.sh
6 changes: 2 additions & 4 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ dependencies {
implementation(project(":v1_20_R1", "reobf"))
}

var pluginVersion = "1.7.5"
var pluginVersion = "1.8-pre2"

allprojects {
group = "dev.foxikle"
Expand Down Expand Up @@ -122,7 +122,7 @@ tasks {
"apiVersion" to "1.20"
)
inputs.properties(props)
filesMatching("plugin.yml") {
filesMatching("paper-plugin.yml") {
expand(props)
}
}
Expand Down Expand Up @@ -154,5 +154,3 @@ tasks.register<Javadoc>("aggregatedJavadocs") {
}
}
}


4 changes: 4 additions & 0 deletions core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ dependencies {
compileOnly("org.mineskin:java-client-jsoup:3.0.6")
compileOnly("dev.velix:imperat-bukkit:1.9.7")
compileOnly("dev.velix:imperat-core:1.9.7")
compileOnly("org.mongodb:mongodb-driver-sync:5.3.0")
compileOnly("com.mysql:mysql-connector-j:9.1.0")
compileOnly("com.zaxxer:HikariCP:6.2.1")
compileOnly("org.spongepowered:configurate-gson:4.2.0")
}

val generateClassloader = tasks.register("generateClassloader") {
Expand Down
23 changes: 12 additions & 11 deletions core/src/main/java/dev/foxikle/customnpcs/actions/Action.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@

package dev.foxikle.customnpcs.actions;

import dev.foxikle.customnpcs.actions.conditions.Condition;
import dev.foxikle.customnpcs.conditions.Condition;
import dev.foxikle.customnpcs.conditions.Selector;
import dev.foxikle.customnpcs.internal.CustomNPCs;
import dev.foxikle.customnpcs.internal.interfaces.InternalNpc;
import dev.foxikle.customnpcs.internal.utils.Utils;
Expand Down Expand Up @@ -51,9 +52,9 @@ public abstract class Action {

private List<Condition> conditions = new ArrayList<>();
private int delay = 0;
private Condition.SelectionMode mode = Condition.SelectionMode.ONE;
private Selector mode = Selector.ONE;
private int cooldown = 0;
private Map<UUID, Instant> cooldowns = new ConcurrentHashMap<>();
private final Map<UUID, Instant> cooldowns = new ConcurrentHashMap<>();

/**
* Default constructor
Expand All @@ -62,7 +63,7 @@ public Action() {

}

public Action(int delay, Condition.SelectionMode mode, List<Condition> conditions, int cooldown) {
public Action(int delay, Selector mode, List<Condition> conditions, int cooldown) {
this.delay = delay;
this.mode = mode;
this.conditions = conditions;
Expand All @@ -71,11 +72,11 @@ public Action(int delay, Condition.SelectionMode mode, List<Condition> condition


/**
* Deprecated, use {@link Action#Action(int, Condition.SelectionMode, List, int)} Action}
* Deprecated, use {@link Action#Action(int, Selector, List, int)} Action}
*/
@Deprecated
@ApiStatus.ScheduledForRemoval(inVersion = "1.9")
public Action(int delay, Condition.SelectionMode mode, List<Condition> conditions) {
public Action(int delay, Selector mode, List<Condition> conditions) {
this(delay, mode, conditions, 0);
}

Expand Down Expand Up @@ -119,7 +120,7 @@ public static Action parse(@NotNull String s) {
protected static ParseResult parseBase(String data) {
int cooldown = parseInt(data, "cooldown");
int delay = parseInt(data, "delay");
Condition.SelectionMode mode = parseEnum(data, "mode", Condition.SelectionMode.class);
Selector mode = parseEnum(data, "mode", Selector.class);
List<Condition> conditions = deserializeConditions(parseString(data, "conditions"));
return new ParseResult(delay, mode, conditions, cooldown);
}
Expand Down Expand Up @@ -270,7 +271,7 @@ public boolean processConditions(Player player) {
if (conditions == null || conditions.isEmpty()) return true; // no conditions
Set<Boolean> results = new HashSet<>(conditions.size());
conditions.forEach(conditional -> results.add(conditional.compute(player)));
return (mode == Condition.SelectionMode.ALL ? !results.contains(false) : results.contains(true));
return (mode == Selector.ALL ? !results.contains(false) : results.contains(true));
}

private String getConditionSerialized() {
Expand Down Expand Up @@ -333,13 +334,13 @@ protected String generateSerializedString(String id, Map<String, Object> params)

public abstract Action clone();

protected record ParseResult(int delay, Condition.SelectionMode mode, List<Condition> conditions, int cooldown) {
protected record ParseResult(int delay, Selector mode, List<Condition> conditions, int cooldown) {
/**
* @deprecated Use {@link ParseResult#ParseResult(int, Condition.SelectionMode, List, int)}}
* @deprecated Use {@link ParseResult#ParseResult(int, Selector, List, int)}}
*/
@Deprecated
@ApiStatus.ScheduledForRemoval(inVersion = "1.9")
public ParseResult(int delay, Condition.SelectionMode mode, List<Condition> conditions) {
public ParseResult(int delay, Selector mode, List<Condition> conditions) {
this(delay, mode, conditions, 0);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,15 @@
* SOFTWARE.
*/

package dev.foxikle.customnpcs.actions.conditions;
package dev.foxikle.customnpcs.actions;

import com.google.gson.JsonSyntaxException;
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import dev.foxikle.customnpcs.actions.ActionType;
import dev.foxikle.customnpcs.actions.LegacyAction;
import dev.foxikle.customnpcs.conditions.Condition;
import dev.foxikle.customnpcs.conditions.ConditionalTypeAdapter;
import dev.foxikle.customnpcs.conditions.Selector;

import java.io.IOException;
import java.util.ArrayList;
Expand Down Expand Up @@ -83,7 +84,7 @@ public LegacyAction read(JsonReader in) throws IOException {
List<String> args = new ArrayList<>();
int delay = 0;
List<Condition> conditions = new ArrayList<>();
Condition.SelectionMode selectionMode = null;
Selector selectionMode = null;


while (in.hasNext()) {
Expand All @@ -98,7 +99,7 @@ public LegacyAction read(JsonReader in) throws IOException {
in.endArray();
}
case "delay" -> delay = in.nextInt();
case "mode" -> selectionMode = Condition.SelectionMode.valueOf(in.nextString());
case "mode" -> selectionMode = Selector.valueOf(in.nextString());
case "conditionals" -> {
in.beginArray();
while(in.hasNext()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@

package dev.foxikle.customnpcs.actions;

import dev.foxikle.customnpcs.actions.conditions.Condition;
import dev.foxikle.customnpcs.actions.defaultImpl.*;
import dev.foxikle.customnpcs.conditions.Condition;
import dev.foxikle.customnpcs.conditions.Selector;
import dev.foxikle.customnpcs.internal.CustomNPCs;
import lombok.Getter;
import lombok.Setter;
Expand Down Expand Up @@ -51,7 +52,7 @@ public class LegacyAction {
@Setter
private int delay;
@Setter
private Condition.SelectionMode mode;
private Selector mode;

/**
* <p> Creates a new Action
Expand All @@ -63,7 +64,7 @@ public class LegacyAction {
* @param matchAll If all the conditions must be met, or one
* @param conditionals The conditions to apply to this action
*/
public LegacyAction(ActionType actionType, List<String> args, int delay, Condition.SelectionMode matchAll, List<Condition> conditionals) {
public LegacyAction(ActionType actionType, List<String> args, int delay, Selector matchAll, List<Condition> conditionals) {
this.actionType = actionType;
this.args = args;
this.delay = delay;
Expand All @@ -75,7 +76,7 @@ private LegacyAction(String subCommand, ArrayList<String> args, int delay) {
this.actionType = ActionType.valueOf(subCommand);
this.args = args;
this.delay = delay;
this.mode = Condition.SelectionMode.ONE;
this.mode = Selector.ONE;
this.conditionals = new ArrayList<>();
}

Expand Down Expand Up @@ -152,7 +153,7 @@ private boolean processConditions(Player player) {

Set<Boolean> results = new HashSet<>(2);
conditionals.forEach(conditional -> results.add(conditional.compute(player)));
return (mode == Condition.SelectionMode.ALL ? !results.contains(false) : results.contains(true));
return (mode == Selector.ALL ? !results.contains(false) : results.contains(true));
}

/**
Expand Down
Loading