public static void HandleGameEvent(byte eventID, Packet p, NetworkPlayer player) { switch ((GameEvents)eventID) { case GameEvents.Player_Drop_Item: ServerItem inHand = player.Inventory.GetPlayerItemInHand(); if (inHand == null) break; player.DropItem(); break; case GameEvents.Player_Use_Item: short x = p.ReadShort(); short y = p.ReadShort(); ServerItem itemInHand = player.Inventory.GetPlayerItemInHand(); if (itemInHand == null) break; itemInHand.OnItemUsed(x, y, player); break; case GameEvents.Player_Use_Block: x = p.ReadShort(); y = p.ReadShort(); Block b = GetBlockAt(x, y).Block; b.OnBlockUsed(x, y, player); break; case GameEvents.Player_Pickup_Block: x = p.ReadShort(); y = p.ReadShort(); if (player.PClass is PlayerClassDestroyer) { if (Math.Abs(player.EntityPosition.X / BlockSize - (float)(x)) < 2 && Math.Abs(player.EntityPosition.Y / BlockSize - (float)(y)) < 2) ((PlayerClassDestroyer)player.PClass).PickupBlock(new Vector2(x, y)); } break; case GameEvents.Player_Place_Block: if (player.PClass is PlayerClassDestroyer) { ((PlayerClassDestroyer)player.PClass).PlaceBlock(); } break; case GameEvents.Player_Inventory_Selection_Change: player.SetPlayerEquippedSlot(p.ReadByte()); player.SendEquippedItemUpdate(); break; case GameEvents.Player_Chat: bool teamChat = p.ReadBool(); string chatText = p.ReadString(); ServerConsole.Log(player.PlayerName + ": " + chatText); Packet1SCGameEvent pack = new Packet1SCGameEvent(GameEvents.Player_Chat, (byte)player.PlayerID, (bool)teamChat, chatText); ServerNetworkManager.SendPacket(pack); break; case GameEvents.Player_Change_Name: string newName = p.ReadString(); if (newName.Length > 0) { player.PlayerName = newName; pack = new Packet1SCGameEvent(GameEvents.Player_Change_Name, (byte)player.PlayerID, newName); ServerNetworkManager.SendPacket(pack); } break; case GameEvents.Player_Choose_Team: int team = p.ReadByte(); if (team != 0 && team != 1) return; if (team == player.PlayerTeam) return; player.PlayerTeam = team; GameMode.OnPlayerChooseTeam(player, team); player.HurtPlayer(10000); Packet newP = new Packet1SCGameEvent(GameEvents.Player_Choose_Team, (byte)player.PlayerID, (byte)team); ServerNetworkManager.SendPacket(newP); break; } }