Exemplo n.º 1
0
        public override void Load(bool startup)
        {
            Command.Register(new CmdReloadEffects());
            Command.Register(new CmdEffect());
            Command.Register(new CmdSpawner());

            rnd = new Random();
            LoadEffects();
            DefineEffectsAll();

            playerEffects = PlayerExtList.Load("extra/playereffects.txt");

            OnPlayerMoveEvent.Register(OnPlayerMove, Priority.Low);
            OnPlayerFinishConnectingEvent.Register(OnPlayerFinishConnecting, Priority.Low);
            OnLevelLoadedEvent.Register(OnLevelLoaded, Priority.Low);
            OnLevelUnloadEvent.Register(OnLevelUnload, Priority.Low);
            OnLevelDeletedEvent.Register(OnLevelDeleted, Priority.Low);
            OnLevelCopiedEvent.Register(OnLevelCopied, Priority.Low);
            OnLevelRenamedEvent.Register(OnLevelRenamed, Priority.Low);

            SpawnersFile.cache = new ThreadSafeCache();
            if (!Directory.Exists(SpawnersFile.spawnerDirectory))
            {
                Directory.CreateDirectory(SpawnersFile.spawnerDirectory);
            }
            Level[] levels = LevelInfo.Loaded.Items;
            foreach (Level level in levels)
            {
                SpawnersFile.Load(level);
            }
            spawnerAccum = 0;
            ActivateSpawners();
        }
Exemplo n.º 2
0
 public override void Unload(bool shutdown)
 {
     OnPlayerMoveEvent.Unregister(HandlePlayerMove);
     OnPlayerDisconnectEvent.Unregister(HandlePlayerDisconnect);
     OnLevelUnloadEvent.Unregister(HandleLevelUnload);
     OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning);
 }
Exemplo n.º 3
0
 public override void Load(bool startup)
 {
     OnPlayerMoveEvent.Register(HandlePlayerMove, Priority.High);
     OnPlayerDisconnectEvent.Register(HandlePlayerDisconnect, Priority.High);
     OnLevelUnloadEvent.Register(HandleLevelUnload, Priority.High);
     OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High);
 }
Exemplo n.º 4
0
        protected override void UnhookEventHandlers()
        {
            OnPlayerMoveEvent.Unregister(HandlePlayerMove);
            OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning);
            OnJoinedLevelEvent.Unregister(HandleOnJoinedLevel);

            base.UnhookEventHandlers();
        }
Exemplo n.º 5
0
        protected override void HookEventHandlers()
        {
            OnPlayerMoveEvent.Register(HandlePlayerMove, Priority.High);
            OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High);
            OnJoinedLevelEvent.Register(HandleOnJoinedLevel, Priority.High);

            base.HookEventHandlers();
        }
Exemplo n.º 6
0
 public static void InitHandlers()
 {
     OnPlayerConnectEvent.Register(OnConnect, Priority.High);
     OnPlayerDisconnectEvent.Register(OnLeave, Priority.High);
     OnPlayerMoveEvent.Register(OnMovement, Priority.High);
     OnPlayerClickEvent.Register(OnClick, Priority.High);
     OnPlayerChatEvent.Register(OnChat, Priority.High);
     OnTabListEntryAddedEvent.Register(HUD.GetTabName, Priority.High);
     OnPlayerActionEvent.Register(OnAFK, Priority.Normal);
 }
Exemplo n.º 7
0
        void HandleMovement(byte[] buffer, int offset)
        {
            if (!loggedIn || trainGrab || following.Length > 0)
            {
                CheckBlocks(Pos); return;
            }
            if (Supports(CpeExt.HeldBlock))
            {
                RawHeldBlock = ExtBlock.FromRaw(buffer[offset + 1]);
            }

            int x, y, z;

            if (hasExtPositions)
            {
                x       = NetUtils.ReadI32(buffer, offset + 2);
                y       = NetUtils.ReadI32(buffer, offset + 6);
                z       = NetUtils.ReadI32(buffer, offset + 10);
                offset += 6; // for yaw/pitch offset below
            }
            else
            {
                x = NetUtils.ReadI16(buffer, offset + 2);
                y = NetUtils.ReadI16(buffer, offset + 4);
                z = NetUtils.ReadI16(buffer, offset + 6);
            }

            byte     yaw = buffer[offset + 8], pitch = buffer[offset + 9];
            Position next = new Position(x, y, z);

            CheckBlocks(next);

            OnPlayerMoveEvent.Call(this, next, yaw, pitch);
            if (cancelmove)
            {
                cancelmove = false; return;
            }

            Pos = next;
            SetYawPitch(yaw, pitch);
            if (!Moved() || Loading)
            {
                return;
            }
            if (DateTime.UtcNow < AFKCooldown)
            {
                return;
            }

            LastAction = DateTime.UtcNow;
            if (IsAfk)
            {
                CmdAfk.ToggleAfk(this, "");
            }
        }
Exemplo n.º 8
0
 public override void Unload(bool shutdown)
 {
     OnEntitySpawnedEvent.Unregister(HandleEntitySpawned);
     OnTabListEntryAddedEvent.Unregister(HandleTabListEntryAdded);
     OnMoneyChangedEvent.Unregister(HandleMoneyChanged);
     OnPlayerConnectEvent.Unregister(HandlePlayerConnect);
     OnPlayerDisconnectEvent.Unregister(HandlePlayerDisconnect);
     OnPlayerMoveEvent.Unregister(HandlePlayerMove);
     OnPlayerActionEvent.Unregister(HandlePlayerAction);
     OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning);
     OnBlockChangeEvent.Unregister(HandleBlockChange);
     OnLevelUnloadEvent.Unregister(HandleLevelUnload);
 }
Exemplo n.º 9
0
 public override void Load(bool startup)
 {
     OnEntitySpawnedEvent.Register(HandleEntitySpawned, Priority.High);
     OnTabListEntryAddedEvent.Register(HandleTabListEntryAdded, Priority.High);
     OnMoneyChangedEvent.Register(HandleMoneyChanged, Priority.High);
     OnPlayerConnectEvent.Register(HandlePlayerConnect, Priority.High);
     OnPlayerDisconnectEvent.Register(HandlePlayerDisconnect, Priority.High);
     OnPlayerMoveEvent.Register(HandlePlayerMove, Priority.High);
     OnPlayerActionEvent.Register(HandlePlayerAction, Priority.High);
     OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High);
     OnBlockChangeEvent.Register(HandleBlockChange, Priority.High);
     OnLevelUnloadEvent.Register(HandleLevelUnload, Priority.High);
 }
Exemplo n.º 10
0
 public override void Unload(bool shutdown) {
     OnPlayerConnectEvent.Unregister(ConnectHandler.HandleConnect);
     OnPlayerCommandEvent.Unregister(ChatHandler.HandleCommand);
     OnChatEvent.Unregister(ChatHandler.HandleOnChat);
     OnPlayerStartConnectingEvent.Unregister(ConnectingHandler.HandleConnecting);
     
     OnSentMapEvent.Unregister(MiscHandlers.HandleOnMapSent);
     OnPlayerMoveEvent.Unregister(MiscHandlers.HandlePlayerMove);
     OnPlayerClickEvent.Unregister(MiscHandlers.HandlePlayerClick);
     
     OnEcoTransactionEvent.Unregister(EcoHandlers.HandleEcoTransaction);
     OnModActionEvent.Unregister(ModActionHandler.HandleModAction);            
     Server.Background.Cancel(clearTask);
 }
Exemplo n.º 11
0
        public override void Load(bool startup)
        {
            OnPlayerConnectEvent.Register(ConnectHandler.HandleConnect, Priority.Critical);
            OnPlayerCommandEvent.Register(ChatHandler.HandleCommand, Priority.Critical);
            OnChatEvent.Register(ChatHandler.HandleOnChat, Priority.Critical);
            OnPlayerStartConnectingEvent.Register(ConnectingHandler.HandleConnecting, Priority.Critical);

            OnSentMapEvent.Register(MiscHandlers.HandleSentMap, Priority.Critical);
            OnPlayerMoveEvent.Register(MiscHandlers.HandlePlayerMove, Priority.Critical);
            OnPlayerClickEvent.Register(MiscHandlers.HandlePlayerClick, Priority.Critical);
            OnChangedZoneEvent.Register(MiscHandlers.HandleChangedZone, Priority.Critical);

            OnEcoTransactionEvent.Register(EcoHandlers.HandleEcoTransaction, Priority.Critical);
            OnModActionEvent.Register(ModActionHandler.HandleModAction, Priority.Critical);
        }
Exemplo n.º 12
0
        protected override void HookEventHandlers()
        {
            OnEntitySpawnedEvent.Register(HandleEntitySpawned, Priority.High);
            OnTabListEntryAddedEvent.Register(HandleTabListEntryAdded, Priority.High);
            OnMoneyChangedEvent.Register(HandleMoneyChanged, Priority.High);
            OnBlockChangeEvent.Register(HandleBlockChange, Priority.High);

            OnPlayerConnectEvent.Register(HandlePlayerConnect, Priority.High);
            OnPlayerMoveEvent.Register(HandlePlayerMove, Priority.High);
            OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High);
            OnJoinedLevelEvent.Register(HandleJoinedLevel, Priority.High);
            OnPlayerChatEvent.Register(HandlePlayerChat, Priority.High);

            base.HookEventHandlers();
        }
Exemplo n.º 13
0
        protected override void UnhookEventHandlers()
        {
            OnEntitySpawnedEvent.Unregister(HandleEntitySpawned);
            OnTabListEntryAddedEvent.Unregister(HandleTabListEntryAdded);
            OnMoneyChangedEvent.Unregister(HandleMoneyChanged);
            OnBlockChangeEvent.Unregister(HandleBlockChange);

            OnPlayerConnectEvent.Unregister(HandlePlayerConnect);
            OnPlayerMoveEvent.Unregister(HandlePlayerMove);
            OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning);
            OnJoinedLevelEvent.Unregister(HandleJoinedLevel);
            OnPlayerChatEvent.Unregister(HandlePlayerChat);

            base.UnhookEventHandlers();
        }
Exemplo n.º 14
0
 public override void Load(bool startup) {
     OnPlayerConnectEvent.Register(ConnectHandler.HandleConnect, Priority.Critical);
     OnPlayerCommandEvent.Register(ChatHandler.HandleCommand, Priority.Critical);
     OnChatEvent.Register(ChatHandler.HandleOnChat, Priority.Critical);
     OnPlayerStartConnectingEvent.Register(ConnectingHandler.HandleConnecting, Priority.Critical);
     
     OnSentMapEvent.Register(MiscHandlers.HandleOnMapSent, Priority.Critical);
     OnPlayerMoveEvent.Register(MiscHandlers.HandlePlayerMove, Priority.Critical);
     OnPlayerClickEvent.Register(MiscHandlers.HandlePlayerClick, Priority.Critical);
     
     OnEcoTransactionEvent.Register(EcoHandlers.HandleEcoTransaction, Priority.Critical);
     OnModActionEvent.Register(ModActionHandler.HandleModAction, Priority.Critical);
     clearTask = Server.Background.QueueRepeat(IPThrottler.CleanupTask, null, 
                                               TimeSpan.FromMinutes(10));
 }
Exemplo n.º 15
0
        public override void Unload(bool shutdown)
        {
            OnPlayerConnectEvent.Unregister(ConnectHandler.HandleConnect);
            OnPlayerCommandEvent.Unregister(ChatHandler.HandleCommand);
            OnChatEvent.Unregister(ChatHandler.HandleOnChat);
            OnPlayerStartConnectingEvent.Unregister(ConnectingHandler.HandleConnecting);

            OnSentMapEvent.Unregister(MiscHandlers.HandleSentMap);
            OnPlayerMoveEvent.Unregister(MiscHandlers.HandlePlayerMove);
            OnPlayerClickEvent.Unregister(MiscHandlers.HandlePlayerClick);
            OnChangedZoneEvent.Unregister(MiscHandlers.HandleChangedZone);

            OnEcoTransactionEvent.Unregister(EcoHandlers.HandleEcoTransaction);
            OnModActionEvent.Unregister(ModActionHandler.HandleModAction);
        }
Exemplo n.º 16
0
        public override void Unload(bool shutdown)
        {
            Command.Unregister(Command.Find("ReloadEffects"));
            Command.Unregister(Command.Find("Effect"));
            Command.Unregister(Command.Find("Spawner"));

            OnPlayerMoveEvent.Unregister(OnPlayerMove);
            OnPlayerFinishConnectingEvent.Unregister(OnPlayerFinishConnecting);
            OnLevelLoadedEvent.Unregister(OnLevelLoaded);
            OnLevelUnloadEvent.Unregister(OnLevelUnload);
            OnLevelDeletedEvent.Unregister(OnLevelDeleted);
            OnLevelCopiedEvent.Unregister(OnLevelCopied);
            OnLevelRenamedEvent.Unregister(OnLevelRenamed);

            spawnersAtLevel.Clear();
            instance.Cancel(tickSpawners);
        }
Exemplo n.º 17
0
        public void ProcessMovement(int x, int y, int z, byte yaw, byte pitch, int held)
        {
            if (held >= 0)
            {
                ClientHeldBlock = (BlockID)held;
            }

            if (trainGrab || following.Length > 0)
            {
                CheckBlocks(Pos, Pos); return;
            }
            Position next = new Position(x, y, z);

            CheckBlocks(Pos, next);

            bool cancel = false;

            OnPlayerMoveEvent.Call(this, next, yaw, pitch, ref cancel);
            if (cancel)
            {
                cancel = false; return;
            }

            Pos = next;
            SetYawPitch(yaw, pitch);
            CheckZones(next);

            if (!Moved() || Loading)
            {
                return;
            }
            if (DateTime.UtcNow < AFKCooldown)
            {
                return;
            }

            LastAction = DateTime.UtcNow;
            if (IsAfk)
            {
                CmdAfk.ToggleAfk(this, "");
            }
        }
Exemplo n.º 18
0
 public void NextTurn()
 {
     OnPlayerMoveEvent?.Invoke();
     turnCount++;
 }