Listening in both directions

This commit is contained in:
skippyall
2026-01-25 22:28:09 +01:00
parent 382b394523
commit 017b2ec590
44 changed files with 550 additions and 211 deletions
@@ -9,6 +9,7 @@ import com.mojang.brigadier.suggestion.SuggestionsBuilder;
import io.github.skippyall.minions.minion.MinionData;
import io.github.skippyall.minions.minion.MinionPersistentState;
import io.github.skippyall.minions.minion.MinionProfileUtils;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.command.ServerCommandSource;
import net.minecraft.text.Text;
@@ -21,13 +22,13 @@ public class MinionArgument {
public static final MinionSuggestionProvider SUGGESTION_PROVIDER = new MinionSuggestionProvider();
public static MinionData parse(String argument) throws CommandSyntaxException {
public static MinionData parse(MinecraftServer server, String argument) throws CommandSyntaxException {
Optional<MinionData> data = Optional.empty();
if(argument.startsWith(MinionProfileUtils.PREFIX)) {
data = MinionPersistentState.INSTANCE.getMinionWithName(argument);
data = MinionPersistentState.get(server).getMinionWithName(argument);
} else {
try {
data = Optional.ofNullable(MinionPersistentState.INSTANCE.getMinionData(UUID.fromString(argument)));
data = Optional.ofNullable(MinionPersistentState.get(server).getMinionData(UUID.fromString(argument)));
} catch (IllegalArgumentException ignored) {}
}
@@ -40,7 +41,7 @@ public class MinionArgument {
public static class MinionSuggestionProvider implements SuggestionProvider<ServerCommandSource> {
@Override
public CompletableFuture<Suggestions> getSuggestions(CommandContext<ServerCommandSource> context, SuggestionsBuilder builder) throws CommandSyntaxException {
for (MinionData data : MinionPersistentState.INSTANCE.getMinionDataList()) {
for (MinionData data : MinionPersistentState.get(context.getSource().getServer()).getMinionDataList()) {
builder.suggest(data.name());
}