diff --git a/package.sh b/package.sh new file mode 100644 index 0000000..9dd5845 --- /dev/null +++ b/package.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +mvn package +mv ./target/HytaleDemo-0.1.0.jar /home/tikaiz/.var/app/com.hypixel.HytaleLauncher/data/Hytale/UserData/Mods/ \ No newline at end of file diff --git a/pom.xml b/pom.xml index 26bc55a..591a3a1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,9 +4,9 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - dev.hytalemodding - ExamplePlugin - 1.0-SNAPSHOT + com.tikaiz + HytaleDemo + 0.1.0 25 diff --git a/src/main/java/com/tikaiz/AddDefaultComponentTickSystem.java b/src/main/java/com/tikaiz/AddDefaultComponentTickSystem.java new file mode 100644 index 0000000..f4687bb --- /dev/null +++ b/src/main/java/com/tikaiz/AddDefaultComponentTickSystem.java @@ -0,0 +1,48 @@ +package com.tikaiz; + +import com.hypixel.hytale.component.*; +import com.hypixel.hytale.component.query.Query; +import com.hypixel.hytale.component.system.tick.EntityTickingSystem; +import com.hypixel.hytale.server.core.modules.entity.component.DisplayNameComponent; +import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; +import org.checkerframework.checker.nullness.compatqual.NonNullDecl; +import org.checkerframework.checker.nullness.compatqual.NullableDecl; + +import java.util.logging.Level; + +public class AddDefaultComponentTickSystem extends EntityTickingSystem { + private final ComponentType customComponentType; + + public AddDefaultComponentTickSystem(ComponentType poisonComponentType) { + this.customComponentType = poisonComponentType; + } + @Override + public void tick(float dt, + int i, + @NonNullDecl ArchetypeChunk archetypeChunk, + @NonNullDecl Store store, + @NonNullDecl CommandBuffer commandBuffer) { + Ref ref = archetypeChunk.getReferenceTo(i); + CustomComponent component = store.getComponent(ref, customComponentType); + if (component != null) { + return; + } + DisplayNameComponent displayNameComponent = store.getComponent(ref, DisplayNameComponent.getComponentType()); + if (displayNameComponent == null || displayNameComponent.getDisplayName() == null) { +// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("Added Component to ref!"); + return; + } + var displayName = displayNameComponent.getDisplayName().getAnsiMessage(); + if (!"Bunny".equals(displayName)){ + return; + } + commandBuffer.addComponent(ref, customComponentType, new CustomComponent()); + LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("Added Component to ref: " + displayName); + } + + @NullableDecl + @Override + public Query getQuery() { + return Query.any(); + } +} diff --git a/src/main/java/com/tikaiz/CustomComponent.java b/src/main/java/com/tikaiz/CustomComponent.java new file mode 100644 index 0000000..063602c --- /dev/null +++ b/src/main/java/com/tikaiz/CustomComponent.java @@ -0,0 +1,14 @@ +package com.tikaiz; + +import com.hypixel.hytale.component.Component; +import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; +import javax.annotation.Nullable; + +public class CustomComponent implements Component { + + @Nullable + @Override + public Component clone() { + return new CustomComponent(); + } +} \ No newline at end of file diff --git a/src/main/java/com/tikaiz/CustomComponentTickSystem.java b/src/main/java/com/tikaiz/CustomComponentTickSystem.java new file mode 100644 index 0000000..db4b827 --- /dev/null +++ b/src/main/java/com/tikaiz/CustomComponentTickSystem.java @@ -0,0 +1,46 @@ +package com.tikaiz; + +import com.hypixel.hytale.component.*; +import com.hypixel.hytale.component.query.Query; +import com.hypixel.hytale.component.system.tick.EntityTickingSystem; +import com.hypixel.hytale.server.core.modules.entity.component.DisplayNameComponent; +import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; +import org.checkerframework.checker.nullness.compatqual.NonNullDecl; +import org.checkerframework.checker.nullness.compatqual.NullableDecl; + +import java.util.logging.Level; + +public class CustomComponentTickSystem extends EntityTickingSystem { + private final ComponentType customComponentType; + + public CustomComponentTickSystem(ComponentType poisonComponentType) { + this.customComponentType = poisonComponentType; + } + @Override + public void tick(float dt, + int i, + @NonNullDecl ArchetypeChunk archetypeChunk, + @NonNullDecl Store store, + @NonNullDecl CommandBuffer commandBuffer) { + Ref ref = archetypeChunk.getReferenceTo(i); + CustomComponent component = store.getComponent(ref, customComponentType); + if (component == null) { + LoggerSingleton.getInstance().getHytaleLogger().at(Level.SEVERE).log("This should never happen! "); + return; + } + DisplayNameComponent displayNameComponent = store.getComponent(ref, DisplayNameComponent.getComponentType()); + if (displayNameComponent == null || displayNameComponent.getDisplayName() == null) { + LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("new Event Ticking system called on : " + ref); + return; + } + var displayName = displayNameComponent.getDisplayName().getAnsiMessage(); + LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("new Event Ticking system called on : " + displayName); + + } + + @NullableDecl + @Override + public Query getQuery() { + return Query.and(customComponentType); + } +} diff --git a/src/main/java/com/tikaiz/DamageEventSystem.java b/src/main/java/com/tikaiz/DamageEventSystem.java new file mode 100644 index 0000000..f103f1a --- /dev/null +++ b/src/main/java/com/tikaiz/DamageEventSystem.java @@ -0,0 +1,73 @@ +package com.tikaiz; + +import com.hypixel.hytale.component.ArchetypeChunk; +import com.hypixel.hytale.component.CommandBuffer; +import com.hypixel.hytale.component.Ref; +import com.hypixel.hytale.component.Store; +import com.hypixel.hytale.component.query.Query; +import com.hypixel.hytale.component.system.EntityEventSystem; +import com.hypixel.hytale.math.vector.Vector3d; +import com.hypixel.hytale.math.vector.Vector3f; +import com.hypixel.hytale.server.core.entity.UUIDComponent; +import com.hypixel.hytale.server.core.modules.entity.component.DisplayNameComponent; +import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent; +import com.hypixel.hytale.server.core.modules.entity.damage.Damage; +import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport; +import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; +import com.hypixel.hytale.server.core.util.NotificationUtil; +import org.checkerframework.checker.nullness.compatqual.NonNullDecl; +import org.checkerframework.checker.nullness.compatqual.NullableDecl; + +import java.util.logging.Level; + +public class DamageEventSystem extends EntityEventSystem { + protected DamageEventSystem() { + super(Damage.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(); + } +} diff --git a/src/main/java/com/tikaiz/EntitySpawnEventSystem.java b/src/main/java/com/tikaiz/EntitySpawnEventSystem.java new file mode 100644 index 0000000..b97235b --- /dev/null +++ b/src/main/java/com/tikaiz/EntitySpawnEventSystem.java @@ -0,0 +1,94 @@ +package com.tikaiz; + +import com.hypixel.hytale.component.ArchetypeChunk; +import com.hypixel.hytale.component.CommandBuffer; +import com.hypixel.hytale.component.Ref; +import com.hypixel.hytale.component.Store; +import com.hypixel.hytale.component.query.Query; +import com.hypixel.hytale.component.system.EntityEventSystem; +import com.hypixel.hytale.math.vector.Vector3d; +import com.hypixel.hytale.math.vector.Vector3f; +import com.hypixel.hytale.server.core.entity.UUIDComponent; +import com.hypixel.hytale.server.core.modules.entity.component.DisplayNameComponent; +import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent; +import com.hypixel.hytale.server.core.modules.entity.damage.Damage; +import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport; +import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; +import com.hypixel.hytale.server.core.util.NotificationUtil; +import com.hypixel.hytale.server.npc.AllNPCsLoadedEvent; +import com.hypixel.hytale.server.spawning.LoadedNPCEvent; +import org.checkerframework.checker.nullness.compatqual.NonNullDecl; +import org.checkerframework.checker.nullness.compatqual.NullableDecl; + +import java.util.logging.Level; + +//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() +// +// } +//} diff --git a/src/main/java/com/tikaiz/HytaleDemo.java b/src/main/java/com/tikaiz/HytaleDemo.java new file mode 100644 index 0000000..dbd9a7c --- /dev/null +++ b/src/main/java/com/tikaiz/HytaleDemo.java @@ -0,0 +1,64 @@ +package com.tikaiz; + +import com.hypixel.hytale.component.Ref; +import com.hypixel.hytale.component.SystemType; +import com.hypixel.hytale.component.query.Query; +import com.hypixel.hytale.component.system.CancellableEcsEvent; +import com.hypixel.hytale.component.system.EcsEvent; +import com.hypixel.hytale.server.core.event.events.BootEvent; +import com.hypixel.hytale.server.core.modules.entity.component.DisplayNameComponent; +import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent; +import com.hypixel.hytale.server.core.modules.entity.damage.Damage; +import com.hypixel.hytale.server.core.plugin.JavaPlugin; +import com.hypixel.hytale.server.core.plugin.JavaPluginInit; +import com.hypixel.hytale.server.core.universe.Universe; +import com.hypixel.hytale.server.core.universe.world.World; +import com.hypixel.hytale.server.core.universe.world.events.AllWorldsLoadedEvent; +import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; +import com.hypixel.hytale.server.core.util.NotificationUtil; +import com.hypixel.hytale.server.npc.AllNPCsLoadedEvent; +import com.hypixel.hytale.server.spawning.LoadedNPCEvent; +import com.hypixel.hytale.server.spawning.assets.spawns.config.NPCSpawn; +import com.tikaiz.commands.ExampleCommand; +import jdk.jfr.EventType; + +import javax.annotation.Nonnull; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Queue; +import java.util.logging.Level; + +public class HytaleDemo extends JavaPlugin { + + public HytaleDemo(@Nonnull JavaPluginInit init) { + super(init); + LoggerSingleton.getInstance().setHytaleLogger(this.getLogger()); + } + + @Override + protected void setup() { + this.getCommandRegistry().registerCommand(new ExampleCommand()); + this.getEntityStoreRegistry().registerSystem(new DamageEventSystem()); + var type = this.getEntityStoreRegistry() + .registerComponent(CustomComponent.class, CustomComponent::new); + this.getEntityStoreRegistry().registerSystem(new AddDefaultComponentTickSystem(type)); + this.getEntityStoreRegistry().registerSystem(new CustomComponentTickSystem(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/LoggerSingleton.java b/src/main/java/com/tikaiz/LoggerSingleton.java new file mode 100644 index 0000000..49e2968 --- /dev/null +++ b/src/main/java/com/tikaiz/LoggerSingleton.java @@ -0,0 +1,25 @@ +package com.tikaiz; + +import com.hypixel.hytale.logger.HytaleLogger; + +public class LoggerSingleton { + private HytaleLogger hytaleLogger; + private static LoggerSingleton instance; + public static LoggerSingleton getInstance() { + if (instance == null) { + instance = new LoggerSingleton(); + } + return instance; + } + + private LoggerSingleton() { + } + + public HytaleLogger getHytaleLogger() { + return hytaleLogger; + } + + public void setHytaleLogger(HytaleLogger hytaleLogger) { + this.hytaleLogger = hytaleLogger; + } +} diff --git a/src/main/java/com/tikaiz/commands/ExampleCommand.java b/src/main/java/com/tikaiz/commands/ExampleCommand.java new file mode 100644 index 0000000..5026d18 --- /dev/null +++ b/src/main/java/com/tikaiz/commands/ExampleCommand.java @@ -0,0 +1,92 @@ +package com.tikaiz.commands; + +import com.hypixel.hytale.component.Ref; +import com.hypixel.hytale.component.Store; +import com.hypixel.hytale.component.query.Query; +import com.hypixel.hytale.math.vector.Vector3d; +import com.hypixel.hytale.math.vector.Vector3f; +import com.hypixel.hytale.server.core.Message; +import com.hypixel.hytale.server.core.command.system.CommandContext; +import com.hypixel.hytale.server.core.command.system.arguments.system.DefaultArg; +import com.hypixel.hytale.server.core.command.system.arguments.system.OptionalArg; +import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes; +import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand; +import com.hypixel.hytale.server.core.modules.entity.component.DisplayNameComponent; +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.modules.physics.component.PhysicsValues; +import com.hypixel.hytale.server.core.universe.PlayerRef; +import com.hypixel.hytale.server.core.universe.Universe; +import com.hypixel.hytale.server.core.universe.world.World; +import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; +import com.tikaiz.LoggerSingleton; + +import javax.annotation.Nonnull; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.logging.Level; + +public class ExampleCommand extends AbstractPlayerCommand { + + public ExampleCommand() { + super("tel", "Super test command!"); + } + + DefaultArg> arg = this.withListDefaultArg("Pos", "Position", ArgTypes.DOUBLE,new ArrayList(),"Tell the Player the Position"); + + @Override + protected void execute(@Nonnull CommandContext commandContext, + @Nonnull Store store, + @Nonnull Ref ref, + @Nonnull PlayerRef playerRef, + @Nonnull World world) { + int size = arg.get(commandContext).size(); + playerRef.sendMessage(Message.raw("Arg size: " + size)); + if (!(size == 3 || size == 0)){ + + playerRef.sendMessage(Message.raw("Either specify 0 or 3 Arguments")); + return; + } + + + var transform = store.getComponent(ref, TransformComponent.getComponentType()); + if (transform == null) return; + if (size == 0){ + var pos = transform.getPosition(); + playerRef.sendMessage(Message.raw("Player Position: " + pos)); + return; + } + var x = arg.get(commandContext).get(0); + var y = arg.get(commandContext).get(1); + var z = arg.get(commandContext).get(2); + + var newPos = new Vector3d(x,y,z); + + 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/dev/hytalemodding/events/ExampleEvent.java b/src/main/java/com/tikaiz/events/ExampleEvent.java similarity index 92% rename from src/main/java/dev/hytalemodding/events/ExampleEvent.java rename to src/main/java/com/tikaiz/events/ExampleEvent.java index c156966..7eb666c 100644 --- a/src/main/java/dev/hytalemodding/events/ExampleEvent.java +++ b/src/main/java/com/tikaiz/events/ExampleEvent.java @@ -1,4 +1,4 @@ -package dev.hytalemodding.events; +package com.tikaiz.events; import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.entity.entities.Player; diff --git a/src/main/java/dev/hytalemodding/ExamplePlugin.java b/src/main/java/dev/hytalemodding/ExamplePlugin.java deleted file mode 100644 index 27de75b..0000000 --- a/src/main/java/dev/hytalemodding/ExamplePlugin.java +++ /dev/null @@ -1,22 +0,0 @@ -package dev.hytalemodding; - -import com.hypixel.hytale.server.core.event.events.player.PlayerReadyEvent; -import com.hypixel.hytale.server.core.plugin.JavaPlugin; -import com.hypixel.hytale.server.core.plugin.JavaPluginInit; -import dev.hytalemodding.commands.ExampleCommand; -import dev.hytalemodding.events.ExampleEvent; - -import javax.annotation.Nonnull; - -public class ExamplePlugin extends JavaPlugin { - - public ExamplePlugin(@Nonnull JavaPluginInit init) { - super(init); - } - - @Override - protected void setup() { - this.getCommandRegistry().registerCommand(new ExampleCommand("example", "An example command")); - this.getEventRegistry().registerGlobal(PlayerReadyEvent.class, ExampleEvent::onPlayerReady); - } -} \ No newline at end of file diff --git a/src/main/java/dev/hytalemodding/commands/ExampleCommand.java b/src/main/java/dev/hytalemodding/commands/ExampleCommand.java deleted file mode 100644 index 3e818d7..0000000 --- a/src/main/java/dev/hytalemodding/commands/ExampleCommand.java +++ /dev/null @@ -1,24 +0,0 @@ -package dev.hytalemodding.commands; - -import com.hypixel.hytale.server.core.Message; -import com.hypixel.hytale.server.core.command.system.AbstractCommand; -import com.hypixel.hytale.server.core.command.system.CommandContext; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.concurrent.CompletableFuture; - -public class ExampleCommand extends AbstractCommand { - - public ExampleCommand(String name, String description) { - super(name, description); - } - - @Nullable - @Override - protected CompletableFuture execute(@Nonnull CommandContext context) { - context.sendMessage(Message.raw("Hello from ExampleCommand!")); - return CompletableFuture.completedFuture(null); - } - -} diff --git a/src/main/resources/manifest.json b/src/main/resources/manifest.json index 855b158..3dc9ac9 100644 --- a/src/main/resources/manifest.json +++ b/src/main/resources/manifest.json @@ -1,20 +1,18 @@ { - "Group": "dev.hytalemodding", - "Name": "ExamplePlugin", + "Group": "com.tikaiz", + "Name": "Hytale Plugin Demo", "Version": "${version}", "Description": "Description of your plugin", "Authors": [ { - "Name": "Your Name", - "Email": "your.email@example.com", - "Url": "https://your-website.com" + "Name": "Tikaiz", + "Email": "tikaiz@gmx.at" } ], - "Website": "https://your-plugin-website.com", "ServerVersion": "*", "Dependencies": {}, "OptionalDependencies": {}, "DisabledByDefault": false, "IncludesAssetPack": false, - "Main": "dev.hytalemodding.ExamplePlugin" + "Main": "com.tikaiz.HytaleDemo" }