diff --git a/pom.xml b/pom.xml index 3adeaa5..7a67ec1 100644 --- a/pom.xml +++ b/pom.xml @@ -28,6 +28,12 @@ 1.8.8-R0.1-SNAPSHOT provided + + org.spigotmc + minecraft-server + 1.8.8-SNAPSHOT + provided + org.projectlombok lombok diff --git a/src/main/java/lol/vera/spigot/VeraSpigotAPI.java b/src/main/java/lol/vera/spigot/VeraSpigotAPI.java index a9b9c8c..4bce533 100644 --- a/src/main/java/lol/vera/spigot/VeraSpigotAPI.java +++ b/src/main/java/lol/vera/spigot/VeraSpigotAPI.java @@ -1,5 +1,6 @@ package lol.vera.spigot; +import lol.vera.spigot.implementation.ApiImplementation; import lombok.Data; diff --git a/src/main/java/lol/vera/spigot/handler/IMovementHandler.java b/src/main/java/lol/vera/spigot/handler/IMovementHandler.java new file mode 100644 index 0000000..af83541 --- /dev/null +++ b/src/main/java/lol/vera/spigot/handler/IMovementHandler.java @@ -0,0 +1,17 @@ +package lol.vera.spigot.handler; + +import net.minecraft.server.PacketPlayInFlying; +import org.bukkit.Location; +import org.bukkit.entity.Player; + +public interface IMovementHandler { + + /** + * @param player The {@link Player} who has moved + * @param to The {@link Location} the player came from + * @param from The {@link Location} the player is going to + * @param packet The {@link PacketPlayInFlying} flying packet + */ + void handleMove(Player player, Location to, Location from, PacketPlayInFlying packet); + +} \ No newline at end of file diff --git a/src/main/java/lol/vera/spigot/handler/IPacketHandler.java b/src/main/java/lol/vera/spigot/handler/IPacketHandler.java new file mode 100644 index 0000000..024e9e8 --- /dev/null +++ b/src/main/java/lol/vera/spigot/handler/IPacketHandler.java @@ -0,0 +1,20 @@ +package lol.vera.spigot.handler; + +import net.minecraft.server.Packet; +import net.minecraft.server.PlayerConnection; + +public interface IPacketHandler { + + /** + * @param connection The player who we are sending the packet to + * @param packet The {@link Packet} which has been sent + */ + void handleSent(PlayerConnection connection, Packet packet); + + /** + * @param connection The player who receives the packet + * @param packet The {@link Packet} which has been received + */ + void handleReceived(PlayerConnection connection, Packet packet); + +} \ No newline at end of file diff --git a/src/main/java/lol/vera/spigot/ApiImplementation.java b/src/main/java/lol/vera/spigot/implementation/ApiImplementation.java similarity index 59% rename from src/main/java/lol/vera/spigot/ApiImplementation.java rename to src/main/java/lol/vera/spigot/implementation/ApiImplementation.java index 7508757..f624768 100644 --- a/src/main/java/lol/vera/spigot/ApiImplementation.java +++ b/src/main/java/lol/vera/spigot/implementation/ApiImplementation.java @@ -1,10 +1,17 @@ -package lol.vera.spigot; +package lol.vera.spigot.implementation; +import lol.vera.spigot.handler.IMovementHandler; +import lol.vera.spigot.handler.IPacketHandler; import lol.vera.spigot.knockback.KnockbackProfile; import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; public interface ApiImplementation { + void registerMovementHandlers(JavaPlugin plugin, IMovementHandler... movementHandlers); + + void registerPacketHandlers(JavaPlugin plugin, IPacketHandler... packetHandlers); + KnockbackProfile getActiveKnockbackProfile(); KnockbackProfile getKnockbackProfile(String name); @@ -15,6 +22,16 @@ public interface ApiImplementation { class DEFAULT implements ApiImplementation { + @Override + public void registerMovementHandlers(JavaPlugin plugin, IMovementHandler... movementHandlers) { + + } + + @Override + public void registerPacketHandlers(JavaPlugin plugin, IPacketHandler... packetHandlers) { + + } + @Override public KnockbackProfile getActiveKnockbackProfile() { return null;