added ability to register dummy property using api

This commit is contained in:
D3v1s0m 2023-10-02 09:50:20 +05:30
parent 2128243fa2
commit a5de0680c8
No known key found for this signature in database
GPG Key ID: FA1F770C7B1D40C1
5 changed files with 29 additions and 0 deletions

@ -6,4 +6,5 @@ public interface EntityPropertyRegistry {
Collection<EntityProperty<?>> getAll(); Collection<EntityProperty<?>> getAll();
EntityProperty<?> getByName(String name); EntityProperty<?> getByName(String name);
<T> EntityProperty<T> getByName(String name, Class<T> type); <T> EntityProperty<T> getByName(String name, Class<T> type);
void registerDummy(String name, Class<?> type);
} }

@ -253,6 +253,7 @@ public class ZNpcsPlus extends JavaPlugin {
manager.registerParser(InteractionType.class, new InteractionTypeParser(incorrectUsageMessage)); manager.registerParser(InteractionType.class, new InteractionTypeParser(incorrectUsageMessage));
manager.registerParser(Color.class, new ColorParser(incorrectUsageMessage)); manager.registerParser(Color.class, new ColorParser(incorrectUsageMessage));
manager.registerParser(Vector3f.class, new Vector3fParser(incorrectUsageMessage)); manager.registerParser(Vector3f.class, new Vector3fParser(incorrectUsageMessage));
manager.registerParser(String.class, new StringParser(incorrectUsageMessage));
// TODO: Need to find a better way to do this // TODO: Need to find a better way to do this
registerEnumParser(manager, NpcPose.class, incorrectUsageMessage); registerEnumParser(manager, NpcPose.class, incorrectUsageMessage);

@ -569,6 +569,11 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
return (EntityPropertyImpl<T>) getByName(name); return (EntityPropertyImpl<T>) getByName(name);
} }
@Override
public void registerDummy(String name, Class<?> type) {
register(new DummyProperty<>(name, type));
}
public EntityPropertyImpl<?> getByName(String name) { public EntityPropertyImpl<?> getByName(String name) {
return byName.get(name.toLowerCase()); return byName.get(name.toLowerCase());
} }

@ -0,0 +1,19 @@
package lol.pyr.znpcsplus.parsers;
import lol.pyr.director.adventure.command.CommandContext;
import lol.pyr.director.adventure.parse.ParserType;
import lol.pyr.director.common.command.CommandExecutionException;
import lol.pyr.director.common.message.Message;
import java.util.Deque;
public class StringParser extends ParserType<String> {
public StringParser(Message<CommandContext> message) {
super(message);
}
@Override
public String parse(Deque<String> deque) throws CommandExecutionException {
return deque.pollFirst();
}
}

@ -21,6 +21,9 @@ softdepend:
- ViaRewind - ViaRewind
- Geyser-Spigot - Geyser-Spigot
loadbefore:
- Quests
commands: commands:
npc: npc:
aliases: aliases: