Class AgenteSincHora

    • 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 gamerule GAMERULE.
      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 gamerule GAMERULE 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 mapa MUNDOS_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 gamerule GAMERULE.
        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 gamerule GAMERULE 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
    • Constructor Detail

      • AgenteSincHora

        private AgenteSincHora()
        Impide que se generen instancias de esta clase por parte de código externo a esta clase. Permite, por tanto, aplicar el patrón singleton.
    • 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 mapa MUNDOS_Y_GAMERULE.
        Specified by:
        onNewConfig in interface NotificableCambioConfiguracion<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 clase MundosSincronizacion.
      • 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.