diff --git a/Plugin Cubot/src/main/java/net/simon987/cubotplugin/event/AchievementEvent.java b/Plugin Cubot/src/main/java/net/simon987/cubotplugin/event/AchievementEvent.java new file mode 100644 index 0000000..76ecb21 --- /dev/null +++ b/Plugin Cubot/src/main/java/net/simon987/cubotplugin/event/AchievementEvent.java @@ -0,0 +1,23 @@ +package net.simon987.cubotplugin.event; + +import net.simon987.server.event.GameEvent; +import net.simon987.server.game.objects.GameObject; + +public class AchievementEvent extends GameEvent { + + private final String achievement; + + public AchievementEvent(GameObject source, String achievement) { + this.achievement = achievement; + setSource(source); + } + + public String getAchievement() { + return achievement; + } + + @Override + public GameObject getSource() { + return (GameObject) super.getSource(); + } +} diff --git a/Plugin Cubot/src/main/java/net/simon987/cubotplugin/event/AchievementListener.java b/Plugin Cubot/src/main/java/net/simon987/cubotplugin/event/AchievementListener.java new file mode 100644 index 0000000..ad60dd5 --- /dev/null +++ b/Plugin Cubot/src/main/java/net/simon987/cubotplugin/event/AchievementListener.java @@ -0,0 +1,27 @@ +package net.simon987.cubotplugin.event; + +import net.simon987.server.event.GameEvent; +import net.simon987.server.event.GameEventListener; +import net.simon987.server.game.objects.ControllableUnit; +import net.simon987.server.game.objects.GameObject; +import net.simon987.server.logging.LogManager; + +public class AchievementListener implements GameEventListener { + @Override + public Class getListenedEventType() { + return AchievementEvent.class; + } + + @Override + public void handle(GameEvent event) { + AchievementEvent achievementEvent = (AchievementEvent) event; + GameObject object = achievementEvent.getSource(); + if (object instanceof ControllableUnit) { + final String achievement = achievementEvent.getAchievement(); + final ControllableUnit unit = (ControllableUnit) object; + LogManager.LOGGER.info(unit.getParent().getUsername() + " Completed achievement: " + achievement); + + ((ControllableUnit) object).getParent().getStats().addToStringSet("achievements", achievement); + } + } +}