Exemple #1
0
        public static string dataPacket(ConnectedUser user)
        {
            int[] RoomIDs = MySQL.runReadColumn("SELECT id FROM rooms WHERE owner='"+user._UserID+"'", 0, null);
            RoomDataPacket[] ownRooms = new RoomDataPacket[RoomIDs.Length];
            for (int i = 0; i < RoomIDs.Length; i++)
            {
                string[] roomData = MySQL.runReadRow("SELECT name, descr, max, safe FROM rooms WHERE id = '" + RoomIDs[i] + "'");
                RoomDataPacket getr = new RoomDataPacket();
                getr.I = RoomIDs[i];
                getr.N = roomData[0];
                getr.D = roomData[1];
                getr.O = user._Username;
                if (RoomManager.containsRoom(RoomIDs[i]))
                {
                    getr.U = RoomManager.getRoom(RoomIDs[i]).countUsers();
                }
                else
                {
                    getr.U = 0;
                }
                getr.M = int.Parse(roomData[2]);
                getr.T = "private";
                getr.S = int.Parse(roomData[3]);
                getr.F = 0; //FAVORIET?

                ownRooms[i] = getr;
            }

            NavigatorPacket AllRooms = new NavigatorPacket();
            AllRooms.P = publicRooms;
            AllRooms.R = guestRooms;
            AllRooms.O = ownRooms;
            string AllRoomsString = JsonConvert.SerializeObject(AllRooms);
            return AllRoomsString;
        }
Exemple #2
0
 public static Room joinRoom(ConnectedUser User, int roomID)
 {
     if (!containsRoom(roomID))
     {
         addRoom(roomID, new PrivateRoom(roomID));
         getRoom(roomID).addUser(User);
         return getRoom(roomID);
     }
     else
     {
         getRoom(roomID).addUser(User);
         return getRoom(roomID);
     }
 }
Exemple #3
0
        public static void addUser(int userID, ConnectedUser User)
        {
            if (_Users.ContainsKey(userID))
            {
                ConnectedUser oldUser = ((ConnectedUser)_Users[userID]);
                oldUser.Disconnect();
                if (_Users.ContainsKey(userID))
                    _Users.Remove(userID);
            }

            _Users.Add(userID, User);

            Config.Debug.WriteLine("[" + User.connectionID + "]" + " User [" + User._UserID + "] connected.");

            if (_Users.Count > _peakUserCount)
                _peakUserCount = _Users.Count;

            MySQL.runQuery("UPDATE store_values SET value = '" + _Users.Count + "' WHERE name = 'jabbos_online'");
        }
Exemple #4
0
 public virtual void actionFurni(ConnectedUser User, int I)
 {
 }
Exemple #5
0
 public void vote(string vote, ConnectedUser user)
 {
     if (user._UserID != RoomOwner && !user._Room_Voted)
     {
         if (vote == "up")
         {
             MySQL.runQuery("UPDATE rooms SET score = " + ++score + " WHERE id = '" + RoomID + "'");
         }
         else if (vote == "down")
         {
             MySQL.runQuery("UPDATE rooms SET score = " + --score + " WHERE id = '" + RoomID + "'");
         }
         MySQL.runQuery("INSERT INTO room_votes SET user='******', room='" + RoomID + "'");
         user._Room_Voted = true;
     }
     RoomScorePacket toremove = new RoomScorePacket();
     toremove.S = score;
     string scorePacketString = JsonConvert.SerializeObject(toremove);
     user.sendData("066" + scorePacketString + "#");
 }
Exemple #6
0
 public void userChat(ConnectedUser sender, string message, string userName)
 {
     sendChat(sender._UserID, message, userName);
     foreach (RoomBot Bot in _Bots.Values)
     {
         Bot.DoChat(message, sender);
     }
 }
Exemple #7
0
        public override void loadRoomPacket(ConnectedUser user)
        {
            int votedCheck = int.Parse(MySQL.runRead("SELECT count(user) FROM room_votes WHERE user='******' AND room='" + RoomID + "'"));
            if (votedCheck > 0)
            {
                user._Room_Voted = true;
            }
            else
            {
                user._Room_Voted = false;
            }
            if (user._UserID == RoomOwner)
            {
                user._Room_Voted = true;
            }
            FurniturePacket[] Items = new FurniturePacket[furniture.Count];
            int i = 0;
            foreach (Item itm in furniture.Values)
            {
                FurniturePacket getf = new FurniturePacket();
                getf.I = itm.id;
                getf.T = itm.tile;
                getf.S = itm.stacknr;
                getf.SH = itm.stackheight;
                getf.H = itm.turn;
                getf.A = itm.action;
                getf.F = itm.furni;
                Items[i] = getf;
                i++;
            }
            RoomLoadDataPacket rd = new RoomLoadDataPacket();
            rd.I = RoomID;
            rd.N = RoomName;
            rd.D = RoomDescr;
            rd.O = RoomOwner;
            rd.ON = RoomOwnerName;
            rd.Fl = floorType;
            rd.Wl = wallType;
            rd.L = lang;
            rd.B = breed;
            rd.Do = door;
            rd.M = RoomSize;
            rd.R = user._HasRights;
            rd.H = holes;
            rd.V = user._Room_Voted;
            rd.S = score;
            rd.F = Items;

            string ItemsData = JsonConvert.SerializeObject(rd);
            user.sendData("041" + ItemsData + "#");
        }
Exemple #8
0
        public override void doFurni(ConnectedUser user, int id, string tile)
        {
            bool inRoom = false;
            bool donating = false;
            Item furniData;
            if (furniture.ContainsKey(id))
            {
                furniData = getItem(id);
                inRoom = true;
            }
            else
            {
                 string[] data = MySQL.runReadRow("SELECT owner, room, tile, stacknr, stackheight, turn, action, furni, tradeable FROM items WHERE id = '" + id + "'");
                 furniData = new Item(id, int.Parse(data[0]), int.Parse(data[1]), data[2], int.Parse(data[3]), int.Parse(data[4]), int.Parse(data[5]), int.Parse(data[6]), data[7], int.Parse(data[8]));
            }
            CatalogueManager.ItemTemplate furniTemplate = CatalogueManager.getTemplate(furniData.furni);
            if (user._HasRights)
            {
                List<Point> currentTiles;
                if (furniTemplate.soort != "poster")
                {
                    currentTiles = getCurrentTiles(furniData, inRoom);
                }
                else
                {
                    currentTiles = new List<Point>();
                }
                if (tile == "inv")
                {
                    if (RoomOwner == user._UserID || RankManager.containsRight(user._Rank, "always_pickup"))
                    {
                        // check if it's the room, otherwise: remove from hashtable!
                        if (inRoom)
                        {
                            // remove from room
                            furniture.Remove(id);
                            MySQL.runQuery("UPDATE items SET owner='" + user._UserID + "', room='0', tile='" + tile + "', stacknr='1', stackheight='0', turn='1', action='0' WHERE id='" + id + "'");
                            if (RoomOwner != user._UserID)
                            {
                                MySQL.runQuery("INSERT INTO furni_history SET id='" + id + "', `date`='" + timestamp.get + "', `type`='take', `from`='" + RoomOwner + "', `to`='" + user._UserID + "', credits='0';");
                            }
                            updateHeightmapping();

                            FurniturePacket movePacket = new FurniturePacket();
                            movePacket.I = furniData.id;
                            movePacket.T = tile;
                            movePacket.S = 1;
                            movePacket.SH = 0;
                            movePacket.H = 1;
                            movePacket.A = 0;
                            movePacket.F = furniData.furni;
                            string movePacketString = JsonConvert.SerializeObject(movePacket);
                            user.sendData("047" + movePacketString + "#");

                            FurnitureRemovePacket removePacket = new FurnitureRemovePacket();
                            removePacket.I = furniData.id;
                            string removePacketString = JsonConvert.SerializeObject(removePacket);
                            sendDataButNotTo(user, "048" + removePacketString + "#");

                            // chair stuff
                            if (furniTemplate.soort == "stoel")
                            {
                                StringBuilder sendText = new StringBuilder();
                                for (int i = 0; i < currentTiles.Count; i++)
                                {
                                    Point thisTile = currentTiles[i];
                                    if (_sqUnit[thisTile.X, thisTile.Y] == true)
                                    {
                                        foreach (ConnectedUser seatUser in _Users.Values)
                                        {
                                            if (seatUser._Room_X == thisTile.X && seatUser._Room_Y == thisTile.Y)
                                            {
                                                seatUser._Room_Sit = "";
                                                SetSitPacket setSit = new SetSitPacket();
                                                setSit.I = seatUser._UserID;
                                                setSit.S = seatUser._Room_Sit;
                                                string SetSitPacket = JsonConvert.SerializeObject(setSit);
                                                sendText.Append("080");
                                                sendText.Append(SetSitPacket);
                                                sendText.Append("#");
                                            }
                                        }
                                    }
                                }
                                string sendTextString = sendText.ToString();
                                if (sendTextString != "")
                                {
                                    foreach (ConnectedUser usr in _Users.Values)
                                    {
                                        usr.sendData(sendTextString);
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    if (inRoom || furniData.owner == user._UserID)
                    {
                        // moving or placing in room, not putting in inventory
                        if (!inRoom && furniData.owner == user._UserID && RoomOwner != user._UserID)
                        {
                            donating = true;
                        }
                        if (donating && furniData.tradeable == 0)
                        {
                            // not tradeable
                            user.sendData(user.notify(TextsManager.get("untradeable"), TextsManager.get("notify_default")));
                        }
                        else
                        {
                            if (furniTemplate.soort != "poster")
                            {
                                int X = int.Parse(tile.Split('_')[0]) - 1;
                                int Y = int.Parse(tile.Split('_')[1]) - 1;
                                string check = furniPlaceable(furniData, new int[] { X, Y }, furniData.turn, furniTemplate.lang, furniTemplate.breed, inRoom, currentTiles);
                                if (check == "free")
                                {
                                    furniData.tile = tile;
                                    if (!inRoom)
                                    {
                                        furniture.Add(id, furniData);
                                    }
                                    else
                                    {
                                        furniture[id] = furniData; // update hashtable
                                    }
                                    MySQL.runQuery("UPDATE items SET owner='" + RoomOwner + "', room='" + RoomID + "', tile='" + tile + "' WHERE id='" + id + "'");
                                    if (donating)
                                    {
                                        MySQL.runQuery("INSERT INTO furni_history SET id='" + id + "', `date`='" + timestamp.get + "', `type`='don', `from`='" + user._UserID + "', `to`='" + RoomOwner + "', credits='0';");
                                    }

                                    updateHeightmapping();

                                    FurniturePacket movepacket = new FurniturePacket();
                                    movepacket.I = furniData.id;
                                    movepacket.T = furniData.tile;
                                    movepacket.S = furniData.stacknr;
                                    movepacket.SH = furniData.stackheight;
                                    movepacket.H = furniData.turn;
                                    movepacket.A = furniData.action;
                                    movepacket.F = furniData.furni;
                                    string movepacketstring = JsonConvert.SerializeObject(movepacket);
                                    foreach (ConnectedUser usr in _Users.Values)
                                    {
                                        usr.sendData("047" + movepacketstring + "#");
                                    }

                                    // chair stuff
                                    if (furniTemplate.soort == "stoel" && inRoom)
                                    {
                                        StringBuilder sendText = new StringBuilder();
                                        for (int i = 0; i < currentTiles.Count; i++)
                                        {
                                            Point thisTile = currentTiles[i];
                                            if (_sqUnit[thisTile.X, thisTile.Y] == true)
                                            {
                                                foreach (ConnectedUser seatUser in _Users.Values)
                                                {
                                                    if (seatUser._Room_X == thisTile.X && seatUser._Room_Y == thisTile.Y)
                                                    {
                                                        if (_sqState[seatUser._Room_X, seatUser._Room_Y] == squareState.Seat)
                                                        {
                                                            seatUser._Room_Dir = _sqRot[seatUser._Room_X, seatUser._Room_Y] * 2;
                                                            seatUser._Room_Sit = seatUser._Room_Dir.ToString() + "|" + _sqTile[seatUser._Room_X, seatUser._Room_Y];
                                                        }
                                                        else
                                                        {
                                                            seatUser._Room_Sit = "";
                                                        }
                                                        SetSitPacket setSit = new SetSitPacket();
                                                        setSit.I = seatUser._UserID;
                                                        setSit.S = seatUser._Room_Sit;
                                                        string SetSitPacket = JsonConvert.SerializeObject(setSit);
                                                        sendText.Append("080");
                                                        sendText.Append(SetSitPacket);
                                                        sendText.Append("#");
                                                    }
                                                }
                                            }
                                        }
                                        string sendTextString = sendText.ToString();
                                        if (sendTextString != "")
                                        {
                                            foreach (ConnectedUser usr in _Users.Values)
                                            {
                                                usr.sendData(sendTextString);
                                            }
                                        }
                                    }
                                }
                            }
                            else
                            {
                                if (!inRoom) // only place and pickup poster, don't move them
                                {
                                    string coords = tile.Split('@')[0];
                                    int X = int.Parse(coords.Split('|')[0]);
                                    int Y = int.Parse(coords.Split('|')[1]);
                                    int H = int.Parse(tile.Split('@')[1]);

                                    furniData.tile = coords;
                                    furniData.turn = H;
                                    furniture.Add(id, furniData);

                                    MySQL.runQuery("UPDATE items SET owner='" + RoomOwner + "', room='" + RoomID + "', tile='" + coords + "', turn='" + H + "' WHERE id='" + id + "'");
                                    if (donating)
                                    {
                                        MySQL.runQuery("INSERT INTO furni_history SET id='" + id + "', `date`='" + timestamp.get + "', `type`='don', `from`='" + user._UserID + "', `to`='" + RoomOwner + "', credits='0';");
                                    }

                                    FurniturePacket movepacket = new FurniturePacket();
                                    movepacket.I = furniData.id;
                                    movepacket.T = furniData.tile;
                                    movepacket.S = furniData.stacknr;
                                    movepacket.SH = furniData.stackheight;
                                    movepacket.H = furniData.turn;
                                    movepacket.A = furniData.action;
                                    movepacket.F = furniData.furni;
                                    string movepacketstring = JsonConvert.SerializeObject(movepacket);
                                    foreach (ConnectedUser usr in _Users.Values)
                                    {
                                        usr.sendData("047" + movepacketstring + "#");
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Exemple #9
0
 public void sendDataButNotTo(ConnectedUser NotTo, string Data)
 {
     foreach (ConnectedUser User in _Users.Values)
     {
         if (User != NotTo)
         {
             User.sendData(Data);
         }
     }
 }
Exemple #10
0
        public void removeUser(ConnectedUser userToRemove)
        {
            if (!containsUser(userToRemove._UserID))
            {
                return;
            }

            _Users.Remove(userToRemove._UserID);

            foreach (ConnectedUser usr in _Users.Values)
            {
                RemoveAvatarPacket toremove = new RemoveAvatarPacket();
                toremove.I = userToRemove._UserID;
                string stringtoremove = JsonConvert.SerializeObject(toremove);
                usr.sendData("058" + stringtoremove + "#");
            }

            if (!(userToRemove._Room_X == doorstep_x && userToRemove._Room_Y == doorstep_y))
            {
                try { _sqUnit[userToRemove._Room_X, userToRemove._Room_Y] = false; } catch { }
            }

            userToRemove._Room_X = 0;
            userToRemove._Room_Y = 0;
            userToRemove._Room_X_Target = 0;
            userToRemove._Room_Y_Target = 0;
            userToRemove._HasRights = false;
            userToRemove._Drink = "";
            userToRemove._Brb = 0;
            userToRemove._Room_Sit = "";

            if ((countUsers()) == 0)
            {
                _Users.Clear();
                _Bots.Clear();
                RoomManager.removeRoom(RoomID);
            }
        }
Exemple #11
0
 public virtual void pickAllUp(ConnectedUser User)
 {
 }
Exemple #12
0
 public virtual void loadRoomPacket(ConnectedUser User)
 {
 }
Exemple #13
0
 public void getDrink(string drink, ConnectedUser user)
 {
     if (drink == "" || drink == "camera")
     {
         user._Drink = drink;
         GiveDrinkPacket giveDrink = new GiveDrinkPacket();
         giveDrink.I = user._UserID;
         giveDrink.D = drink;
         string giveDrinkString = JsonConvert.SerializeObject(giveDrink);
         string sendText = "074" + giveDrinkString + "#";
         foreach (ConnectedUser usr in _Users.Values)
         {
             usr.sendData(sendText);
         }
     }
 }
Exemple #14
0
 public virtual void doFurni(ConnectedUser User, int I, string T)
 {
 }
Exemple #15
0
        public void addUser(ConnectedUser User)
        {
            removeUser(User); // just a check

            int users = countUsers();
            if (users < max_users)
            {
                User._Room_X = door_x;
                User._Room_Y = door_y;
                User._Room_Z = 0;
                User._Room_Dir = door_dir * 2;
                User._Room_X_Target = door_x;
                User._Room_Y_Target = door_y;
                User._Drink = "";
                User._Brb = 0;
                User._Room_Sit = "";

                if (RoomOwner == User._UserID || RankManager.containsRight(User._Rank, "always_rights"))
                {
                    User._HasRights = true;
                }
                else
                {
                    if (MySQL.runRead("SELECT userid FROM room_rights WHERE roomid = '" + RoomID + "' AND userid = '" + User._UserID + "'", null) == 0)
                    {
                        User._HasRights = false;
                    }
                    else
                    {
                        User._HasRights = true;
                    }
                }

                loadRoomPacket(User);

                foreach (ConnectedUser usr in _Users.Values)
                {
                    AddAvatarPacket avatars = new AddAvatarPacket();

                    avatars.I = User._UserID;
                    avatars.U = User._Username;
                    avatars.M = User._Mission;
                    avatars.C = User._Figure;
                    avatars.B = User._Badge;
                    avatars.D = User._Drink;
                    avatars.Brb = User._Brb;
                    avatars.S = User._Room_Sit;
                    avatars.X = User._Room_X;
                    avatars.Y = User._Room_Y;
                    avatars.H = User._Room_Dir;
                    avatars.F = User._HasRights;

                    string stringavatars = JsonConvert.SerializeObject(avatars);

                    usr.sendData("056" + stringavatars + "#");
                }

                _Users.Add(User._UserID, User);

                sendRoomData(User);
            }
            else
            {
                // room is full
                sendData("061#");
            }
        }
Exemple #16
0
        public override void turnFurni(ConnectedUser user, int id)
        {
            if (furniture.ContainsKey(id) && user._HasRights)
            {
                Item furniData = getItem(id);
                CatalogueManager.ItemTemplate furniTemplate = CatalogueManager.getTemplate(furniData.furni);
                if (furniData.tile != "inv" && furniTemplate.soort != "poster")
                {
                    int turns = furniTemplate.afb;
                    int turnNow = furniData.turn;
                    int turnNext = turnNow;
                    if (furniTemplate.soort == "stoel" && turns == 1)
                    {
                        turns = 4;
                    }
                    if (turnNow == turns)
                    {
                        turnNext = 1;
                    }
                    else
                    {
                        turnNext = turnNow + 1;
                    }
                    int X = int.Parse(furniData.tile.Split('_')[0]) - 1;
                    int Y = int.Parse(furniData.tile.Split('_')[1]) - 1;
                    List<Point> currentTiles = getCurrentTiles(furniData, true);
                    string check = furniPlaceable(furniData, new int[] { X, Y }, turnNext, furniTemplate.lang, furniTemplate.breed, true, currentTiles);
                    if (check == "free")
                    {
                        furniData.turn = turnNext;
                        furniture[id] = furniData; // update hashtable
                        MySQL.runQuery("UPDATE items SET turn='" + turnNext + "' WHERE id='" + id + "'");
                        updateHeightmapping();

                        FurniturePacket movepacket = new FurniturePacket();
                        movepacket.I = furniData.id;
                        movepacket.T = furniData.tile;
                        movepacket.S = furniData.stacknr;
                        movepacket.SH = furniData.stackheight;
                        movepacket.H = furniData.turn;
                        movepacket.A = furniData.action;
                        movepacket.F = furniData.furni;
                        string movepacketstring = JsonConvert.SerializeObject(movepacket);
                        foreach (ConnectedUser usr in _Users.Values)
                        {
                            usr.sendData("047" + movepacketstring + "#");
                        }
                    }
                    // chair stuff
                    if (furniTemplate.soort == "stoel")
                    {
                        StringBuilder sendText = new StringBuilder();
                        for (int i = 0; i < currentTiles.Count; i++)
                        {
                            Point thisTile = currentTiles[i];
                            if (_sqUnit[thisTile.X, thisTile.Y] == true)
                            {
                                foreach (ConnectedUser seatUser in _Users.Values)
                                {
                                    if (seatUser._Room_X == thisTile.X && seatUser._Room_Y == thisTile.Y)
                                    {
                                        if (_sqState[seatUser._Room_X, seatUser._Room_Y] == squareState.Seat)
                                        {
                                            seatUser._Room_Dir = _sqRot[seatUser._Room_X, seatUser._Room_Y] * 2;
                                            seatUser._Room_Sit = seatUser._Room_Dir.ToString() + "|" + _sqTile[seatUser._Room_X, seatUser._Room_Y];
                                        }
                                        else
                                        {
                                            seatUser._Room_Sit = "";
                                        }
                                        SetSitPacket setSit = new SetSitPacket();
                                        setSit.I = seatUser._UserID;
                                        setSit.S = seatUser._Room_Sit;
                                        string SetSitPacket = JsonConvert.SerializeObject(setSit);
                                        sendText.Append("080");
                                        sendText.Append(SetSitPacket);
                                        sendText.Append("#");
                                    }
                                }
                            }
                        }
                        string sendTextString = sendText.ToString();
                        if (sendTextString != "")
                        {
                            foreach (ConnectedUser usr in _Users.Values)
                            {
                                usr.sendData(sendTextString);
                            }
                        }
                    }
                }
            }
        }
Exemple #17
0
 public void sendRoomData(ConnectedUser User)
 {
     WaitDelegate X = new WaitDelegate(sendRoomData2);
     IAsyncResult ar = X.BeginInvoke(User, null, null);
     ar.AsyncWaitHandle.WaitOne(1000, false);
     if (ar.IsCompleted)
     {
         X.EndInvoke(ar);
     }
 }
Exemple #18
0
        public override void actionFurni(ConnectedUser user, int id)
        {
            if (furniture.ContainsKey(id) && user._HasRights)
            {
                Item furniData = getItem(id);
                CatalogueManager.ItemTemplate furniTemplate = CatalogueManager.getTemplate(furniData.furni);
                if (furniData.tile != "inv" && furniTemplate.action == 1)
                {
                    // don't close door while an avatar is still in it!
                    bool usersInDoor = false;
                    if (furniTemplate.soort == "poort")
                    {
                        int X = int.Parse(furniData.tile.Split('_')[0]) - 1;
                        int Y = int.Parse(furniData.tile.Split('_')[1]) - 1;
                        int lengte = 0;
                        int breedte = 0;
                        switch(furniData.turn) {
                        case 1:
                            lengte = furniTemplate.lang;
                            breedte = furniTemplate.breed;
                            break;
                        case 2:
                            lengte = furniTemplate.breed;
                            breedte = furniTemplate.lang;
                        break;
                        case 3:
                            lengte = furniTemplate.lang;
                            breedte = furniTemplate.breed;
                        break;
                        case 4:
                            lengte = furniTemplate.breed;
                            breedte = furniTemplate.lang;
                        break;
                        }
                        for (int i1 = 0; i1 < lengte; i1++)
                        {
                            for (int i2 = 0; i2 < breedte; i2++)
                            {
                                int thisX = X - i1;
                                int thisY = Y + i2;
                                if (_sqUnit[thisX, thisY])
                                {
                                    usersInDoor = true;
                                }
                            }
                        }
                    }

                    if (!usersInDoor)
                    {
                        int actionNext = 0;
                        if (furniData.action == 1)
                        {
                            actionNext = 0;
                        }
                        else
                        {
                            actionNext = 1;
                        }
                        furniData.action = actionNext;
                        furniture[id] = furniData; // update hashtable
                        MySQL.runQuery("UPDATE items SET action='" + actionNext + "' WHERE id='" + id + "'");
                        updateHeightmapping();

                        FurniturePacket movepacket = new FurniturePacket();
                        movepacket.I = furniData.id;
                        movepacket.T = furniData.tile;
                        movepacket.S = furniData.stacknr;
                        movepacket.SH = furniData.stackheight;
                        movepacket.H = furniData.turn;
                        movepacket.A = furniData.action;
                        movepacket.F = furniData.furni;
                        string movepacketstring = JsonConvert.SerializeObject(movepacket);
                        foreach (ConnectedUser usr in _Users.Values)
                        {
                            usr.sendData("047" + movepacketstring + "#");
                        }
                    }
                }
            }
        }
Exemple #19
0
        public void sendRoomData2(ConnectedUser User)
        {
            string sendText = "";
            foreach (ConnectedUser usr in _Users.Values)
            {
                AddAvatarPacket avatars = new AddAvatarPacket();

                avatars.I = usr._UserID;
                avatars.U = usr._Username;
                avatars.M = usr._Mission;
                avatars.C = usr._Figure;
                avatars.B = usr._Badge;
                avatars.D = usr._Drink;
                avatars.Brb = usr._Brb;
                avatars.S = usr._Room_Sit;
                avatars.X = usr._Room_X;
                avatars.Y = usr._Room_Y;
                avatars.H = usr._Room_Dir;
                avatars.F = false;
                avatars.R = usr._HasRights;

                string stringavatars = JsonConvert.SerializeObject(avatars);

                sendText += "056" + stringavatars + "#";
            }

            foreach (RoomBot bot in _Bots.Values)
            {
                // TODO: make it have a better id and different id
                AddAvatarPacket avatars = new AddAvatarPacket();

                avatars.I = bot._MyAvatarID;
                avatars.U = bot._MyName;
                avatars.M = bot._MyMission;
                avatars.C = bot._MyFigure;
                avatars.B = "7"; // bot badge
                avatars.D = "";
                avatars.Brb = 0;
                avatars.S = bot._Sit;
                avatars.X = bot._MyX;
                avatars.Y = bot._MyY;
                avatars.H = bot._MyZ;
                avatars.F = false;
                avatars.R = false;

                string stringavatars = JsonConvert.SerializeObject(avatars);

                sendText += "056" + stringavatars + "#";
            }
            sendText += "044" + "#";
            User.sendData(sendText);
        }
Exemple #20
0
 public override void pickAllUp(ConnectedUser user)
 {
     if (user._HasRights)
     {
         if (RoomOwner == user._UserID || RankManager.containsRight(user._Rank, "always_pickup"))
         {
             List<int> removeIDs = new List<int>();
             foreach (Item itm in furniture.Values)
             {
                 removeIDs.Add(itm.id);
             }
             removeIDs.ToArray();
             foreach (int furniID in removeIDs)
             {
                 doFurni(user, furniID, "inv");
             }
         }
     }
 }
Exemple #21
0
 public virtual void turnFurni(ConnectedUser User, int I)
 {
 }
Exemple #22
0
        public void DoChat(string Message, ConnectedUser User)
        {
            Message = Message.ToLower();
            string[] messageWords = Message.Split(' ');

            if (chatTriggers != null)
            {
                foreach (chatTrigger Trigger in chatTriggers)
                {
                    for (int i = 0; i < messageWords.Length; i++)
                    {
                        if (messageWords[i] != " " && messageWords[i] != "")
                        {
                            if (Trigger.containsWord(messageWords[i]))
                            {
                                _MyRoom.sendChat(_MyAvatarID, Trigger.Reply, _MyName);
                            }
                        }
                    }
                }
            }
        }
Exemple #23
0
 public void updateBrb(int brb, ConnectedUser user)
 {
     if (brb == 0 || brb == 1)
     {
         user._Brb = brb;
         UpdateBrbPacket updateBrb = new UpdateBrbPacket();
         updateBrb.I = user._UserID;
         updateBrb.Brb = brb;
         string updateBrbString = JsonConvert.SerializeObject(updateBrb);
         string sendText = "082" + updateBrbString + "#";
         foreach (ConnectedUser usr in _Users.Values)
         {
             usr.sendData(sendText);
         }
     }
 }