Exemplo n.º 1
0
        public static void SendRegisteredUsersToPlayer(int playerNumber)
        {
            WriteHeader(MessageType.RegisteredUsers);

            //	Console.WriteLine("Buffer Length: " + Writer.BaseStream.Length);

            UserWithID[] players = DatabaseController.GetRegisteredUsers();
            if (players.Length == 0)
            {
                return;
            }
            Writer.Write(players.Length);

            for (int i = 0; i < players.Length; i++)
            {
                Writer.Write(players[i].Username);
                Writer.Write(players[i].ID);
                Writer.Write(players[i].groupID);
            }

            Network.SendDataToPlayer(playerNumber);
        }
Exemplo n.º 2
0
        private static void ProcessTileModificationCheckRequest(ref BinaryReader reader, int playerNumber)
        {
            if (Network.Players[playerNumber].Group.HasPermission("CheckTiles"))
            {
                int x = reader.ReadInt32();
                int y = reader.ReadInt32();

                if (x >= 0 && y >= 0 && x < Main.maxTilesX && y < Main.maxTilesY)
                {
                    int playerID = Network.TileLastChangedBy[x, y];
                    if (playerID >= 0)
                    {
                        UserWithID   user  = null;
                        UserWithID[] users = DatabaseController.GetRegisteredUsers();
                        for (int i = 0; i < users.Length; i++)
                        {
                            if (users[i].ID == playerID)
                            {
                                user = users[i];
                            }
                        }
                        if (user != null)
                        {
                            Network.SendTextToPlayer(string.Format(HEROsMod.HeroText("TileLastModifiedBy"), user.Username), playerNumber);
                        }
                    }
                    else
                    {
                        // TODO: These should all be NetworkText.FromKey so they show up in correct language on Client
                        Network.SendTextToPlayer(HEROsMod.HeroText("TileNotModified"), playerNumber);
                    }
                }
            }
            else
            {
                Network.SendTextToPlayer(HEROsMod.HeroText("YouDontHavePermissionToDoThat"), playerNumber);
            }
        }
Exemplo n.º 3
0
        private static void ProcessTileModificationCheckRequest(ref BinaryReader reader, int playerNumber)
        {
            if (Network.Players[playerNumber].Group.HasPermission("CheckTiles"))
            {
                int x = reader.ReadInt32();
                int y = reader.ReadInt32();

                if (x >= 0 && y >= 0 && x < Main.maxTilesX && y < Main.maxTilesY)
                {
                    int playerID = Network.TileLastChangedBy[x, y];
                    if (playerID >= 0)
                    {
                        UserWithID   user  = null;
                        UserWithID[] users = DatabaseController.GetRegisteredUsers();
                        for (int i = 0; i < users.Length; i++)
                        {
                            if (users[i].ID == playerID)
                            {
                                user = users[i];
                            }
                        }
                        if (user != null)
                        {
                            Network.SendTextToPlayer("Tile last modified by " + user.Username, playerNumber);
                        }
                    }
                    else
                    {
                        Network.SendTextToPlayer("This tile has not been modified since last server boot up.", playerNumber);
                    }
                }
            }
            else
            {
                Network.SendTextToPlayer("You don't have permission to do that.", playerNumber);
            }
        }