예제 #1
0
        private static void smethod_22(Session session_0, ClientMessage clientMessage_0)
        {
            uint          actorId           = clientMessage_0.ReadUnsignedInteger();
            uint          num2              = clientMessage_0.ReadUnsignedInteger();
            SpaceInstance instanceBySpaceId = SpaceManager.GetInstanceBySpaceId(session_0.CurrentSpaceId);

            if (instanceBySpaceId != null)
            {
                SpaceActor actor  = instanceBySpaceId.GetActor(actorId);
                SpaceActor actor2 = instanceBySpaceId.GetActor(num2);
                if ((actor != null) && (actor2 != null) && ChatCommands.block_coco == false)
                {
                    CharacterInfo referenceObject = (CharacterInfo)actor.ReferenceObject;
                    CharacterInfo info2           = (CharacterInfo)actor2.ReferenceObject;
                    if (!actor2.IsLocked)
                    {
                        using (SqlDatabaseClient client = SqlDatabaseManager.GetClient())
                        {
                            referenceObject.UpdateGoldCreditsBalance(client, -200);//Coconut cost 10
                            referenceObject.UpdateCoconuts(client, true);
                            info2.UpdateCoconuts(client, false);
                            session_0.SendData(CharacterCoinsComposer.RemoveGoldCompose(200), false);//Coconut cost 10
                            instanceBySpaceId.BroadcastMessage(SpaceUpdateUserStatistics.Compose(actor, 5), 0, false);
                            instanceBySpaceId.BroadcastMessage(SpaceUpdateUserStatistics.Compose(actor2, 5), 0, false);
                            actor2.Lock(6, false, true);
                            instanceBySpaceId.BroadcastMessage(SpaceUserSendCoconut.SendAndBlock(actor2.ReferenceId), 0, false);
                        }
                    }
                }
            }
        }
예제 #2
0
        private static void smethod_21(Session session_0, ClientMessage clientMessage_0)
        {
            uint num2 = clientMessage_0.ReadUnsignedInteger();

            SpaceInstance instanceBySpaceId = SpaceManager.GetInstanceBySpaceId(session_0.CurrentSpaceId);

            if (instanceBySpaceId != null)
            {
                SpaceActor actor  = instanceBySpaceId.GetActorByReferenceId(session_0.CharacterId, SpaceActorType.UserCharacter);
                SpaceActor actor2 = instanceBySpaceId.GetActor(num2);
                if ((actor != null) && (actor2 != null))
                {
                    CharacterInfo referenceObject = (CharacterInfo)actor.ReferenceObject;
                    CharacterInfo info2           = (CharacterInfo)actor2.ReferenceObject;
                    if (!actor.IsLocked && !actor2.IsLocked)
                    {
                        actor.StopMoving();
                        using (SqlDatabaseClient client = SqlDatabaseManager.GetClient())
                        {
                            referenceObject.UpdateGoldCreditsBalance(client, -250);
                            referenceObject.UpdateUppercuts(client, true);
                            info2.UpdateUppercuts(client, false);
                            session_0.SendData(CharacterCoinsComposer.RemoveGoldCompose(250));
                            instanceBySpaceId.BroadcastMessage(SpaceUpdateUserStatistics.Compose(actor, 4), 0, false);
                            instanceBySpaceId.BroadcastMessage(SpaceUpdateUserStatistics.Compose(actor2, 4), 0, false);
                            actor.Lock(20, true, false);
                            actor2.Lock(20, true, false);
                            instanceBySpaceId.BroadcastMessage(SpaceUserSendUppercut.Compose(actor, actor2), 0, false);
                        }
                    }
                }
            }
        }
예제 #3
0
        private static void smethod_21(Session session_0, ClientMessage clientMessage_0)
        {
            clientMessage_0.ReadInteger();
            uint actorId = clientMessage_0.ReadUnsignedInteger();

            clientMessage_0.ReadInteger();
            clientMessage_0.ReadInteger();
            uint num2 = clientMessage_0.ReadUnsignedInteger();

            clientMessage_0.ReadInteger();
            clientMessage_0.ReadInteger();
            SpaceInstance instanceBySpaceId = SpaceManager.GetInstanceBySpaceId(session_0.CurrentSpaceId);

            if (instanceBySpaceId != null)
            {
                SpaceActor actor  = instanceBySpaceId.GetActor(actorId);
                SpaceActor actor2 = instanceBySpaceId.GetActor(num2);
                uint       ID1    = CharacterResolverCache.GetUidFromName(actor.Name);
                uint       ID2    = CharacterResolverCache.GetUidFromName(actor2.Name);
                if ((actor != null) && (actor2 != null))
                {
                    CharacterInfo referenceObject = (CharacterInfo)actor.ReferenceObject;
                    CharacterInfo info2           = (CharacterInfo)actor2.ReferenceObject;
                    if (!actor.IsLocked && !actor2.IsLocked && ChatCommands.block_upper == false && !ChatCommands.UpperBlock.Contains(actor2.Name) && !ChatCommands.UpperBlockUser.Contains(ID1) && !ChatCommands.UpperBlockUser.Contains(ID2))
                    {
                        actor.StopMoving();
                        using (SqlDatabaseClient client = SqlDatabaseManager.GetClient())
                        {
                            if (referenceObject.Staff == 1)
                            {
                                referenceObject.UpdateGoldCreditsBalance(client, -250);//Punch cost 500
                                referenceObject.UpdateUppercuts(client, true);
                                info2.UpdateUppercuts(client, false);
                                session_0.SendData(CharacterCoinsComposer.RemoveGoldCompose(250), false);//Punch cost 500
                                instanceBySpaceId.BroadcastMessage(SpaceUpdateUserStatistics.Compose(actor, 4), 0, false);
                                instanceBySpaceId.BroadcastMessage(SpaceUpdateUserStatistics.Compose(actor2, 4), 0, false);
                                actor.Lock(13, false, false);
                                actor2.Lock(10, true, false);
                                instanceBySpaceId.BroadcastMessage(SpaceUserSendUppercut.Compose(actor, actor2), 0, false);
                            }
                            else
                            {
                                referenceObject.UpdateGoldCreditsBalance(client, -250);//Punch cost 200
                                referenceObject.UpdateUppercuts(client, true);
                                info2.UpdateUppercuts(client, false);
                                session_0.SendData(CharacterCoinsComposer.RemoveGoldCompose(250), false);//Punch cost 200
                                instanceBySpaceId.BroadcastMessage(SpaceUpdateUserStatistics.Compose(actor, 4), 0, false);
                                instanceBySpaceId.BroadcastMessage(SpaceUpdateUserStatistics.Compose(actor2, 4), 0, false);
                                actor.Lock(13, false, false);
                                actor2.Lock(10, true, false);
                                instanceBySpaceId.BroadcastMessage(SpaceUserSendUppercut.Compose(actor, actor2), 0, false);
                            }
                        }
                    }
                }
            }
        }
예제 #4
0
        public static bool HandleCommand(Session Session, string Input)
        {
            Input = Input.Substring(1, Input.Length - 1);
            string[]      input             = Input.Split(new char[] { ' ' });
            SpaceInstance instanceBySpaceId = SpaceManager.GetInstanceBySpaceId(Session.CurrentSpaceId);
            SpaceActor    actor             = (instanceBySpaceId == null) ? null : instanceBySpaceId.GetActorByReferenceId(Session.CharacterId, SpaceActorType.UserCharacter);
            CharacterInfo referenceObject   = (CharacterInfo)actor.ReferenceObject;

            switch (input[0])
            {
            case "position":
                if (referenceObject.Staff == 1 || referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    Session.SendData(SpaceChatComposer.Compose(0, string.Concat(new object[] { "Tu posici\x00f3n actual es - X: ", actor.Position.Int32_0, ", Y: ", actor.Position.Int32_1, ", Z: ", actor.Position.Int32_2 }), 3, ChatType.Say), false);
                    return(true);
                }
                return(false);

            case "bm":
                if (referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    if (!UpperBlock.Contains(actor.Name))
                    {
                        string str = string.Format("{0}: Has activated Block User Upper.", actor.Name);
                        instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, str, 3, ChatType.Say), 0, false);
                        UpperBlock.Add(actor.Name);
                    }
                    return(true);
                }
                return(false);

            case "uub":
                if (referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    Input = Input.Replace("uub", "");
                    Input = Input.Replace(" ", "");

                    uint IDtoblock = CharacterResolverCache.GetUidFromName(Input);



                    if (!UpperBlockUser.Contains(IDtoblock))
                    {
                        string str = string.Format("{0}: Has activated Block User Upper For {1}", actor.Name, Input);
                        instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, str, 3, ChatType.Say), 0, false);
                        UpperBlockUser.Add(IDtoblock);
                    }
                    return(true);
                }
                return(false);

            case "ub":
                if (referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    Input = Input.Replace("ub", "");
                    Input = Input.Replace(" ", "");

                    uint IDtoblock = CharacterResolverCache.GetUidFromName(Input);



                    if (UpperBlockUser.Contains(IDtoblock))
                    {
                        string str = string.Format("{0}: Has deactivated Block User Upper For {1}", actor.Name, Input);
                        instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, str, 3, ChatType.Say), 0, false);
                        UpperBlockUser.Remove(IDtoblock);
                    }
                    return(true);
                }
                return(false);

            case "ubm":
                if (referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    if (UpperBlock.Contains(actor.Name))
                    {
                        string str = string.Format("{0}: Has deactivated Block User Upper.", actor.Name);
                        instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, str, 3, ChatType.Say), 0, false);
                        UpperBlock.Remove(actor.Name);
                    }
                    return(true);
                }
                return(false);


            case "block_upper":
                if (referenceObject.Staff == 1 || referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, actor.Name + " ha bloqueado el punch.", 3, ChatType.Say), 0, false);
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, actor.Name + ": Has turned Block Punch On.", 3, ChatType.Say), 0, false);
                    block_upper = true;
                    return(true);
                }
                return(false);

            case "unblock_upper":
                if (referenceObject.Staff == 1 || referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, actor.Name + " ha desbloqueado el punch.", 3, ChatType.Say), 0, false);
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, actor.Name + ": Has turned Block Punch Off.", 3, ChatType.Say), 0, false);
                    block_upper = false;
                    return(true);
                }
                return(false);

            case "checkcredits":
                if (referenceObject.Staff == 1 || referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    Input = Input.Replace("checkcredits", "");
                    Input = Input.Replace(" ", "");

                    uint ID = CharacterResolverCache.GetUidFromName(actor.Name);
                    actor.Whisper(checkcredits(Input), ID, false);

                    return(true);
                }
                return(false);

            case "block_coco":
                if (referenceObject.Staff == 1 || referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, actor.Name + ": Ha bloqueado el coco.", 3, ChatType.Say), 0, false);
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, actor.Name + ": Has turned Block Coco On.", 3, ChatType.Say), 0, false);
                    block_coco = true;

                    return(true);
                }
                return(false);



            case "unblock_coco":
                if (referenceObject.Staff == 1 || referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, actor.Name + ": ha desbloqueado el coco.", 3, ChatType.Say), 0, false);
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, actor.Name + ": Has turned Block Coco Off.", 3, ChatType.Say), 0, false);
                    block_coco = false;

                    return(true);
                }
                return(false);



            case "ban":
                if (referenceObject.Staff == 1 || referenceObject.Staff == 2 && actor.Name != "DaLoe" || referenceObject.Staff == 6)
                {
                    SqlDatabaseClient mySqlClient = SqlDatabaseManager.GetClient();
                    string            Input2      = Input;
                    string            reason2     = Input2.Substring(Input2.IndexOf(',') + 1);
                    Input = Input.Replace(",", "");
                    string[] split    = Input.Split(' ');
                    string   username = (split[1]);
                    string   reason   = string.Join(" ", Input, 2, Input.Length - 2);
                    uint     UserID   = CharacterResolverCache.GetUidFromName(username);
                    Moderation.ModerationBanManager.BanHammer(mySqlClient, UserID, reason2, actor.Name);
                    string ban = string.Format("{0}: Banned: {1}, For: {2}", actor.Name, username, reason2);

                    Input = Input.Replace(" ", "");
                    uint ID = CharacterResolverCache.GetUidFromName(username);

                    if (SessionManager.ContainsCharacterId(ID))
                    {
                        Session Session_ID  = SessionManager.GetSessionByCharacterId(ID);
                        uint    session_id2 = Session_ID.CharacterInfo.SessionId;
                        SessionManager.StopSession(session_id2);
                    }

                    else
                    {
                    }

                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, ban, 3, ChatType.Say), 0, false);


                    return(true);
                }
                return(false);

            case "unban":
                if (referenceObject.Staff == 1 || referenceObject.Staff == 2 && actor.Name != "DaLoe" && actor.Name != "Fran" || referenceObject.Staff == 6)
                {
                    SqlDatabaseClient mySqlClient = SqlDatabaseManager.GetClient();
                    Input = Input.Replace("unban", "");
                    Input = Input.Replace(" ", "");

                    uint ID = CharacterResolverCache.GetUidFromName(Input);



                    Moderation.ModerationBanManager.Unban(mySqlClient, ID);

                    string unban = string.Format("{0}: Unbanned User {1}", actor.Name, Input);

                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, unban, 3, ChatType.Say), 0, false);


                    return(true);
                }
                return(false);

            case "ipban":
                if (referenceObject.Staff == 2 && actor.Name != "DaLoE" && actor.Name != "Fran" || referenceObject.Staff == 6)
                {
                    SqlDatabaseClient mySqlClient = SqlDatabaseManager.GetClient();
                    string            Input2      = Input;
                    string            reason2     = Input2.Substring(Input2.IndexOf(',') + 1);
                    Input = Input.Replace(",", "");
                    string[] split    = Input.Split(' ');
                    string   username = (split[1]);
                    string   reason   = string.Join(" ", Input, 2, Input.Length - 2);
                    uint     UserID   = CharacterResolverCache.GetUidFromName(username);

                    Sessions.Session session_0;
                    session_0 = SessionManager.GetSessionByCharacterId(UserID);
                    string str = session_0.RemoteAddress.ToString();

                    Moderation.ModerationBanManager.BanHammer3(mySqlClient, UserID, reason2, actor.Name, str);
                    string ban = string.Format("{0}: IP Banned: {1}, For: {2}", actor.Name, username, reason2);

                    Input = Input.Replace(" ", "");
                    uint ID = CharacterResolverCache.GetUidFromName(username);

                    if (SessionManager.ContainsCharacterId(ID))
                    {
                        Session Session_ID  = SessionManager.GetSessionByCharacterId(ID);
                        uint    session_id2 = Session_ID.CharacterInfo.SessionId;
                        SessionManager.StopSession(session_id2);
                    }

                    else
                    {
                    }

                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, ban, 3, ChatType.Say), 0, false);


                    return(true);
                }
                return(false);

            case "alert":
                if (referenceObject.Staff == 1 || referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    string messageText = InputFilter.FilterString(InputFilter.MergeString(input, 1), false);
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(0, messageText, 3, ChatType.Say), 0, false);
                    return(true);
                }
                return(false);

            case "la":
                if (referenceObject.Staff == 1 || referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    if (actor.Name == "Brandon" || actor.Name == "Mike")
                    {
                        foreach (KeyValuePair <uint, Session> pair in SessionManager.Sessions)
                        {
                            Input = Input.Replace("la", "");
                            string send = string.Format("{0} - From Burbian Creator {1}", Input, actor.Name);
                            pair.Value.SendData(LaptopMessageComposer.Compose(pair.Value.CharacterId, send, 2));
                        }
                    }


                    else if (actor.Name == "Kyle")
                    {
                        foreach (KeyValuePair <uint, Session> pair in SessionManager.Sessions)
                        {
                            Input = Input.Replace("la", "");
                            string send = string.Format("{0} - From Burbian Main Programmer {1}", Input, actor.Name);
                            pair.Value.SendData(LaptopMessageComposer.Compose(pair.Value.CharacterId, send, 2));
                        }
                    }

                    else if (referenceObject.Staff == 1)
                    {
                        foreach (KeyValuePair <uint, Session> pair in SessionManager.Sessions)
                        {
                            Input = Input.Replace("la", "");
                            string send = string.Format("{0} - From Burbian Moderator {1}", Input, actor.Name);
                            pair.Value.SendData(LaptopMessageComposer.Compose(pair.Value.CharacterId, send, 2));
                        }
                    }


                    else if (referenceObject.Staff == 2 && actor.Name != "Brandon" && actor.Name != "Mike")
                    {
                        foreach (KeyValuePair <uint, Session> pair in SessionManager.Sessions)
                        {
                            Input = Input.Replace("la", "");
                            string send = string.Format("{0} - From Burbian Administrator {1}", Input, actor.Name);
                            pair.Value.SendData(LaptopMessageComposer.Compose(pair.Value.CharacterId, send, 2));
                        }
                    }


                    else if (referenceObject.Staff == 6 && actor.Name != "Kyle")
                    {
                        foreach (KeyValuePair <uint, Session> pair in SessionManager.Sessions)
                        {
                            Input = Input.Replace("la", "");
                            string send = string.Format("{0} - From Burbian Programmer {1}", Input, actor.Name);
                            pair.Value.SendData(LaptopMessageComposer.Compose(pair.Value.CharacterId, send, 2));
                        }
                    }

                    else
                    {
                        foreach (KeyValuePair <uint, Session> pair in SessionManager.Sessions)
                        {
                            Input = Input.Replace("la", "");
                            string send = string.Format("{0} - From Burbian Moderator {1}", Input, actor.Name);
                            pair.Value.SendData(LaptopMessageComposer.Compose(pair.Value.CharacterId, send, 2));
                        }
                    }

                    return(true);
                }
                return(false);

            case "effect":
                if (referenceObject.Vip == 1 || referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    Input = Input.Replace("effect", "");
                    Input = Input.Replace(" ", "");

                    switch (int.Parse(Input))
                    {
                    case 1:
                        actor.ApplyEffect(1, true);
                        actor.UpdateNeeded = true;
                        break;

                    case 2:
                        actor.ApplyEffect(2, true);
                        actor.UpdateNeeded = true;
                        break;

                    case 3:
                        actor.ApplyEffect(3, true);
                        actor.UpdateNeeded = true;
                        break;

                    case 4:
                        actor.ApplyEffect(4, true);
                        actor.UpdateNeeded = true;
                        break;
                    }



                    return(true);
                }
                return(false);


            case "give":
                if (referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    Session session_0;



                    string userthatadded = actor.Name;


                    SqlDatabaseClient mySqlClient = SqlDatabaseManager.GetClient();

                    int credits = 0;

                    string Input2  = Input;
                    string reason2 = Input2.Substring(Input2.IndexOf(',') + 1);
                    credits = int.Parse(reason2);
                    Input   = Input.Replace(",", "");
                    string[] split    = Input.Split(' ');
                    string   username = (split[1]);
                    string   reason   = string.Join(" ", Input, 2, Input.Length - 2);
                    uint     ID       = CharacterResolverCache.GetUidFromName(username);

                    session_0 = SessionManager.GetSessionByCharacterId(ID);

                    //givecredits2(mySqlClient, credits, username);
                    referenceObject.UpdateGoldCreditsBalance(mySqlClient, +credits);
                    session_0.SendData(CharacterCoinsComposer.AddGoldCompose(Convert.ToUInt32(credits)), false);     //Punch cost 200
                    string str = string.Format("{0}: Gave {1}, {2} Credits!", userthatadded, username, credits);
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(0, str, 3, ChatType.Say), 0, false);


                    return(true);
                }
                return(false);

            case "share":
                if (referenceObject.Staff == 0 || referenceObject.Staff == 1 || referenceObject.Staff == 2 || referenceObject.Staff == 3 || referenceObject.Staff == 4 || referenceObject.Staff == 5 || referenceObject.Staff == 6)
                {
                    string            BeforeComma = string.Empty;
                    string            AfterComma  = string.Empty;
                    SqlDatabaseClient client      = SqlDatabaseManager.GetClient();
                    Session           session_0;
                    Session           session_1;

                    Input = Input.Replace("share", "");
                    Input = Input.Replace(" ", "");

                    BeforeComma = Input.Remove(Input.LastIndexOf(','));
                    AfterComma  = Input.Substring(Input.IndexOf(',') + 1);

                    string username          = BeforeComma.Replace(" ", "");
                    string amountofcredits_0 = AfterComma.Replace(" ", "");
                    int    amount            = int.Parse(amountofcredits_0);


                    uint actorID  = CharacterResolverCache.GetUidFromName(actor.Name);
                    uint actorID2 = CharacterResolverCache.GetUidFromName(username);

                    session_0 = SessionManager.GetSessionByCharacterId(actorID);
                    session_1 = SessionManager.GetSessionByCharacterId(actorID2);

                    SpaceInstance instanceBySpaceId2 = SpaceManager.GetInstanceBySpaceId(session_1.CurrentSpaceId);
                    SpaceActor    actor2             = (instanceBySpaceId2 == null) ? null : instanceBySpaceId2.GetActorByReferenceId(session_1.CharacterId, SpaceActorType.UserCharacter);
                    CharacterInfo referenceObject2   = (CharacterInfo)actor2.ReferenceObject;



                    if (enoughcredits(session_0, amount))
                    {
                        referenceObject.UpdateGoldCreditsBalance(client, -amount);
                        session_0.SendData(CharacterCoinsComposer.RemoveGoldCompose(Convert.ToUInt32(amount)), false);

                        referenceObject2.UpdateGoldCreditsBalance(client, +amount);
                        session_1.SendData(CharacterCoinsComposer.AddGoldCompose(Convert.ToUInt32(amount)), false);

                        string str = string.Format("{0}: Shared {1} Credits To {2}!", actor.Name, amount, username);
                        instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(0, str, 3, ChatType.Say), 0, false);
                    }

                    else
                    {
                        string str = string.Format("Could not send {0} the credits, did you have enough?", username);
                        actor.Whisper(str, actorID, false);
                    }



                    return(true);
                }
                return(false);


            case "take":
                if (referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    Session session_0;
                    Session session_1;


                    uint actoeid = CharacterResolverCache.GetUidFromName(actor.Name);


                    string userthatadded = actor.Name;


                    SqlDatabaseClient mySqlClient = SqlDatabaseManager.GetClient();

                    int credits = 0;

                    string Input2  = Input;
                    string reason2 = Input2.Substring(Input2.IndexOf(',') + 1);
                    credits = int.Parse(reason2);
                    Input   = Input.Replace(",", "");
                    string[] split    = Input.Split(' ');
                    string   username = (split[1]);
                    string   reason   = string.Join(" ", Input, 2, Input.Length - 2);
                    uint     ID       = CharacterResolverCache.GetUidFromName(username);

                    session_0 = SessionManager.GetSessionByCharacterId(ID);

                    //givecredits2(mySqlClient, credits, username);
                    session_1 = SessionManager.GetSessionByCharacterId(ID);
                    int gold      = session_1.CharacterInfo.GoldCoins;
                    int minusgold = gold - credits;

                    if (minusgold < 0)
                    {
                        actor.Whisper("Error, the amount you tried to give was below 0", actoeid, false);
                    }

                    else
                    {
                        referenceObject.UpdateGoldCreditsBalance(mySqlClient, -credits);
                        session_0.SendData(CharacterCoinsComposer.RemoveGoldCompose(Convert.ToUInt32(credits)), false);
                        string str = string.Format("{0}: Took Away {1} Credits From {2}!", userthatadded, credits, username);
                        instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(0, str, 3, ChatType.Say), 0, false);
                    }

                    return(true);
                }
                return(false);



            case "kick":
                if (referenceObject.Staff == 1 || referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    Session session_0;

                    Input = Input.Replace("kick", "");
                    Input = Input.Replace(" ", "");
                    uint ID = CharacterResolverCache.GetUidFromName(Input);
                    if (SessionManager.ContainsCharacterId(ID))
                    {
                        session_0 = SessionManager.GetSessionByCharacterId(ID);
                        SpaceManager.RemoveUserFromSpace(session_0);
                        string str = string.Format("{0}: Has Kicked {1} From Island.", actor.Name, Input);
                        instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(0, str, 3, ChatType.Say), 0, false);
                    }

                    else
                    {
                    }

                    //SpaceManager.GetInstanceBySpaceId

                    //SpaceUserRemovedComposer.BroadcastCompose(



                    return(true);
                }
                return(false);

            case "kickoffline":
                if (referenceObject.Staff == 2 || referenceObject.Staff == 6)
                {
                    Session session_0;

                    Input = Input.Replace("kickoffline", "");
                    Input = Input.Replace(" ", "");
                    uint ID = CharacterResolverCache.GetUidFromName(Input);
                    if (SessionManager.ContainsCharacterId(ID))
                    {
                        session_0 = SessionManager.GetSessionByCharacterId(ID);
                        uint session_id2 = session_0.CharacterInfo.SessionId;
                        SessionManager.StopSession(session_id2);
                        string str = string.Format("{0}: Has kicked {1} Offline!", actor.Name, Input);
                        instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(0, str, 3, ChatType.Say), 0, false);
                    }

                    else
                    {
                    }

                    //SpaceManager.GetInstanceBySpaceId

                    //SpaceUserRemovedComposer.BroadcastCompose(



                    return(true);
                }
                return(false);

            case "mod":
                if (actor.Name == "Kyle" || actor.Name == "Brandon" || actor.Name == "Mike")
                {
                    Session session_0;

                    SqlDatabaseClient client;
                    client = SqlDatabaseManager.GetClient();
                    Input  = Input.Replace("mod", "");
                    Input  = Input.Replace(" ", "");
                    string Input2 = Input;

                    string level = Input2.Substring(Input2.IndexOf(",") + 1);
                    uint   mod   = Convert.ToUInt32(level);

                    if (Input.Contains(","))
                    {
                        Input = Input.Substring(0, Input.LastIndexOf(","));
                    }
                    givemod(client, Input, mod);
                    string str = string.Format("{0}: Gave {1} Level {2} Mod Ability.", actor.Name, Input, mod);
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(0, str, 3, ChatType.Say), 0, false);

                    uint ID = CharacterResolverCache.GetUidFromName(Input);
                    session_0 = SessionManager.GetSessionByCharacterId(ID);
                    uint session_id2 = session_0.CharacterInfo.SessionId;
                    SessionManager.StopSession(session_id2);



                    return(true);
                }
                return(false);

            case "getmod":
                if (actor.Name == "Kyle" || actor.Name == "Brandon" || actor.Name == "Mike")
                {
                    SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient();
                    Input = Input.Replace("getmod", "");
                    Input = Input.Replace(" ", "");

                    uint ID2 = CharacterResolverCache.GetUidFromName(actor.Name);
                    uint ID  = CharacterResolverCache.GetUidFromName(Input);

                    Session session_1;

                    session_1 = SessionManager.GetSessionByCharacterId(ID);
                    uint modlevel = session_1.CharacterInfo.Staff;

                    string str = string.Format("User {0} is mod level {1}", Input, modlevel);
                    actor.Whisper(str, ID2, false);

                    SessionManager.StopSession(session_1.AbsoluteSpaceId);


                    return(true);
                }
                return(false);
            }


            return(false);
        }
예제 #5
0
        public static bool HandleCommand(Session Session, string Input)
        {
            Input = Input.Substring(1, Input.Length - 1);
            string[]      input             = Input.Split(new char[] { ' ' });
            SpaceInstance instanceBySpaceId = SpaceManager.GetInstanceBySpaceId(Session.CurrentSpaceId);
            SpaceActor    actor             = (instanceBySpaceId == null) ? null : instanceBySpaceId.GetActorByReferenceId(Session.CharacterId, SpaceActorType.UserCharacter);
            CharacterInfo referenceObject   = (CharacterInfo)actor.ReferenceObject;



            switch (input[0])
            {
            case "position":
            {
                Session.SendData(SpaceChatComposer.Compose(0, string.Concat(new object[] { "Tu posici\x00f3n actual es - X: ", actor.Position.Int32_0, ", Y: ", actor.Position.Int32_1, ", Z: ", actor.Position.Int32_2 }), 3, ChatType.Say), false);
                return(true);
            }

            case "block":
                if (referenceObject.Staff != 0)
                {
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, actor.Name + " ha bloqueado el punch.", 3, ChatType.Say), 0, false);
                    block = true;
                    return(true);
                }
                return(false);

            case "unblock":
                if (referenceObject.Staff != 0)
                {
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, actor.Name + " ha desbloqueado el punch.", 3, ChatType.Say), 0, false);
                    block = false;
                    return(true);
                }
                return(false);

            case "ban":
                if (referenceObject.Staff == 2)
                {
                    SqlDatabaseClient mySqlClient = SqlDatabaseManager.GetClient();
                    string            Input2      = Input;
                    string            reason2     = Input2.Substring(Input2.IndexOf(',') + 1);
                    Input = Input.Replace(",", "");
                    string[] split    = Input.Split(' ');
                    string   username = (split[1]);
                    string   reason   = string.Join(" ", Input, 2, Input.Length - 2);
                    uint     UserID   = CharacterResolverCache.GetUidFromName(username);
                    Moderation.ModerationBanManager.BanHammer(mySqlClient, UserID, reason2, actor.Name);
                    string ban = string.Format("{0} ha baneado a {1} por {2}", actor.Name, username, reason2);

                    Input = Input.Replace(" ", "");
                    uint ID = CharacterResolverCache.GetUidFromName(username);

                    if (SessionManager.ContainsCharacterId(ID))
                    {
                        Session Session_ID  = SessionManager.GetSessionByCharacterId(ID);
                        uint    session_id2 = Session_ID.CharacterInfo.SessionId;
                        SessionManager.StopSession(session_id2);
                    }

                    else
                    {
                    }

                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(1, ban, 3, ChatType.Say), 0, false);


                    return(true);
                }
                return(false);

            case "alert":
                if (referenceObject.Staff != 0)
                {
                    string messageText = InputFilter.FilterString(InputFilter.MergeString(input, 1), false);
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(0, messageText, 3, ChatType.Say), 0, false);
                    return(true);
                }
                return(false);

            case "la":
                if (referenceObject.Staff != 0)
                {
                    foreach (KeyValuePair <uint, Session> pair in SessionManager.Sessions)
                    {
                        pair.Value.SendData(LaptopMessageComposer.Compose(pair.Value.CharacterId, Input.Replace("la", ""), 2));
                    }
                    return(true);
                }
                return(false);


            case "give":
                if (referenceObject.Staff == 2)
                {
                    Session session_0;
                    string  userthatadded = actor.Name;


                    SqlDatabaseClient mySqlClient = SqlDatabaseManager.GetClient();

                    int credits = 0;

                    string Input2  = Input;
                    string reason2 = Input2.Substring(Input2.IndexOf(',') + 1);
                    credits = int.Parse(reason2);
                    Input   = Input.Replace(",", "");
                    string[] split    = Input.Split(' ');
                    string   username = (split[1]);
                    string   reason   = string.Join(" ", Input, 2, Input.Length - 2);
                    uint     ID       = CharacterResolverCache.GetUidFromName(username);

                    session_0 = SessionManager.GetSessionByCharacterId(ID);

                    //givecredits2(mySqlClient, credits, username);
                    referenceObject.UpdateGoldCreditsBalance(mySqlClient, +credits);
                    session_0.SendData(CharacterCoinsComposer.AddGoldCompose(Convert.ToUInt32(credits)), false);     //Punch cost 200
                    string str = string.Format("{0} le ha dado a {1} {2} Creditos!", userthatadded, username, credits);
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(0, str, 3, ChatType.Say), 0, false);


                    return(true);
                }
                return(false);


            case "take":
                if (referenceObject.Staff == 2)
                {
                    Session session_0;
                    string  userthatadded = actor.Name;

                    SqlDatabaseClient mySqlClient = SqlDatabaseManager.GetClient();

                    int credits = 0;

                    string Input2  = Input;
                    string reason2 = Input2.Substring(Input2.IndexOf(',') + 1);
                    credits = int.Parse(reason2);
                    Input   = Input.Replace(",", "");
                    string[] split    = Input.Split(' ');
                    string   username = (split[1]);
                    string   reason   = string.Join(" ", Input, 2, Input.Length - 2);
                    uint     ID       = CharacterResolverCache.GetUidFromName(username);

                    session_0 = SessionManager.GetSessionByCharacterId(ID);

                    referenceObject.UpdateGoldCreditsBalance(mySqlClient, -credits);
                    session_0.SendData(CharacterCoinsComposer.RemoveGoldCompose(Convert.ToUInt32(credits)), false);     //Punch cost 200
                    string str = string.Format("{0} le ha quitado {1} Creditos a {2}!", userthatadded, credits, username);
                    instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(0, str, 3, ChatType.Say), 0, false);


                    return(true);
                }
                return(false);


            case "kick":
                if (referenceObject.Staff != 0)
                {
                    Session session_0;

                    Input = Input.Replace("kick", "");
                    Input = Input.Replace(" ", "");
                    uint ID = CharacterResolverCache.GetUidFromName(Input);
                    if (SessionManager.ContainsCharacterId(ID))
                    {
                        session_0 = SessionManager.GetSessionByCharacterId(ID);
                        SpaceManager.RemoveUserFromSpace(session_0);
                        string str = string.Format("{0} echa a {1} de la isla", actor.Name, Input);
                        instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(0, str, 3, ChatType.Say), 0, false);
                    }
                    return(true);
                }
                return(false);

            case "kickoffline":
                if (referenceObject.Staff == 2)
                {
                    Session session_0;

                    Input = Input.Replace("kickoffline", "");
                    Input = Input.Replace(" ", "");
                    uint ID = CharacterResolverCache.GetUidFromName(Input);
                    if (SessionManager.ContainsCharacterId(ID))
                    {
                        session_0 = SessionManager.GetSessionByCharacterId(ID);
                        uint session_id2 = session_0.CharacterInfo.SessionId;
                        SessionManager.StopSession(session_id2);
                        string str = string.Format("{0} desconectó a {1}", actor.Name, Input);
                        instanceBySpaceId.BroadcastMessage(SpaceChatComposer.Compose(0, str, 3, ChatType.Say), 0, false);
                    }

                    //SpaceManager.GetInstanceBySpaceId

                    //SpaceUserRemovedComposer.BroadcastCompose(



                    return(true);
                }
                return(false);

            case "chest1":
                if (referenceObject.Staff == 2)
                {
                    return(true);
                }
                return(false);
            }


            return(false);
        }