Added achievements event and listener in CubotPlugin

This commit is contained in:
Israel Vargas Merljak 2019-11-13 21:24:06 -03:00
parent 2597b558e6
commit edbe613b65
2 changed files with 50 additions and 0 deletions

View File

@ -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();
}
}

View File

@ -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);
}
}
}