diff --git a/src/main/java/com/tikaiz/HytaleDemo.java b/src/main/java/com/tikaiz/HytaleDemo.java index a58299a..23c687d 100644 --- a/src/main/java/com/tikaiz/HytaleDemo.java +++ b/src/main/java/com/tikaiz/HytaleDemo.java @@ -5,8 +5,8 @@ import com.hypixel.hytale.server.core.plugin.JavaPluginInit; import com.tikaiz.commands.ExampleCommand; import com.tikaiz.components.EndermanTeleportComponent; import com.tikaiz.singletons.LoggerSingleton; -import com.tikaiz.systems.AddDefaultComponentTickSystem; -import com.tikaiz.systems.CustomComponentTickSystem; +import com.tikaiz.systems.AddEndermanTeleportComponentTickSystem; +import com.tikaiz.systems.EndermanComponentTickSystem; import com.tikaiz.systems.DamageEventSystem; import javax.annotation.Nonnull; @@ -23,25 +23,8 @@ public class HytaleDemo extends JavaPlugin { this.getCommandRegistry().registerCommand(new ExampleCommand()); var type = this.getEntityStoreRegistry() .registerComponent(EndermanTeleportComponent.class, EndermanTeleportComponent::new); - this.getEntityStoreRegistry().registerSystem(new AddDefaultComponentTickSystem(type)); - this.getEntityStoreRegistry().registerSystem(new CustomComponentTickSystem(type)); + this.getEntityStoreRegistry().registerSystem(new AddEndermanTeleportComponentTickSystem(type)); + this.getEntityStoreRegistry().registerSystem(new EndermanComponentTickSystem(type)); this.getEntityStoreRegistry().registerSystem(new DamageEventSystem(type)); -// var list = new ArrayList(); -// this.getEventRegistry().registerGlobal(AllWorldsLoadedEvent.class, (x)->{ -// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("World has loaded!"); -// }); -// Universe.get().getDefaultWorld().getEntityStore().getStore().fetch(new SystemType<>(), Query.any(),list); -// EntityStore.REGISTRY.assertInStoreThread(); -// this.getEventRegistry().registerGlobal(LoadedNPCEvent.class, (x)->{ -// String id = x.getBuilderInfo().; -// Arrays.stream(x.getNPCs()).forEach(x->x.getFlockDefinition().); -// x.getAllNPCs().forEach((integer, builderInfo) -> { -// builderInfo. -// }); -// NotificationUtil.sendNotificationToUniverse(x.getBuilderInfo().getKeyName()); -// }); -// this.getEventRegistry().register(Damage.class,(x)->{ -// Damage.Source source = x.getSource(); -// }); } } \ No newline at end of file diff --git a/src/main/java/com/tikaiz/commands/ExampleCommand.java b/src/main/java/com/tikaiz/commands/ExampleCommand.java index 17354aa..450a8d6 100644 --- a/src/main/java/com/tikaiz/commands/ExampleCommand.java +++ b/src/main/java/com/tikaiz/commands/ExampleCommand.java @@ -57,28 +57,8 @@ public class ExampleCommand extends AbstractPlayerCommand { Teleport teleportForPlayer = Teleport.createForPlayer(newPos, new Vector3f()); store.addComponent(ref,Teleport.getComponentType(),teleportForPlayer); -// var results = new ArrayList(); -// store.fetch(); - -// transform.setPosition(newPos); playerRef.sendMessage(Message.raw("Set Player Position to: " + newPos)); - - -// String message = messageArg.get(commandContext); // get the argument text by the player -// playerRef.sendMessage(Message.raw("Player Name: " + playerRef.getUsername())); -// var mass = store.getComponent(ref, PhysicsValues.getComponentType()).getMass(); -// playerRef.sendMessage(Message.raw("Player Mass: " + mass)); -// var archetype = store.getArchetype(ref); -// playerRef.sendMessage(Message.raw("Archetype count: "+archetype.length())); -// for (int i = 0; i < archetype.length(); i++) { -// var type = archetype.get(i); -// if (type!=null){ -// var typeClass = type.getTypeClass(); -// playerRef.sendMessage(Message.raw("Type class: "+typeClass)); -// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("Type class: "+typeClass); -// } -// } } } \ No newline at end of file diff --git a/src/main/java/com/tikaiz/helpers/TeleportHelper.java b/src/main/java/com/tikaiz/helpers/TeleportHelper.java index d0ef3a4..176aa42 100644 --- a/src/main/java/com/tikaiz/helpers/TeleportHelper.java +++ b/src/main/java/com/tikaiz/helpers/TeleportHelper.java @@ -1,21 +1,12 @@ package com.tikaiz.helpers; -import com.hypixel.hytale.component.CommandBuffer; -import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.math.vector.Vector3d; -import com.hypixel.hytale.math.vector.Vector3f; -import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport; -import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; -import org.checkerframework.checker.nullness.compatqual.NonNullDecl; public abstract class TeleportHelper { - public static void randomTeleport(@NonNullDecl CommandBuffer commandBuffer, Ref ref, Vector3d position) { + public static Vector3d randomTeleport(Vector3d position) { Vector3d addPos = new Vector3d((Math.random() * 20) - 10, 3, (Math.random() * 20) - 10); - var newPos = position.add(addPos); - - Teleport teleportForPlayer = Teleport.createForPlayer(newPos, new Vector3f()); - commandBuffer.addComponent(ref, Teleport.getComponentType(), teleportForPlayer); + return position.add(addPos); } } diff --git a/src/main/java/com/tikaiz/systems/AddDefaultComponentTickSystem.java b/src/main/java/com/tikaiz/systems/AddEndermanTeleportComponentTickSystem.java similarity index 86% rename from src/main/java/com/tikaiz/systems/AddDefaultComponentTickSystem.java rename to src/main/java/com/tikaiz/systems/AddEndermanTeleportComponentTickSystem.java index 14f8689..8debe5a 100644 --- a/src/main/java/com/tikaiz/systems/AddDefaultComponentTickSystem.java +++ b/src/main/java/com/tikaiz/systems/AddEndermanTeleportComponentTickSystem.java @@ -12,10 +12,10 @@ import org.checkerframework.checker.nullness.compatqual.NullableDecl; import java.util.logging.Level; -public class AddDefaultComponentTickSystem extends EntityTickingSystem { +public class AddEndermanTeleportComponentTickSystem extends EntityTickingSystem { private final ComponentType customComponentType; - public AddDefaultComponentTickSystem(ComponentType poisonComponentType) { + public AddEndermanTeleportComponentTickSystem(ComponentType poisonComponentType) { this.customComponentType = poisonComponentType; } @Override @@ -31,7 +31,6 @@ public class AddDefaultComponentTickSystem extends EntityTickingSystem { assert displayNameComponent.getDisplayName() != null; var name = displayNameComponent.getDisplayName().getAnsiMessage(); + NotificationUtil.sendNotificationToUniverse(name); if (Math.random() < 0.3) { var transform = transformComponent.getTransform(); - randomTeleport(commandBuffer, ref, transform.getPosition()); + ParticleUtil.spawnParticleEffect("Effect_Death",transform.getPosition(),commandBuffer); + Vector3d newPos = randomTeleport(transform.getPosition()); + ParticleUtil.spawnParticleEffect("Effect_Death",transform.getPosition(),commandBuffer); + Teleport teleportForPlayer = Teleport.createForPlayer(newPos, new Vector3f()); + commandBuffer.addComponent(ref, Teleport.getComponentType(), teleportForPlayer); } } diff --git a/src/main/java/com/tikaiz/systems/CustomComponentTickSystem.java b/src/main/java/com/tikaiz/systems/EndermanComponentTickSystem.java similarity index 66% rename from src/main/java/com/tikaiz/systems/CustomComponentTickSystem.java rename to src/main/java/com/tikaiz/systems/EndermanComponentTickSystem.java index 55a4d1f..b17bec0 100644 --- a/src/main/java/com/tikaiz/systems/CustomComponentTickSystem.java +++ b/src/main/java/com/tikaiz/systems/EndermanComponentTickSystem.java @@ -3,7 +3,11 @@ package com.tikaiz.systems; import com.hypixel.hytale.component.*; import com.hypixel.hytale.component.query.Query; import com.hypixel.hytale.component.system.tick.EntityTickingSystem; +import com.hypixel.hytale.math.vector.Vector3d; +import com.hypixel.hytale.math.vector.Vector3f; import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent; +import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport; +import com.hypixel.hytale.server.core.universe.world.ParticleUtil; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; import com.tikaiz.components.EndermanTeleportComponent; import org.checkerframework.checker.nullness.compatqual.NonNullDecl; @@ -11,10 +15,10 @@ import org.checkerframework.checker.nullness.compatqual.NullableDecl; import static com.tikaiz.helpers.TeleportHelper.randomTeleport; -public class CustomComponentTickSystem extends EntityTickingSystem { +public class EndermanComponentTickSystem extends EntityTickingSystem { private final ComponentType customComponentType; - public CustomComponentTickSystem(ComponentType poisonComponentType) { + public EndermanComponentTickSystem(ComponentType poisonComponentType) { this.customComponentType = poisonComponentType; } @@ -34,8 +38,12 @@ public class CustomComponentTickSystem extends EntityTickingSystem endermanTeleportComponent.addElapsedTime(dt); if (endermanTeleportComponent.getElapsedTime() >= endermanTeleportComponent.getTickInterval()) { endermanTeleportComponent.resetElapsedTime(); + ParticleUtil.spawnParticleEffect("Effect_Death",transformComponent.getPosition(),commandBuffer); + Vector3d newPos = randomTeleport(transformComponent.getPosition()); + ParticleUtil.spawnParticleEffect("Effect_Death",transformComponent.getPosition(),commandBuffer); - randomTeleport(commandBuffer, ref, transformComponent.getPosition()); + Teleport teleportForPlayer = Teleport.createForPlayer(newPos, new Vector3f()); + commandBuffer.addComponent(ref, Teleport.getComponentType(), teleportForPlayer); } } diff --git a/src/main/java/com/tikaiz/systems/EntitySpawnEventSystem.java b/src/main/java/com/tikaiz/systems/EntitySpawnEventSystem.java deleted file mode 100644 index c381cbd..0000000 --- a/src/main/java/com/tikaiz/systems/EntitySpawnEventSystem.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.tikaiz.systems; - -//public class EntitySpawnEventSystem extends EntityEventSystem { -// protected EntitySpawnEventSystem() { -// super(LoadedNPCEvent.class); -// } -// -//// @Override -//// public void handle(int i, -//// @NonNullDecl ArchetypeChunk archetypeChunk, -//// @NonNullDecl Store store, -//// @NonNullDecl CommandBuffer commandBuffer, -//// @NonNullDecl Damage damage) { -//// Ref ref = archetypeChunk.getReferenceTo(i); -//// TransformComponent component = store.getComponent(ref, TransformComponent.getComponentType()); -//// if (component == null) { -//// LoggerSingleton.getInstance().getHytaleLogger().at(Level.SEVERE).log("Transform was Null"); -//// return; -//// } -//// var displayNameComponent = store.getComponent(ref, DisplayNameComponent.getComponentType()); -//// if (displayNameComponent == null) { -//// LoggerSingleton.getInstance().getHytaleLogger().at(Level.SEVERE).log("Display name was Null"); -//// return; -//// } -//// -//// NotificationUtil.sendNotificationToUniverse(displayNameComponent.getDisplayName()); -//// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("Display name: " + displayNameComponent.getDisplayName()); -//// -//// var uuidComponent = store.getComponent(ref, UUIDComponent.getComponentType()); -//// if (uuidComponent == null) { -//// LoggerSingleton.getInstance().getHytaleLogger().at(Level.SEVERE).log("UUID was Null"); -//// return; -//// } -//// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("UUID: " + uuidComponent.getUuid()); -//// var transform = component.getTransform(); -//// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("Transform: "+transform); -//// -//// Vector3d addPos = new Vector3d((Math.random()*20)-10, 3, (Math.random()*20)-10); -//// -//// var newPos = transform.getPosition().add(addPos); -//// -//// Teleport teleportForPlayer = Teleport.createForPlayer(newPos, new Vector3f()); -//// new Thread(()->{ -//// store.addComponent(ref,Teleport.getComponentType(),teleportForPlayer); -//// }).start(); -//// } -// -// @NullableDecl -// @Override -// public Query getQuery() { -// return Query.any(); -// } -// -// -// @Override -// public void handle(int i, -// @NonNullDecl ArchetypeChunk archetypeChunk, -// @NonNullDecl Store store, -// @NonNullDecl CommandBuffer commandBuffer, -// @NonNullDecl LoadedNPCEvent loadedNPCEvent) { -// Ref ref = archetypeChunk.getReferenceTo(i); -// var transformComponent = store.getComponent(ref, TransformComponent.getComponentType()); -// NotificationUtil.sendNotificationToUniverse(transformComponent != null ? transformComponent.getTransform().toString() : "null"); -// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log(transformComponent != null ? transformComponent.getTransform().toString() : "null"); -// var displayNameComponent = store.getComponent(ref, DisplayNameComponent.getComponentType()); -// NotificationUtil.sendNotificationToUniverse(displayNameComponent != null ? displayNameComponent.getDisplayName() != null ? displayNameComponent.getDisplayName().getAnsiMessage() : "null" : "null"); -// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log(displayNameComponent != null ? displayNameComponent.getDisplayName() != null ? displayNameComponent.getDisplayName().getAnsiMessage() : "null" : "null"); -// -//// loadedNPCEvent.getBuilderInfo().getKeyName() -// -// } -//}