Core/src/main/java/eu/univento/core/api/story/StoryMission.java

56 lines
1.5 KiB
Java

/*
* Copyright (c) 2017 univento.eu - All rights reserved
* You are not allowed to use, distribute or modify this code
*/
package eu.univento.core.api.story;
import eu.univento.core.Core;
import eu.univento.core.api.player.CustomPlayer;
import lombok.Data;
import org.bukkit.Bukkit;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager;
import java.util.List;
/**
* @author joethei
* @version 1.0
*/
@Data
public class StoryMission{
private PluginManager pluginManager;
private List<Listener> listeners;
private StoryMissions mission;
private CustomPlayer player;
public StoryMission(StoryMissions mission, CustomPlayer player) {
this.mission = mission;
this.player = player;
this.pluginManager = Bukkit.getPluginManager();
player.getDatabasePlayer().setInDatabase("mission", mission.getId());
setStatus(StoryMissionStatus.RUNNING);
}
public void registerEvent(Listener listener) {
listeners.add(listener);
pluginManager.registerEvents(listener, Core.getInstance());
}
public boolean unregisterEvent(Listener listener) {
HandlerList.unregisterAll(listener);
return listeners.contains(listener) && listeners.remove(listener);
}
public void unregisterEvents() {
listeners.forEach(HandlerList::unregisterAll);
}
public void setStatus(StoryMissionStatus status) {
player.getDatabasePlayer().setInDatabase("missionStatus", status.name());
}
}