Esempio n. 1
0
        private static void LoadSettingsAndGroups()
        {
            LunaLog.Debug("Loading groups...");
            GroupSystem.LoadGroups();
            LunaLog.Debug("Loading settings...");
            SettingsHandler.LoadSettings();

            if (GeneralSettings.SettingsStore.ModControl)
            {
                LunaLog.Debug("Loading mod control...");
                ModFileSystem.LoadModFile();
            }
        }
Esempio n. 2
0
        public void handle(string text, UUID User, string agentName, Destinations src, UUID originator)
        {
            OCBotMemory ocb = OCBotMemory.Memory;

            //BotSession.Instance.MHE(MessageHandler.Destinations.DEST_LOCAL, UUID.Zero, $"Got data \n\n[HandleMiscInputs.cs]:handle(\"{text}\", {User.ToString()}, \"{agentName}\", {src.ToString()}, {originator.ToString()})");
            if (ocb.ActiveReportSessions.ContainsKey(User) && ocb.ActiveReportSessions.Count > 0)
            {
                // Send report response to GitCommands
                GitCommands gc = new GitCommands();
                gc.BugResponse(originator, User, ocb.ActiveReportSessions[User].ReportStage, text, src, agentName);
                return;
            }

            if (ocb.ActiveFeatureSessions.ContainsKey(User) && ocb.ActiveFeatureSessions.Count > 0)
            {
                GitCommands gc = new GitCommands();
                gc.FeatureResponse(originator, User, ocb.ActiveFeatureSessions[User].ReportStage, text, src, agentName);
                return;
            }

            if (ocb.ActiveCommentSessions.ContainsKey(User) && ocb.ActiveCommentSessions.Count > 0)
            {
                GitCommands gc = new GitCommands();
                gc.comment(originator, User, ocb.ActiveCommentSessions[User].ReportStage, text, src, agentName);
                return;
            }

            if (ocb.NoticeSessions.ContainsKey(User) && ocb.NoticeSessions.Count > 0)
            {
                GroupSystem gs = new GroupSystem();
                gs.update_notice_sess(originator, User, text, src, agentName);
                return;
            }

            if (ocb.MailingLists.Count > 0)
            {
                // Scan all mailing lists for a session and agentKey that match.
                foreach (string sML in ocb.MailingLists.Keys)
                {
                    OCBotMemory.MailList ML = ocb.MailingLists[sML];
                    if (ML.PrepFrom == User && ML.PrepState == 1)
                    {
                        MailingLists.MailingLists cML = new MailingLists.MailingLists();
                        cML.HandleMailListData(User, originator, src, sML, text);
                        return;
                    }
                }
            }
        }
Esempio n. 3
0
        private static void LoadSettingsAndGroups()
        {
            LunaLog.Debug("Loading groups...");
            GroupSystem.LoadGroups();
            LunaLog.Debug("Loading settings...");
            GeneralSettings.Singleton.Load();
            if (GeneralSettings.SettingsStore.GameDifficulty == GameDifficulty.Custom)
            {
                LunaLog.Debug("Loading gameplay settings...");
                GameplaySettings.Singleton.Load();
            }
#if DEBUG
            DebugSettings.Singleton.Load();
            LunaTime.SimulatedMsTimeOffset = DebugSettings.SettingsStore.SimulatedMsTimeOffset;
#endif
        }
Esempio n. 4
0
        private static void LoadSettingsAndGroups()
        {
            LunaLog.Debug("Loading groups...");
            GroupSystem.LoadGroups();
            LunaLog.Debug("Loading settings...");
            SettingsHandler.LoadSettings();

            if (GeneralSettings.SettingsStore.ModControl)
            {
                LunaLog.Debug("Loading mod control...");
                ModFileSystem.LoadModFile();
            }

            Console.Title += $" ({GeneralSettings.SettingsStore.ServerName})";

#if DEBUG
            Console.Title += " DEBUG";
#endif
        }
Esempio n. 5
0
        private static void LoadSettingsAndGroups()
        {
            LunaLog.Debug("Loading groups...");
            GroupSystem.LoadGroups();
            LunaLog.Debug("Loading settings...");
            SettingsHandler.LoadSettings();
            SettingsHandler.ValidateDifficultySettings();

            if (GeneralSettings.SettingsStore.ModControl)
            {
                LunaLog.Debug("Loading mod control...");
                ModFileSystem.LoadModFile();
            }

            if (Common.PlatformIsWindows())
            {
                Console.Title += $" ({GeneralSettings.SettingsStore.ServerName})";
#if DEBUG
                Console.Title += " DEBUG";
#endif
            }
        }
        public void execute(GameSession gameSession, byte[] bytes)
        {
            var read = new LegacyModuleRequest();

            read.readCommand(bytes);

            var player = gameSession.Player;

            string[] packet = read.message.Split('|');

            switch (packet[0])
            {
            case ServerCommands.TECHS:
                player.TechManager.AssembleTechCategoryRequest(packet[1]);
                break;

            case ClientCommands.PORTAL_JUMP:
                JumpRequest(gameSession);
                break;

            case ClientCommands.LASER_STOP:
                player.DisableAttack(player.SettingsManager.SelectedLaser);
                break;

            case ServerCommands.ROCKET_ATTACK:
                player.AttackManager.RocketAttack();
                break;

            case ServerCommands.SET_STATUS:
                switch (packet[1])
                {
                case ClientCommands.INSTAREPAIR:
                    InstaRepair(gameSession);
                    break;

                case ClientCommands.CONFIGURATION:
                    player.ChangeConfiguration(packet[2]);
                    break;

                case ServerCommands.EMP:
                    player.AttackManager.EMP();
                    break;

                case ServerCommands.INSTASHIELD:
                    player.AttackManager.ISH();
                    break;

                case ServerCommands.SMARTBOMB:
                    player.AttackManager.SMB();
                    break;

                case ClientCommands.SELECT_CLOAK:
                    player.CpuManager.Cloak();
                    break;

                case ClientCommands.AROL:
                    player.CpuManager.ArolX();
                    break;

                case ClientCommands.RLLB:
                    player.CpuManager.RllbX();
                    break;

                case ClientCommands.MINE:
                    AssembleMineRequest(packet[2], gameSession);
                    break;
                }
                break;

            case ServerCommands.GROUPSYSTEM:
                switch (packet[1])
                {
                case ServerCommands.GROUPSYSTEM_GROUP_INVITE:
                    switch (packet[2])
                    {
                    case ServerCommands.GROUPSYSTEM_GROUP_INVITE_SUB_BY_NAME:
                        GroupSystem.AssembleInvite(gameSession.Player, GroupSystem.GetPlayerByName(Out.DecodeFrom64(packet[3])));
                        break;

                    case ServerCommands.GROUPSYSTEM_GROUP_INVITE_SUB_REVOKE:
                        GroupSystem.Revoke(gameSession.Player, GameManager.GetGameSession(Convert.ToInt32(packet[3]))?.Player);
                        break;

                    case ServerCommands.GROUPSYSTEM_GROUP_INVITE_SUB_ACKNOWLEDGE:
                        GroupSystem.AssembleAcceptedInvitation(gameSession.Player, GameManager.GetGameSession(Convert.ToInt32(packet[3]))?.Player);
                        break;

                    case ServerCommands.GROUPSYSTEM_GROUP_INVITE_SUB_REJECT:
                        GroupSystem.Reject(gameSession.Player, GameManager.GetGameSession(Convert.ToInt32(packet[3]))?.Player);
                        break;
                    }
                    break;

                case ServerCommands.GROUPSYSTEM_GROUP_EVENT_MEMBER_LEAVES_SUB_KICK:
                    gameSession.Player.Group?.Kick(GameManager.GetGameSession(Convert.ToInt32(packet[2]))?.Player);
                    break;

                case ServerCommands.GROUPSYSTEM_GROUP_EVENT_MEMBER_LEAVES_SUB_LEAVE:
                    gameSession.Player.Group?.Leave(gameSession.Player);
                    break;

                case ServerCommands.GROUPSYSTEM_BLOCK_INVITATIONS:
                    GroupSystem.BlockInvitations(gameSession.Player);
                    break;

                case ClientCommands.GROUPSYSTEM_PING:
                    switch (packet[2])
                    {
                    case ClientCommands.GROUPSYSTEM_PING_POSITION:
                        if (packet.Length < 4)
                        {
                            GroupSystem.Ping(gameSession.Player, gameSession.Player.Spacemap.Characters[int.Parse(packet[3])]?.Position);
                            break;
                        }
                        GroupSystem.Ping(gameSession.Player, new Position(int.Parse(packet[3]), int.Parse(packet[4])));
                        break;

                    case ClientCommands.GROUPSYSTEM_PING_USER:
                        GroupSystem.Ping(gameSession.Player, GameManager.GetGameSession(Convert.ToInt32(packet[3]))?.Player);
                        break;
                    }
                    break;

                case ClientCommands.GROUPSYSTEM_FOLLOW:
                    gameSession.Player.Group?.Follow(gameSession.Player, GameManager.GetGameSession(Convert.ToInt32(packet[2]))?.Player);
                    break;

                case ClientCommands.GROUPSYSTEM_PROMOTE:
                    gameSession.Player.Group?.ChangeLeader(GameManager.GetGameSession(Convert.ToInt32(packet[2])));
                    break;

                case ClientCommands.GROUPSYSTEM_SET_REMOTE:
                    switch (packet[2])
                    {
                    case ClientCommands.GROUPSYSTEM_CHANGE_INVITATON_BEHAVIOUR:
                        gameSession.Player.Group?.ChangeBehavior(gameSession, Convert.ToInt32(packet[3]));
                        break;
                    }
                    break;
                }
                break;
            }
        }
        public static void SendPlayerItems(Player player, bool isLogin = true)
        {
            player.SendCommand(player.GetShipInitializationCommand());

            if (player.Title != "")
                player.SendPacket("0|n|t|" + player.Id + "|1|" + player.Title + "");

            if (isLogin)
            {
                player.DroneManager.UpdateDrones();
                player.SendPacket("0|S|CFG|" + player.CurrentConfig);
                player.SendPacket("0|A|BK|0"); //yeşil kutu miktarı
                player.SendPacket("0|A|JV|0"); //atlama kuponu miktarı
            }
            else
            {
                player.SendPacket(player.DroneManager.GetDronesPacket());
                var droneFormationChangeCommand = DroneFormationChangeCommand.write(player.Id, (int)player.SettingsManager.SelectedFormation);
                player.SendCommand(droneFormationChangeCommand);
                player.SendCommandToInRangePlayers(droneFormationChangeCommand);
            }

            var spaceball = EventManager.Spaceball.Character;
            if (EventManager.Spaceball.Active && spaceball != null)
                player.SendPacket($"0|n|ssi|{spaceball.Mmo}|{spaceball.Eic}|{spaceball.Vru}");
            else
                player.SendPacket($"0|n|ssi|0|0|0");


            if (isLogin)
            {
                player.SendPacket("0|ps|nüscht");
                player.SendPacket("0|ps|blk|" + Convert.ToInt32(player.Settings.InGameSettings.blockedGroupInvites));

                if (player.Group != null)
                    GroupSystem.GroupInitializationCommand(player.GameSession.Player);
                else
                {
                    foreach (var userId in player.Storage.GroupInvites.Keys)
                        if (GameManager.GetPlayerById(userId) != null)
                            GroupSystem.GroupInviteCommand(GameManager.GetPlayerById(userId), player);
                }
            }

            if (!player.Premium)
                player.SendCommand(PetBlockUICommand.write(true));

            player.Spacemap.SendObjects(player);

            if (isLogin)
                player.Spacemap.SendPlayers(player);

            player.CheckAbilities(player);

            if (isLogin)
                player.SettingsManager.SendSlotBarItems();

            player.SettingsManager.SendRemoveWindows();

            if (isLogin)
            {
                player.SendCommand(PetInitializationCommand.write(true, true, true));
                player.UpdateStatus();
            }

            player.SendCurrentCooldowns();
            QueryManager.SavePlayer.Information(player);
        }
Esempio n. 8
0
        public void getTick()
        {
            GroupSystem.PerformCheck(LastScheduleCheck);

            if (DateTime.Now > LastScheduleCheck)
            {
                LastScheduleCheck = DateTime.Now + TimeSpan.FromMinutes(5);
            }

            foreach (KeyValuePair <UUID, OCBotMemory.ReplyData> kvp in OCBotMemory.Memory.AntiSpamReply)
            {
                if (kvp.Value.Ignore)
                {
                    continue;                   // This will not get reset here
                }
                if (kvp.Value.InitialReply.AddMinutes(OCBotMemory.Memory.REPLY_BLOCK_EXPIRE.TotalMinutes) <= DateTime.Now)
                {
                    if (kvp.Value.TriggerCount < OCBotMemory.Memory.MAX_TRIGGERS)
                    {
                        // add to removal queue
                        if (OCBSession.Instance.RemoveReplyHandle.Contains(kvp.Key) == false)
                        {
                            OCBSession.Instance.RemoveReplyHandle.Add(kvp.Key);
                        }
                    }
                    else
                    {
                        kvp.Value.SetIgnore();
                    }
                }
            }
            BMem = OCBotMemory.Memory; // Read Singleton
            if (!BMem.iHaveBeenTeleported)
            {
                // check current region
                if (BMem.DefaultRegion != "" && DateTime.Now > OCBSession.Instance.NextTeleportAttempt)
                {
                    if (grid.Network.CurrentSim.Name != BMem.DefaultRegion)
                    {
                        OCBSession.Instance.NextTeleportAttempt = DateTime.Now.AddMinutes(1);
                        grid.Self.Teleport(BMem.DefaultRegion, BMem.DefaultLocation);
                    }
                }
            }


            if (BMem.AutoRestartSim && !OCBSession.Instance.RestartTriggered)
            {
                // Do checks
                DateTime  timestamp = DateTime.Now;
                bool      everyDay  = false;
                DayOfWeek restarter = DayOfWeek.Monday;
                switch (BMem.RestartDay)
                {
                case "mon":
                    restarter = DayOfWeek.Monday;
                    break;

                case "tue":
                    restarter = DayOfWeek.Tuesday;
                    break;

                case "wed":
                    restarter = DayOfWeek.Wednesday;
                    break;

                case "thur":
                    restarter = DayOfWeek.Thursday;
                    break;

                case "fri":
                    restarter = DayOfWeek.Friday;
                    break;

                case "sat":
                    restarter = DayOfWeek.Saturday;
                    break;

                case "sun":
                    restarter = DayOfWeek.Sunday;
                    break;

                default:
                    everyDay = true;
                    break;
                }

                if (restarter == timestamp.DayOfWeek)
                {
                    everyDay = true; // this will keep logic to a minimum
                }
                if (everyDay)
                {
                    // do more checks
                    string timestampStr = timestamp.ToString("hh:mmtt");
                    timestampStr = timestampStr.ToLower();
                    string compareStr = BMem.TimeStringForRestart;

                    if (compareStr == timestampStr)
                    {
                        // restart
                        OCBSession.Instance.RestartTriggered = true;
                        BotSession.Instance.grid.Estate.RestartRegion();
                        BotSession.Instance.WaitForFiveMinutes = true;
                    }
                }
                else
                {
                    // do nothing
                }
            }

            return;
        }
Esempio n. 9
0
        public override void HandleMessage(ClientStructure client, IMessageData messageData)
        {
            var data = (GroupBaseMsgData)messageData;

            switch (data.GroupMessageType)
            {
            case GroupMessageType.Invite:
            {
                var info = (GroupInviteMsgData)data;
                if (GroupSystem.IsOwner(info.GroupName, client.PlayerName))
                {
                    GroupSystem.Invite(info.GroupName, info.AddressedTo);
                    MessageQueuer.SendToClient <GroupSrvMsg>(client, info);
                }
            }
            break;

            case GroupMessageType.Accept:
            {
                var info = (GroupAcceptMsgData)data;
                if (GroupSystem.IsPendingInvitation(info.GroupName, client.PlayerName))
                {
                    GroupSystem.AddPlayerToGroup(info.GroupName, client.PlayerName);
                    MessageQueuer.SendToClient <GroupSrvMsg>(client, info);
                }
            }
            break;

            case GroupMessageType.Remove:
            {
                var info = (GroupRemoveMsgData)data;
                if (GroupSystem.IsOwner(info.GroupName, client.PlayerName))
                {
                    GroupSystem.DeregisterGroup(info.GroupName);
                    MessageQueuer.SendToClient <GroupSrvMsg>(client, info);
                }
            }
            break;

            case GroupMessageType.Add:
            {
                var info = (GroupAddMsgData)data;
                if (GroupSystem.NumGroups(client.PlayerName) < 2)
                {
                    var newMessage = new GroupAddMsgData
                    {
                        GroupName = info.GroupName,
                        Owner     = client.PlayerName
                    };
                    GroupSystem.RegisterGroup(info.GroupName, client.PlayerName);
                    MessageQueuer.SendToClient <GroupSrvMsg>(client, newMessage);
                }
            }
            break;

            case GroupMessageType.Kick:
            {
                var info = (GroupKickMsgData)data;
                if (GroupSystem.IsOwner(info.GroupName, client.PlayerName))
                {
                    GroupSystem.KickPlayerFromGroup(info.GroupName, info.Player);
                    MessageQueuer.SendToClient <GroupSrvMsg>(client, info);
                }
            }
            break;

            case GroupMessageType.ListRequest:
            {
                var groupsAndOwners = GroupSystem.GroupsAndOwners();
                var newMessage      = new GroupListResponseMsgData
                {
                    Groups = groupsAndOwners.Key,
                    Owners = groupsAndOwners.Value
                };
                MessageQueuer.SendToClient <GroupSrvMsg>(client, newMessage);
            }
            break;

            case GroupMessageType.UpdateRequest:
            {
                var info       = (GroupUpdateRequestMsgData)data;
                var g          = GroupSystem.GetGroup(info.GroupName);
                var newMessage = new GroupUpdateResponseMsgData
                {
                    Owner   = g.Owner,
                    Members = g.GetMembers(),
                    Name    = g.Name
                };
                MessageQueuer.SendToClient <GroupSrvMsg>(client, newMessage);
            }
            break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }