Class AgenteSincHora
- java.lang.Object
-
- io.github.alextmjugador.khron.tiemporeal.AgenteSincHora
-
- All Implemented Interfaces:
NotificableCambioConfiguracion<Set<org.bukkit.World>>
,org.bukkit.event.Listener
final class AgenteSincHora extends Object implements org.bukkit.event.Listener, NotificableCambioConfiguracion<Set<org.bukkit.World>>
Implementa un agente de sincronización de hora real con la del juego.- Author:
- AlexTMjugador
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
AgenteSincHora.SincronizarTiempo
Tarea para sincronizar la hora del día de todos los mundos configurados con la del servidor.
-
Field Summary
Fields Modifier and Type Field Description private static AgenteSincHora
ash
Guarda una referencia al primer (y único) objeto creado de esta clase.private static String
COMANDO_GAMERULE
El comando que se usa para cambiar el valor del gamerule doDaylightCycle.private static String
ERROR_GAMERULE
Error a mostrar cuando un operador o la consola intenten cambiar el gameruleGAMERULE
.private static PluginTiempoReal
estePlugin
Guarda una referencia al plugin que contiene y provee este agente.private static org.bukkit.GameRule<Boolean>
GAMERULE
La gamerule que nos interesa controlar en este plugin: el ciclo día-noche.private byte
horaActual
La hora actual en el mundo.private byte
minutoActual
El minuto de la hora actual en el mundo.private static Map<org.bukkit.World,Boolean>
MUNDOS_Y_GAMERULE
Contiene los mundos en los que está actuando este agente, además del estado inicial de la gameruleGAMERULE
para cada mundo, antes de que este plugin lo estableciese.private org.bukkit.scheduler.BukkitTask
tareaSincHora
La tarea de sincronización de hora usada por este agente para lograr su propósito.private static int
TICKS_SINC_HORA
Los ticks que transcurrirán entre dos sincronizaciones consecutivas de la hora del servidor con las horas de los mundos.
-
Constructor Summary
Constructors Modifier Constructor Description private
AgenteSincHora()
Impide que se generen instancias de esta clase por parte de código externo a esta clase.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static AgenteSincHora
get()
Crea un nuevo agente de sincronización de hora real con la del juego, registrando los eventos que maneja en el proceso, u obtiene el ya creado.byte
getHora(org.bukkit.World w)
Obtiene la hora actual de un mundo, que coincide, como máximo con un pequeño retraso, con la real, si este agente sincroniza la hora en él.byte
getMinuto(org.bukkit.World w)
Obtiene el minuto de la hora actual del juego, que coincide, como máximo con un pequeño retraso, con el de la real, si este agente sincroniza la hora en él.void
onNewConfig(Set<org.bukkit.World> antiguoValor, Set<org.bukkit.World> nuevoValor)
Se asegura de que la gamerule de ciclo día-noche se restablece consistentemente en mundos que ya no se controlen, y coloca nuevos mundos en el mapaMUNDOS_Y_GAMERULE
.void
onPlayerCommand(org.bukkit.event.player.PlayerCommandPreprocessEvent event)
Cancela el comando de cambiar el ciclo día-noche puesto por un jugador en un mundo controlado por este agente.void
onServerCommand(org.bukkit.event.server.ServerCommandEvent event)
Cancela el comando de cambiar el ciclo día-noche puesto por el servidor.void
onWorldLoad(org.bukkit.event.world.WorldLoadEvent event)
Detiene el ciclo natural día-noche de Minecraft de un mundo que se carga, si está en el conjunto de mundos en los que este plugin sincronizará la hora.void
onWorldUnload(org.bukkit.event.world.WorldUnloadEvent event)
Restablece el ciclo natural día-noche de Minecraft de un mundo que se descarga, si es necesario.private void
sincronizarHoraMundo(org.bukkit.World w)
Añade el mundo especificado al mapa de mundos a sincronizar, sin importar si está en la configuración o no.
-
-
-
Field Detail
-
horaActual
private byte horaActual
La hora actual en el mundo.
-
minutoActual
private byte minutoActual
El minuto de la hora actual en el mundo.
-
tareaSincHora
private org.bukkit.scheduler.BukkitTask tareaSincHora
La tarea de sincronización de hora usada por este agente para lograr su propósito.
-
ash
private static AgenteSincHora ash
Guarda una referencia al primer (y único) objeto creado de esta clase.
-
estePlugin
private static PluginTiempoReal estePlugin
Guarda una referencia al plugin que contiene y provee este agente.
-
GAMERULE
private static final org.bukkit.GameRule<Boolean> GAMERULE
La gamerule que nos interesa controlar en este plugin: el ciclo día-noche.
-
ERROR_GAMERULE
private static final String ERROR_GAMERULE
Error a mostrar cuando un operador o la consola intenten cambiar el gameruleGAMERULE
.- See Also:
- Constant Field Values
-
COMANDO_GAMERULE
private static final String COMANDO_GAMERULE
El comando que se usa para cambiar el valor del gamerule doDaylightCycle.
-
MUNDOS_Y_GAMERULE
private static final Map<org.bukkit.World,Boolean> MUNDOS_Y_GAMERULE
Contiene los mundos en los que está actuando este agente, además del estado inicial de la gameruleGAMERULE
para cada mundo, antes de que este plugin lo estableciese.
-
TICKS_SINC_HORA
private static final int TICKS_SINC_HORA
Los ticks que transcurrirán entre dos sincronizaciones consecutivas de la hora del servidor con las horas de los mundos.- See Also:
- Constant Field Values
-
-
Method Detail
-
get
public static AgenteSincHora get()
Crea un nuevo agente de sincronización de hora real con la del juego, registrando los eventos que maneja en el proceso, u obtiene el ya creado.- Returns:
- El agente de sincronización de hora descrito.
-
onWorldLoad
public void onWorldLoad(org.bukkit.event.world.WorldLoadEvent event)
Detiene el ciclo natural día-noche de Minecraft de un mundo que se carga, si está en el conjunto de mundos en los que este plugin sincronizará la hora.- Parameters:
event
- El evento de carga del mundo.
-
onWorldUnload
public void onWorldUnload(org.bukkit.event.world.WorldUnloadEvent event)
Restablece el ciclo natural día-noche de Minecraft de un mundo que se descarga, si es necesario.- Parameters:
event
- El evento de descarga del mundo.
-
onNewConfig
public void onNewConfig(Set<org.bukkit.World> antiguoValor, Set<org.bukkit.World> nuevoValor)
Se asegura de que la gamerule de ciclo día-noche se restablece consistentemente en mundos que ya no se controlen, y coloca nuevos mundos en el mapaMUNDOS_Y_GAMERULE
.- Specified by:
onNewConfig
in interfaceNotificableCambioConfiguracion<Set<org.bukkit.World>>
- Parameters:
antiguoValor
- El antiguo valor que tomaba la configuración.nuevoValor
- El nuevo valor que va a tomar la configuración, cuyo tipo es determinado por la claseMundosSincronizacion
.
-
onPlayerCommand
public void onPlayerCommand(org.bukkit.event.player.PlayerCommandPreprocessEvent event)
Cancela el comando de cambiar el ciclo día-noche puesto por un jugador en un mundo controlado por este agente.- Parameters:
event
- El evento de comando puesto por un jugador.
-
onServerCommand
public void onServerCommand(org.bukkit.event.server.ServerCommandEvent event)
Cancela el comando de cambiar el ciclo día-noche puesto por el servidor.- Parameters:
event
- El evento de comando puesto por el servidor.
-
getHora
public byte getHora(org.bukkit.World w)
Obtiene la hora actual de un mundo, que coincide, como máximo con un pequeño retraso, con la real, si este agente sincroniza la hora en él.- Parameters:
w
- El mundo del que obtener la hora.- Returns:
- La hora actual del mundo. Puede ser negativa si la hora aún no fue sincronizada cuando debería.
-
getMinuto
public byte getMinuto(org.bukkit.World w)
Obtiene el minuto de la hora actual del juego, que coincide, como máximo con un pequeño retraso, con el de la real, si este agente sincroniza la hora en él.- Parameters:
w
- El mundo del que obtener el minuto.- Returns:
- El minuto actual del juego. Puede ser negativo si la hora aún no fue sincronizada cuando debería.
-
sincronizarHoraMundo
private void sincronizarHoraMundo(org.bukkit.World w)
Añade el mundo especificado al mapa de mundos a sincronizar, sin importar si está en la configuración o no.- Parameters:
w
- El mundo a añadir.
-
-