Add NPC Text script and enhance ScriptApi with entity type retrieval
All checks were successful
Build JStom / build (push) Successful in 1m21s
All checks were successful
Build JStom / build (push) Successful in 1m21s
This commit is contained in:
@@ -11,6 +11,7 @@ import net.minestom.server.event.server.ServerListPingEvent;
|
||||
import net.minestom.server.instance.InstanceContainer;
|
||||
import net.minestom.server.instance.InstanceManager;
|
||||
import net.minestom.server.instance.LightingChunk;
|
||||
import net.minestom.server.instance.Chunk;
|
||||
import net.minestom.server.instance.anvil.AnvilLoader;
|
||||
import net.minestom.server.instance.block.Block;
|
||||
import net.minestom.server.ping.Status;
|
||||
|
||||
@@ -3,14 +3,32 @@ package net.jstom.script;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.event.Event;
|
||||
import net.minestom.server.event.EventNode;
|
||||
import net.minestom.server.entity.EntityType;
|
||||
import org.graalvm.polyglot.Value;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
|
||||
public class ScriptApi {
|
||||
private final List<EventNode<Event>> registeredNodes = new ArrayList<>();
|
||||
private static final Map<String, EntityType> entityTypes = new HashMap<>();
|
||||
|
||||
static {
|
||||
for (Field field : EntityType.class.getFields()) {
|
||||
if (Modifier.isStatic(field.getModifiers()) && Modifier.isPublic(field.getModifiers()) && field.getType() == EntityType.class) {
|
||||
try {
|
||||
field.setAccessible(true);
|
||||
entityTypes.put(field.getName(), (EntityType) field.get(null));
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers an event listener from JavaScript.
|
||||
@@ -64,4 +82,9 @@ public class ScriptApi {
|
||||
public void log(String message) {
|
||||
System.out.println("[JS] " + message);
|
||||
}
|
||||
|
||||
public EntityType getEntityType(String name) {
|
||||
if (name == null) return null;
|
||||
return entityTypes.get(name.toUpperCase());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user