Skip to content

Commit

Permalink
Fix deprecation warning in latest Spigot versions
Browse files Browse the repository at this point in the history
This maintains backwards compatibility if the new event classes don't exist.
  • Loading branch information
PseudoKnight committed Jan 15, 2024
1 parent c29fe0b commit 3d76fbb
Show file tree
Hide file tree
Showing 9 changed files with 362 additions and 203 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@ these functions and events are subject to be moved into CommandHelper at some po

## Compatibility

* [**CHSpigot 2.0.6 for Spigot 1.16.5 - 1.20.1**](https://letsbuild.net/jenkins/job/CHSpigot/35/artifact/target/chspigot-2.0.6.jar) (CommandHelper 3.3.5 #332 or later) [Documentation](https://github.com/PseudoKnight/CHSpigot/blob/master/README.md)
* [**CHSpigot 2.0.7 for Spigot 1.16.5 - 1.20.4**](https://github.com/PseudoKnight/CHSpigot/releases/tag/v2.0.7) (CommandHelper 3.3.5 #332 or later) [Documentation](https://github.com/PseudoKnight/CHSpigot/blob/master/README.md)
* [**CHSpigot 2.0.6 for Spigot 1.16.5 - 1.20.3**](https://github.com/PseudoKnight/CHSpigot/releases/tag/v2.0.6) (CommandHelper 3.3.5 #332 or later) [Documentation](https://github.com/PseudoKnight/CHSpigot/blob/master/README.md)
* [**CHSpigot 2.0.4 for Spigot 1.13.2 - 1.18.2**](https://letsbuild.net/jenkins/job/CHSpigot/29/artifact/target/chspigot-2.0.4.jar) (CommandHelper 3.3.4 #3766 - 3.3.5 #255) [Documentation](https://github.com/PseudoKnight/CHSpigot/blob/v2.0.4/README.md)
* [**CHSpigot 1.6.0a for Spigot 1.12.2**](https://github.com/PseudoKnight/CHSpigot/releases/download/v1.6.0a/chspigot-1.6.0.jar) (CommandHelper 3.3.2) [Documentation](https://github.com/PseudoKnight/CHSpigot/blob/v1.6.0a/README.md)
* [**CHSpigot 1.6.0a for Spigot 1.12.2**](https://github.com/PseudoKnight/CHSpigot/releases/tag/v1.6.0a) (CommandHelper 3.3.2) [Documentation](https://github.com/PseudoKnight/CHSpigot/blob/v1.6.0a/README.md)

## Function Documentation

Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>me.pseudoknight</groupId>
<artifactId>chspigot</artifactId>
<version>2.0.6</version>
<version>2.0.7</version>
<name>CHSpigot</name>
<description>Gives access to methods available in Spigot but not Bukkit</description>

Expand Down Expand Up @@ -110,7 +110,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.20.1-R0.1-SNAPSHOT</version>
<version>1.20.4-R0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
26 changes: 22 additions & 4 deletions src/main/java/me/pseudoknight/chspigot/Extension.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,17 @@
import com.laytonsmith.core.Static;
import com.laytonsmith.core.extensions.AbstractExtension;
import com.laytonsmith.core.extensions.MSExtension;
import me.pseudoknight.chspigot.abstraction.spigot.SpigotListeners;
import me.pseudoknight.chspigot.abstraction.bukkit.BukkitMountListener;
import me.pseudoknight.chspigot.abstraction.spigot.SpigotItemDamageListener;
import me.pseudoknight.chspigot.abstraction.spigot.SpigotMountListener;
import me.pseudoknight.chspigot.abstraction.spigot.SpigotSpawnerSpawnListener;

import java.util.logging.Level;

@MSExtension("CHSpigot")
public class Extension extends AbstractExtension {

private final SimpleVersion VERSION = new SimpleVersion(2,0,6);
private final SimpleVersion VERSION = new SimpleVersion(2,0,7);

@Override
public Version getVersion() {
Expand All @@ -21,13 +24,28 @@ public Version getVersion() {

@Override
public void onStartup() {
SpigotListeners.register();
SpigotItemDamageListener.register();
SpigotSpawnerSpawnListener.register();
try {
Class.forName("org.bukkit.event.entity.EntityMountEvent");
BukkitMountListener.register();
} catch (ClassNotFoundException e) {
// changed in 1.20.4
SpigotMountListener.register();
}
Static.getLogger().log(Level.INFO, "CHSpigot " + VERSION + " loaded.");
}

@Override
public void onShutdown() {
SpigotListeners.unregister();
SpigotItemDamageListener.unregister();
SpigotSpawnerSpawnListener.unregister();
try {
Class.forName("org.bukkit.event.entity.EntityMountEvent");
BukkitMountListener.unregister();
} catch (ClassNotFoundException e) {
SpigotMountListener.unregister();
}
Static.getLogger().log(Level.INFO, "CHSpigot " + VERSION + " unloaded.");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
package me.pseudoknight.chspigot.abstraction.bukkit;

import com.laytonsmith.abstraction.Implementation;
import com.laytonsmith.abstraction.MCEntity;
import com.laytonsmith.abstraction.bukkit.entities.BukkitMCEntity;
import com.laytonsmith.annotations.abstraction;
import com.laytonsmith.commandhelper.CommandHelperPlugin;
import com.laytonsmith.core.events.Driver;
import com.laytonsmith.core.events.EventUtils;
import me.pseudoknight.chspigot.abstraction.MCEntityDismountEvent;
import me.pseudoknight.chspigot.abstraction.MCEntityMountEvent;
import org.bukkit.event.Event;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDismountEvent;
import org.bukkit.event.entity.EntityMountEvent;

public class BukkitMountListener implements Listener {

private static BukkitMountListener listener;

public static void register() {
if(listener == null){
listener = new BukkitMountListener();
}
CommandHelperPlugin.self.registerEvents(listener);
}

public static void unregister() {
EntityMountEvent.getHandlerList().unregister(listener);
EntityDismountEvent.getHandlerList().unregister(listener);
}

@EventHandler(priority= EventPriority.LOWEST)
public void onEntityDismount(EntityDismountEvent event) {
BukkitEntityDismountEvent bede = new BukkitEntityDismountEvent(event);
EventUtils.TriggerListener(Driver.EXTENSION, "entity_dismount", bede);
}

@EventHandler(priority= EventPriority.LOWEST)
public void onEntityMount(EntityMountEvent event) {
BukkitEntityMountEvent beme = new BukkitEntityMountEvent(event);
EventUtils.TriggerListener(Driver.EXTENSION, "entity_mount", beme);
}

@abstraction(type = Implementation.Type.BUKKIT)
public static class BukkitEntityMountEvent implements MCEntityMountEvent {
EntityMountEvent e;

public BukkitEntityMountEvent(Event e) {
this.e = (EntityMountEvent) e;
}

@Override
public MCEntity getEntity() {
return new BukkitMCEntity(e.getEntity());
}

@Override
public MCEntity getMount() {
return new BukkitMCEntity(e.getMount());
}

@Override
public Object _GetObject() {
return e;
}
}

@abstraction(type = Implementation.Type.BUKKIT)
public static class BukkitEntityDismountEvent implements MCEntityDismountEvent {
EntityDismountEvent e;

public BukkitEntityDismountEvent(Event e) {
this.e = (EntityDismountEvent) e;
}

@Override
public MCEntity getEntity() {
return new BukkitMCEntity(e.getEntity());
}

@Override
public MCEntity getDismounted() {
return new BukkitMCEntity(e.getDismounted());
}

@Override
public Object _GetObject() {
return e;
}

}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package me.pseudoknight.chspigot.abstraction.spigot;

import com.laytonsmith.abstraction.Implementation;
import com.laytonsmith.abstraction.MCItemStack;
import com.laytonsmith.abstraction.MCPlayer;
import com.laytonsmith.abstraction.bukkit.BukkitMCItemStack;
import com.laytonsmith.abstraction.bukkit.entities.BukkitMCPlayer;
import com.laytonsmith.annotations.abstraction;
import com.laytonsmith.commandhelper.CommandHelperPlugin;
import com.laytonsmith.core.events.Driver;
import com.laytonsmith.core.events.EventUtils;
import me.pseudoknight.chspigot.abstraction.MCPlayerItemDamageEvent;
import org.bukkit.event.Event;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerItemDamageEvent;

public class SpigotItemDamageListener implements Listener {

private static SpigotItemDamageListener listener;

public static void register() {
if (listener == null) {
listener = new SpigotItemDamageListener();
}
CommandHelperPlugin.self.registerEvents(listener);
}

public static void unregister() {
PlayerItemDamageEvent.getHandlerList().unregister(listener);
}

@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerItemDamage(PlayerItemDamageEvent event) {
SpigotPlayerItemDamageEvent spide = new SpigotPlayerItemDamageEvent(event);
EventUtils.TriggerListener(Driver.EXTENSION, "item_damage", spide);
}

@abstraction(type = Implementation.Type.BUKKIT)
public static class SpigotPlayerItemDamageEvent implements MCPlayerItemDamageEvent {
PlayerItemDamageEvent e;

public SpigotPlayerItemDamageEvent(Event e) {
this.e = (PlayerItemDamageEvent) e;
}

@Override
public MCItemStack getItem() {
return new BukkitMCItemStack(e.getItem());
}

@Override
public int getDamage() {
return e.getDamage();
}

@Override
public void setDamage(int damage) {
e.setDamage(damage);
}

@Override
public MCPlayer getPlayer() {
return new BukkitMCPlayer(e.getPlayer());
}

@Override
public Object _GetObject() {
return e;
}
}
}
Loading

0 comments on commit 3d76fbb

Please sign in to comment.