56 lines
1.5 KiB
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());
|
|
}
|
|
} |