コード例 #1
0
ファイル: AdminTools.cs プロジェクト: TheMajical/RustLegacy
 private void OnEntityHurt(Fougerite.Events.HurtEvent he)
 {
     if (he.AttackerIsPlayer && !he.IsDecay)
     {
         Fougerite.Player attacker = (Fougerite.Player)he.Attacker;
         if (DataStore.GetInstance().ContainsKey("OwnerSave", attacker.SteamID))
         {
             if (he.WeaponName == "Shotgun")
             {
                 attacker.MessageFrom(Name, "You Can't use Shotgun in this mode!");
                 return;
             }
             attacker.Notice("Entity Loc + Owner Saved!");
             string logtext = " " + he.Entity.Name + " Owner: " + he.Entity.OwnerName + " (" + he.Entity.OwnerID + ") | X: " + he.Entity.X + " Y: " + he.Entity.Y + " Z: " + he.Entity.Z + " Saved by " + attacker.Name + "";
             Log(logtext, "SavedOwners");
             return;
         }
         if (DataStore.GetInstance().ContainsKey("OwnerMode", attacker.SteamID))
         {
             if (he.WeaponName == "Shotgun")
             {
                 attacker.MessageFrom(Name, "You Can't use Shotgun in this mode!");
                 return;
             }
             attacker.Notice(he.Entity.Name + "Is Owned by " + he.Entity.OwnerName);
             attacker.MessageFrom(Name, "[color #42f5b3]Owner: [color #f5e042]" + he.Entity.OwnerName + " [color #42f5b3]" + he.Entity.OwnerID);
             return;
         }
     }
 }
コード例 #2
0
 public void KickPlayer(Fougerite.Player badPlayer, Fougerite.Player myAdmin)
 {
     RustPP.Data.Entities.User kicked = RustPP.Data.Globals.usersOnline.FindLast(x => x.Name == badPlayer.Name);
     RustPP.Data.Entities.User admin  = RustPP.Data.Globals.usersOnline.FindLast(x => x.Name == myAdmin.Name);
     if (kicked != null)
     {
         if (Administrator.IsAdmin(badPlayer.UID) && !Administrator.GetAdmin(myAdmin.UID).HasPermission("RCON"))
         {
             myAdmin.MessageFrom(Core.Name, badPlayer.Name + " es un administrador, no puedes kickear administradores.");
             return;
         }
         RustPP.Data.Globals.SendAdminMessageForAll(string.Format("{0} fue kickeado por {1}.", badPlayer.Name, myAdmin.Name));
         badPlayer.Disconnect();
     }
     else
     {
         if (badPlayer == myAdmin)
         {
             myAdmin.MessageFrom(Core.Name, "No puedes kickearte.");
             return;
         }
         else if (Administrator.IsAdmin(badPlayer.UID) && !Administrator.GetAdmin(myAdmin.UID).HasPermission("RCON") || kicked.AdminLevel >= admin.AdminLevel)
         {
             myAdmin.MessageFrom(Core.Name, badPlayer.Name + " es un administrador, no puedes kickear administradores.");
             return;
         }
         else
         {
             Administrator.NotifyAdmins(string.Format("{0} fue kickeado por {1}.", badPlayer.Name, myAdmin.Name));
             badPlayer.Disconnect();
         }
     }
 }
コード例 #3
0
        public void AddFriend(PList.Player friend, Fougerite.Player friending)
        {
            if (friending.UID == friend.UserID)
            {
                friending.MessageFrom(Core.Name, "You can't add yourself as a friend!");
                return;
            }
            FriendsCommand command = (FriendsCommand)ChatCommand.GetCommand("friends");
            FriendList     list    = (FriendList)command.GetFriendsLists()[friending.UID];

            if (list == null)
            {
                list = new FriendList();
            }
            if (list.isFriendWith(friend.UserID))
            {
                friending.MessageFrom(Core.Name, string.Format("You are already friends with {0}.", friend.DisplayName));
                return;
            }
            list.AddFriend(SecurityElement.Escape(friend.DisplayName), friend.UserID);
            command.GetFriendsLists()[friending.UID] = list;
            friending.MessageFrom(Core.Name, string.Format("You have added {0} to your friends list.", friend.DisplayName));
            Fougerite.Player ffriend = Fougerite.Server.GetServer().FindPlayer(friend.UserID.ToString());
            if (ffriend != null)
            {
                ffriend.MessageFrom(Core.Name, string.Format("{0} has added you to their friends list.", friending.Name));
            }
        }
コード例 #4
0
 public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
 {
     Fougerite.Player sender = Fougerite.Server.Cache[Arguments.argUser.userID];
     sender.MessageFrom(Core.Name, "Recargando...");
     TimedEvents.startEvents();
     if (File.Exists(RustPPModule.GetAbsoluteFilePath("admins.xml")))
     {
         Administrator.AdminList = Helper.ObjectFromXML <List <Administrator> >(RustPPModule.GetAbsoluteFilePath("admins.xml"));
     }
     if (File.Exists(RustPPModule.GetAbsoluteFilePath("whitelist.xml")))
     {
         Core.whiteList = new PList(Helper.ObjectFromXML <List <PList.Player> >(RustPPModule.GetAbsoluteFilePath("whitelist.xml")));
     }
     else
     {
         Core.whiteList = new PList();
     }
     if (File.Exists(RustPPModule.GetAbsoluteFilePath("bans.xml")))
     {
         Core.blackList = new PList(Helper.ObjectFromXML <List <PList.Player> >(RustPPModule.GetAbsoluteFilePath("bans.xml")));
     }
     else
     {
         Core.blackList = new PList();
     }
     sender.MessageFrom(Core.Name, "Recargado!");
 }
コード例 #5
0
 public void OnCommand(Fougerite.Player player, string cmd, string[] args)
 {
     if (!player.Admin)
     {
         return;
     }
     if (cmd == "servername")
     {
         if (args.Length == 0)
         {
             player.MessageFrom(Name, "/servername " + blue + " List of commands");
             player.MessageFrom(Name, "/servername reload " + blue + " Reload and apply the Settings");
         }
         else
         {
             if (args[0] == "reload")
             {
                 player.MessageFrom(Name, "Old Server Name:  " + RBVersion + SvColor + SvName);
                 ReloadConfig();
                 player.MessageFrom(Name, "New Server Name:  " + RBVersion + SvColor + SvName);
                 player.MessageFrom(Name, green + "Settings has been Reloaded :)");
                 server.hostname = RBVersion + SvColor + SvName;
                 Rust.Steam.Server.UpdateServerTitle();
             }
         }
     }
 }
コード例 #6
0
ファイル: RemoveFlagsCommand.cs プロジェクト: samvds/RustPP
        public void RemoveFlags(Administrator administrator, Fougerite.Player myAdmin)
        {
            List <string> flags = (List <string>)Core.adminFlagsList[myAdmin.UID];

            Core.adminFlagsList.Remove(myAdmin.UID);

            foreach (string properName in flags)
            {
                if (properName == "RCON" && !Administrator.GetAdmin(myAdmin.UID).HasPermission("RCON"))
                {
                    myAdmin.MessageFrom(Core.Name, yellow + "☢ " + red + "You can't remove the RCON flag from anyone's permissions.");
                    Administrator.NotifyAdmins(string.Format("{0} attempted to remove the {1} flag to {2}'s permissions.", myAdmin.Name, properName, administrator.DisplayName));
                }
                else if (!administrator.HasPermission(properName))
                {
                    myAdmin.MessageFrom(Core.Name, string.Format(yellow + "☢ " + red + "Player: " + yellow + "{0}" + red + " doesn't have the " + yellow + "{1}" + red + " flag.", administrator.DisplayName, properName));
                }
                else
                {
                    administrator.Flags.Remove(properName);
                    Administrator.NotifyAdmins(string.Format(yellow + "☢ " + green + "Player: " + yellow + "{0}" + green + " has removed the " + yellow + "{1}" + green + " flag from " + yellow + "{2}'s " + green + "permissions.", myAdmin.Name, properName, administrator.DisplayName));
                    if (properName == "RCON")
                    {
                        Fougerite.Player adminclient = Fougerite.Server.GetServer().FindPlayer(administrator.UserID.ToString());
                        if (adminclient != null)
                        {
                            adminclient.PlayerClient.netUser.admin = true;
                        }
                    }
                }
            }
        }
コード例 #7
0
        public void OnCommand(Fougerite.Player player, string cmd, string[] args)
        {
            switch (cmd)
            {
            case "flushdeathmsg":
            {
                if (player.Admin || PermissionSystem.GetPermissionSystem().PlayerHasPermission(player, "deathmsg.flushdeathmsg"))
                {
                    DataStore.GetInstance().Flush("DeathMSGAVG");
                    DataStore.GetInstance().Flush("DeathMSGAVG2");
                    player.MessageFrom(DeathMSGName, "Flushed!");
                }

                break;
            }

            case "deathmsgrd":
            {
                if (player.Admin || PermissionSystem.GetPermissionSystem().PlayerHasPermission(player, "deathmsg.deathmsgrd"))
                {
                    LoadConfig();
                    player.MessageFrom(DeathMSGName, "Reloaded!");
                }

                break;
            }
            }
        }
コード例 #8
0
        public void AddFlags(Administrator administrator, Fougerite.Player myAdmin)
        {
            List <string> flags = (List <string>)Core.adminFlagsList[myAdmin.UID];

            Core.adminFlagsList.Remove(myAdmin.UID);

            foreach (string properName in flags)
            {
                if (properName == "RCON" && !Administrator.GetAdmin(myAdmin.UID).HasPermission("RCON"))
                {
                    myAdmin.MessageFrom(Core.Name, "You can't add the RCON flag to anyone's permissions.");
                    Administrator.NotifyAdmins(string.Format("{0} attempted to add the {1} flag to {2}'s permissions.", myAdmin.Name, properName, administrator.DisplayName));
                }
                else if (administrator.HasPermission(properName))
                {
                    myAdmin.MessageFrom(Core.Name, string.Format("{0} already has the {1} flag.", administrator.DisplayName, properName));
                }
                else
                {
                    administrator.Flags.Add(properName);
                    Administrator.NotifyAdmins(string.Format("{0} added the {1} flag to {2}'s permissions.", myAdmin.Name, properName, administrator.DisplayName));
                    if (properName == "RCON")
                    {
                        Fougerite.Player adminclient = Fougerite.Server.GetServer().FindPlayer(administrator.UserID.ToString());
                        if (adminclient != null)
                        {
                            adminclient.PlayerClient.netUser.admin = true;
                        }
                    }
                }
            }
        }
コード例 #9
0
 public void OnEntityDeployed(Fougerite.Player pl, Fougerite.Entity e, Fougerite.Player actualplacer)
 {
     if (e.Name.ToLower().Contains("camp") || e.Name.ToLower().Contains("furnace") || e.Name.ToLower().Contains("storage") || e.Name.ToLower().Contains("box") || e.Name.ToLower().Contains("bench") || e.Name.ToLower().Contains("sleeping") || e.Name.ToLower().Contains("stash") || e.Name.ToLower().Contains("ceiling") || e.Name.ToLower().Contains("foundation"))
     {
         var location = new Vector3(e.Location.x, e.Location.y, e.Location.z);
         if (e.Name.ToLower().Contains("foundation"))
         {
             location = new Vector3(e.Location.x, e.Location.y + 6f, e.Location.z);
         }
         else if (e.Name.ToLower().Contains("bench"))
         {
             location = new Vector3(e.Location.x, e.Location.y + 1f, e.Location.z);
         }
         if (SearchForRock(location))
         {
             actualplacer.MessageFrom(Name + Version, red + "Not allowed to build so close/inside a Rock " + white + " Your " + e.Name + " has been destroyed");
             if (!actualplacer.Admin)
             {
                 e.Destroy();
             }
             else
             {
                 actualplacer.MessageFrom(Name + Version, green + "Admin Bypass ");
             }
         }
     }
 }
コード例 #10
0
ファイル: BanCommand.cs プロジェクト: salvadj1/Fougerite
 public void BanPlayer(PList.Player ban, Fougerite.Player myAdmin)
 {
     if (ban.UserID == myAdmin.UID)
     {
         myAdmin.MessageFrom(Core.Name, "Seriously? You can't ban yourself.");
         return;
     }
     if (Administrator.IsAdmin(ban.UserID) && !Administrator.GetAdmin(myAdmin.UID).HasPermission("RCON"))
     {
         myAdmin.MessageFrom(Core.Name, ban.DisplayName + " is an administrator. You can't ban administrators.");
         return;
     }
     if (RustPP.Core.blackList.Contains(ban.UserID))
     {
         Logger.LogError(string.Format("[BanPlayer] {0}, id={1} already on blackList.", ban.DisplayName, ban.UserID));
         Core.blackList.Remove(ban.UserID);
     }
     Core.blackList.Add(ban);
     Administrator.DeleteAdmin(ban.UserID);
     Administrator.NotifyAdmins(string.Format("{0} has been banned by {1}.", ban.DisplayName, myAdmin.Name));
     Fougerite.Player client = Fougerite.Server.GetServer().FindPlayer(ban.UserID.ToString());
     if (client != null)
     {
         client.Disconnect();
     }
 }
コード例 #11
0
 public static void OnCommand(Fougerite.Player player, string cmd, string[] args)
 {
     if (cmd == "legitraid")
     {
         if (player.Admin)
         {
             Settings           = new IniParser(PathC);
             RaidTime           = int.Parse(Settings.GetSetting("Settings", "RaidTime"));
             MaxRaidTime        = int.Parse(Settings.GetSetting("Settings", "MaxRaidTime"));
             AllowAllModerators = Settings.GetBoolSetting("Settings", "AllowAllModerators");
             CanOpenChestIfThereIsNoStructureClose = Settings.GetBoolSetting("Settings", "CanOpenChestIfThereIsNoStructureClose");
             AutoWhiteListFriends = Settings.GetBoolSetting("Settings", "AutoWhiteListFriends");
             var Collect = Settings.GetSetting("Settings", "WhiteListedIDs");
             var splits  = Collect.Split(Convert.ToChar(","));
             WhiteListedIDs.Clear();
             foreach (var x in splits)
             {
                 WhiteListedIDs.Add(x);
             }
             var Collect2 = Settings.GetSetting("Settings", "DataStoreTables");
             var splits2  = Collect2.Split(Convert.ToChar(","));
             foreach (var x in splits2)
             {
                 DSNames.Add(x);
             }
             player.MessageFrom("LegitRaid", "Reloaded!");
         }
     }
     else if (cmd == "flushlegita")
     {
         if (player.Admin)
         {
             DataStore.GetInstance().Flush("LegitRaidED");
             player.MessageFrom("LegitRaid", "Flushed!");
         }
     }
     else if (cmd == "raida")
     {
         if (player.Admin || (player.Moderator && AllowAllModerators) || (player.Moderator && WhiteListedIDs.Contains(player.SteamID)))
         {
             bool contains = DataStore.GetInstance().ContainsKey("LegitRaidA", player.UID);
             if (!contains)
             {
                 DataStore.GetInstance().Add("LegitRaidA", player.UID, true);
                 player.MessageFrom("LegitRaid", "<!> Ahora puedes abrir todos los cofres.");
                 file = new System.IO.StreamWriter(PathLog, true);
                 file.WriteLine(DateTime.Now + " " + player.Name + "-" + player.SteamID + " ahora puede abrir todos los cofres.");
                 file.Close();
             }
             else
             {
                 DataStore.GetInstance().Remove("LegitRaidA", player.UID);
                 player.MessageFrom("LegitRaid", "Disabled");
                 file = new System.IO.StreamWriter(PathLog, true);
                 file.WriteLine(DateTime.Now + " " + player.Name + "-" + player.SteamID + " quito el modo raid.");
                 file.Close();
             }
         }
     }
 }
コード例 #12
0
ファイル: ShareCommand.cs プロジェクト: samvds/RustPP
        public void DoorShare(PList.Player friend, Fougerite.Player sharing)
        {
            if (friend.UserID == sharing.UID)
            {
                sharing.MessageFrom(Core.Name, yellow + "☢ " + red + "You can't share doors with yourself.");
                return;
            }
            ArrayList shareList = (ArrayList)shared_doors[sharing.UID];

            if (shareList == null)
            {
                shareList = new ArrayList();
                shared_doors.Add(sharing.UID, shareList);
            }
            if (shareList.Contains(friend.UserID))
            {
                sharing.MessageFrom(Core.Name, string.Format(yellow + "☢ " + red + "You have already shared doors with" + yellow + " {0}" + red + ".", friend.DisplayName));
                return;
            }
            shareList.Add(friend.UserID);
            shared_doors[sharing.UID] = shareList;
            sharing.MessageFrom(Core.Name, string.Format(yellow + "☢ " + green + "You have shared doors with" + yellow + " {0}" + green + ".", friend.DisplayName));
            Fougerite.Player client = Fougerite.Server.GetServer().FindPlayer(friend.UserID.ToString());
            if (client != null)
            {
                client.MessageFrom(Core.Name, string.Format(yellow + "☢ " + green + "Player: " + yellow + "{0} " + green + "has shared doors with you.", sharing.Name));
            }
        }
コード例 #13
0
 private void OnCommand(Fougerite.Player Player, string cmd, string[] args)
 {
     if (cmd == "grant")
     {
         //      /grant <group> <perm>
         //      /grant <user> <group>
         //      /create <group> <inherit group>
         //      /create <group>
         //      /delete <group>
         //      /reloadpermissions
         if (Player.Admin || api.HasPerm("", "permission.*") || api.HasPerm("", "permission.grant"))
         {
             if (args.Length == 2)
             {
                 string group      = null;
                 bool   Group_Perm = false;
                 if (GroupData.ContainsKey(args[0].ToLower().RemoveWhiteSpaces()))
                 {
                     group      = args[0].ToLower().RemoveWhiteSpaces();
                     Group_Perm = true;
                 }
                 else if (GroupData.ContainsKey(args[1].ToLower().RemoveWhiteSpaces()))
                 {
                     group = args[1].ToLower().RemoveWhiteSpaces();
                 }
                 else
                 {
                     Player.MessageFrom("Permissions", "Can not find group!");
                     return;
                 }
                 if (Group_Perm)
                 {
                     string perm = args[1].ToLower().RemoveWhiteSpaces();
                     if (GiveGroupPerm(group, perm))
                     {
                         Player.MessageFrom("Permissions", "Added permission: " + perm + " to group: " + group);
                     }
                     else
                     {
                         Player.MessageFrom("Permissions", "Unable to add permission: " + perm + " to group: " + group);
                     }
                 }
                 else
                 {
                     // Look for player (HWID)
                     // add group to user
                 }
             }
         }
         else
         {
             Player.MessageFrom("Permissions", "You do not have permission to use this command!");
         }
     }
 }
コード例 #14
0
 public void OnCommand(Fougerite.Player pl, string cmd, string[] args)
 {
     if (!pl.Admin)
     {
         pl.Notice("✖", "Usted no tiene acceso a este comando", 5f); return;
     }
     if (cmd == "radzone")
     {
         if (args.Length == 0)
         {
             pl.MessageFrom(Name, green + "---------- RadZones" + white + " by Pompeyo " + green + "----------");
             pl.MessageFrom(Name, white + "/radzone set [zonename] [radius] - Create zone");
             pl.MessageFrom(Name, white + "/radzone edit [zonename] [radius] - Edit radius of zone");
             pl.MessageFrom(Name, white + "/radzone list - List all rad zones");
             pl.MessageFrom(Name, white + "/radzone delete [zonename] - Delete rad zone");
             pl.MessageFrom(Name, green + "--- --- --- --- --- --- --- --- --- --- --- --- ---");
         }
         else
         {
             if (args[0] == "set")
             {
                 if (args.Length >= 2)
                 {
                     CreateZone(pl, args[1], Convert.ToInt32(args[2]));
                 }
                 else
                 {
                     pl.MessageFrom("RadZones", orange + "Wrong usage. See /zone for help.");
                 }
             }
             else if (args[0] == "edit")
             {
                 if (args.Length >= 2)
                 {
                     EditZone(pl, args[1], Convert.ToInt32(args[2]));
                 }
                 else
                 {
                     pl.MessageFrom("RadZones", orange + "Wrong usage. See /radzone for help.");
                 }
             }
             else if (args[0] == "list")
             {
                 ListZones(pl);
                 RadTimer(TimeRad * 1000, null).Start();
             }
             else if (args[0] == "delete")
             {
                 if (args.Length >= 2)
                 {
                     DeleteZone(pl, args[1]);
                 }
                 else
                 {
                     pl.MessageFrom("RadZones", orange + "Wrong usage. Write /radzone delete NAME");
                 }
             }
         }
     }
 }
コード例 #15
0
        public void On_Command(Fougerite.Player player, string cmd, string[] args)
        {
            if (cmd == "yes")
            {
                if (!activevote)
                {
                    player.MessageFrom("TIME_VOTER", this.red + "NO ACTIVE");
                    return;
                }

                if (ids.Contains <ulong>(player.UID))
                {
                    player.MessageFrom("TIME_VOTER", this.red + "YOU HAVE ALREADY VOTED");
                    return;
                }

                player.MessageFrom("TIME_VOTER", this.orange + "You Vote Day");
                yes += 1;
                ids.Add(player.UID);

                Server.GetServer().BroadcastFrom("TIME_VOTER", this.blue + "VOTES: " + yes + " Day | " + no + " Night -- " + this.orange + player.Name + " [ YES ]");
            }
            else if (cmd == "no")
            {
                if (!activevote)
                {
                    player.MessageFrom("TIME_VOTER", this.red + "NO ACTIVE");
                    return;
                }

                if (ids.Contains <ulong>(player.UID))
                {
                    player.MessageFrom("TIME_VOTER", this.red + "YOU HAVE ALREADY VOTED");
                    return;
                }

                player.MessageFrom("TIME_VOTER", this.orange + "You Vote Night");
                no += 1;
                ids.Add(player.UID);

                Server.GetServer().BroadcastFrom("TIME_VOTER", this.blue + "VOTES: " + yes + " Day | " + no + " Night -- " + this.orange + player.Name + " [ NO ]");
            }
            else if (cmd == "timeday")
            {
                if (player.Admin)
                {
                    World.GetWorld().Time = 8;
                }
            }
            else if (cmd == "vote")
            {
                player.MessageFrom("TIME_VOTER", this.blue + "Vote Day --- /yes");
                player.MessageFrom("TIME_VOTER", this.blue + "Vote Night --- /no");
                player.MessageFrom("TIME_VOTER", this.blue + "CURRENT TIME: " + actualtime);
            }
        }
コード例 #16
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            Fougerite.Player sender = Fougerite.Server.Cache[Arguments.argUser.userID];
            if (ChatArguments.Length < 2)
            {
                sender.MessageFrom(Core.Name, "Use " + teal + "/pm \"player\" \"message\"" + white + " - to send a private message.");
                return;
            }
            string search = ChatArguments[0];

            Fougerite.Player recipient = Fougerite.Player.FindByName(search);
            if (recipient == null)
            {
                sender.MessageFrom(Core.Name, yellow + "☢ " + red + "Couldn't find: " + yellow + search);
                return;
            }
            List <string> wth = ChatArguments.ToList();

            wth.Remove(wth[0]);
            string message;

            try
            {
                message = string.Join(" ", wth.ToArray()).Replace(search, "").Trim(new char[] { ' ', '"' }).Replace('"', 'ˮ');
            }
            catch
            {
                sender.MessageFrom(Core.Name, yellow + "☢ " + red + "Something went wrong. Try again.");
                return;
            }
            if (message == string.Empty)
            {
                sender.MessageFrom(Core.Name, "Use " + teal + "/pm \"player\" \"message\"" + white + " - to send a private message.");
            }
            else
            {
                recipient.MessageFrom("[PM]", teal + "[ " + white + sender.Name + teal + " → " + white + "You " + teal + "]: " + white + message);
                sender.MessageFrom("[PM]", teal + "[ " + white + "You" + teal + " → " + white + recipient.Name + teal + " ]: " + white + message);
                //Util.say(recipient.netPlayer, string.Format("\"PM from {0}\"", Arguments.argUser.displayName.Replace('"', 'ˮ')), string.Format("\"{0}\"", message));
                //Util.say(Arguments.argUser.networkPlayer,string.Format("\"PM to {0}\"", recipient.netUser.displayName.Replace('"', 'ˮ')),string.Format("\"{0}\"", message));
                Hashtable replies = (ChatCommand.GetCommand("r") as ReplyCommand).GetReplies();
                if (replies.ContainsKey(recipient.Name))
                {
                    replies[recipient.Name] = sender.Name;
                }
                else
                {
                    replies.Add(recipient.Name, sender.Name);
                }
            }
        }
コード例 #17
0
        public void On_Command(Fougerite.Player player, string cmd, string[] args)
        {
            if (cmd == "fly")
            {
                if (player.Admin || (player.Moderator && Mods))
                {
                    if (args.Length == 0)
                    {
                        if (player.PlayerClient.netUser.playerClient.GetComponent <FlyingPlayer>() != null)
                        {
                            UnityEngine.Object.Destroy(player.PlayerClient.netUser.playerClient
                                                       .GetComponent <FlyingPlayer>());
                            player.MessageFrom("Fly", "Flying Disabled.");
                            return;
                        }

                        player.MessageFrom("Fly", "Usage: /fly number");
                    }
                    else
                    {
                        float speed = 1f;
                        if (args.Length > 0)
                        {
                            float.TryParse(string.Join("", args), out speed);
                        }

                        FlyingPlayer flyingPlayer =
                            player.PlayerClient.netUser.playerClient.GetComponent <FlyingPlayer>();
                        if (flyingPlayer == null)
                        {
                            flyingPlayer = player.PlayerClient.netUser.playerClient.gameObject
                                           .AddComponent <FlyingPlayer>();
                        }

                        flyingPlayer.Refresh();
                        flyingPlayer.speed = speed;
                        player.MessageFrom("Fly", "Flying Speed: " + speed);
                    }
                }
            }
            else if (cmd == "flyreload")
            {
                if (player.Admin)
                {
                    IniParser ini = IniParser();
                    Mods = ini.GetBoolSetting("Settings", "EnableForMods");
                    player.MessageFrom("Fly", "Done");
                }
            }
        }
コード例 #18
0
        private void ListZones(Fougerite.Player pl)
        {
            //juli method
            pl.MessageFrom(Name, green + "--- --- ---" + white + " Listado de Zonas " + green + "--- --- ---");
            ZonesFile = new IniParser(Path.Combine(ModuleFolder, "Zones.ini"));
            foreach (var section in ZonesFile.Sections)
            {
                var zona     = section;
                var location = ZonesFile.GetSetting(section, "Location");
                var radius   = ZonesFile.GetSetting(section, "Radius");;

                pl.MessageFrom(Name, "Zona: " + zona + " Loc:" + location + " Radius: " + radius);
            }
            pl.MessageFrom(Name, green + "--- --- --- --- --- --- --- --- --- --- --- --- ---");
        }
コード例 #19
0
        public void AirdropTowerBehaviour_Use(uint id)
        {
            if (SpawnManager.SpawnedObjects.TryGetValue(id, out var spawnableObjectBehaviour))
            {
                if (Vector3.Distance(FougeritePlayer.Location, spawnableObjectBehaviour.transform.position) <= 4)
                {
                    if (_towerUseDictionary.TryGetValue(id, out var time))
                    {
                        Logger.Log("Dict has value");
                        var timeSpan = DateTime.Now.Subtract(time);
                        Logger.Log(timeSpan.ToString());
                        if (timeSpan.TotalHours < 1.5)
//                        if (timeSpan.TotalMinutes < 1)
                        {
                            var waitSpan = new TimeSpan(1, 30, 0).Subtract(timeSpan);
//                            var waitSpan = new TimeSpan(0, 1, 0).Subtract(timeSpan);
                            FougeritePlayer.MessageFrom("AirdropTower",
                                                        "You still have to wait " + waitSpan.Hours + " hour(s) and " + waitSpan.Minutes +
                                                        " minute(s)");
                            FougeritePlayer.MessageFrom("AirdropTower", "before you can use this AirdropTower!");
                            return;
                        }

                        _towerUseDictionary[id] = DateTime.Now;

                        Logger.Log("Set dict value");
                    }
                    else
                    {
                        _towerUseDictionary[id] = DateTime.Now;
                        Logger.Log("Added dict value");
                    }

                    Logger.Log("Doing shit");

                    World.GetWorld().AirdropAtOriginal(spawnableObjectBehaviour.SpawnableObject.GetPosition());

                    foreach (var rpcDictionaryValue in WorldEditorServer.RPCDictionary.Values)
                    {
                        rpcDictionaryValue.AirdropTowerBehaviour_PlaySound();
                    }
                }
                else
                {
                    AirdropTowerBehaviour_SetNearTower(id, false);
                }
            }
        }
コード例 #20
0
ファイル: Doc1.cs プロジェクト: samvds/CSharp
 void Test(Fougerite.Player pl, string cmd, string[] args)
 {
     if (cmd == "test")
     {
         if (flag.HasFlag(pl, "testflag"))
         {
             flag.RegisterFlag("test2");
         }
         else
         {
             pl.Message("The flag > testflag < is required for this command");
         }
     }
     else if (cmd == "test2")
     {
         if (flag.HasFlag(pl, "testflag"))
         {
             flag.RemoveFlag("test2");
         }
     }
     else if (cmd == "getflag")
     {
         Player target = Server.GetServer().FindPlayer(args[0]);
         pl.MessageFrom(Name, target.Name + " has " + flag.GetFlag(target, args[1]));
     }
 }
コード例 #21
0
 public void OnCommand(Fougerite.Player player, string cmd, string[] args)
 {
     if (cmd == "web")
     {
         player.SendConsoleMessage("messagesociallinks=" + Web + "=" + ClientMessage + "=" + MessageDuration);
     }
     else if (cmd == "discord")
     {
         player.SendConsoleMessage("messagesociallinks=" + Discord + "=" + ClientMessage + "=" + MessageDuration);
     }
     else if (cmd == "facebook")
     {
         player.SendConsoleMessage("messagesociallinks=" + Facebook + "=" + ClientMessage + "=" + MessageDuration);
     }
     else if (cmd == "instagram")
     {
         player.SendConsoleMessage("messagesociallinks=" + Instagram + "=" + ClientMessage + "=" + MessageDuration);
     }
     else if (cmd == "vk")
     {
         player.SendConsoleMessage("messagesociallinks=" + VKontakte + "=" + ClientMessage + "=" + MessageDuration);
     }
     else if (cmd == "sociallinks" && args[0] == "reload" && player.Admin)
     {
         ReloadConfig();
         player.MessageFrom(Name, green + "Settings has been Reloaded :)");
     }
 }
コード例 #22
0
 public void AddSpawn(Fougerite.Player pl)
 {
     spawnsfile = new System.IO.StreamWriter(Path.Combine(ModuleFolder, "Spawns.txt"), true);
     spawnsfile.WriteLine(pl.Location.ToString());
     spawnsfile.Close();
     pl.MessageFrom(Name, green + "Spawn added");
 }
コード例 #23
0
 public void OnCommand(Fougerite.Player pl, string cmd, string[] args)
 {
     if (cmd == "antigrief")
     {
         if (pl.Admin)
         {
             pl.MessageFrom(sys, orange + "I-AntiGrief by ice cold");
             pl.MessageFrom(sys, orange + "Settings Reloaded");
             ReloadSettings();
         }
         else
         {
             pl.MessageFrom(sys, "You dont have acces this command");
         }
     }
 }
コード例 #24
0
 public void KickPlayer(Fougerite.Player badPlayer, Fougerite.Player myAdmin)
 {
     if (badPlayer == myAdmin)
     {
         myAdmin.MessageFrom(Core.Name, "You can't kick yourself.");
     }
     else if (Administrator.IsAdmin(badPlayer.UID) && !Administrator.GetAdmin(myAdmin.UID).HasPermission("RCON"))
     {
         myAdmin.MessageFrom(Core.Name, badPlayer.Name + " is an administrator. You can't kick administrators.");
     }
     else
     {
         Administrator.NotifyAdmins(string.Format("{0} has been kicked by {1}.", badPlayer.Name, myAdmin.Name));
         badPlayer.Disconnect();
     }
 }
コード例 #25
0
ファイル: KickCommand.cs プロジェクト: samvds/RustPP
 public void KickPlayer(Fougerite.Player badPlayer, Fougerite.Player myAdmin)
 {
     if (badPlayer == myAdmin)
     {
         myAdmin.MessageFrom(Core.Name, yellow + "☢ " + red + "You can't kick yourself.");
     }
     else if (Administrator.IsAdmin(badPlayer.UID) && !Administrator.GetAdmin(myAdmin.UID).HasPermission("RCON"))
     {
         myAdmin.MessageFrom(Core.Name, yellow + "☢ " + red + "You can't kick: " + yellow + badPlayer.Name + red + " he/she is an administrator.");
     }
     else
     {
         Administrator.NotifyAdmins(string.Format(yellow + "☢ " + green + "Player: " + yellow + "{0}" + green + " has been kicked by " + yellow + "{1}" + green + ".", badPlayer.Name, myAdmin.Name));
         badPlayer.Disconnect();
     }
 }
コード例 #26
0
 private void OnPlayerHurt(HurtEvent he)
 {
     if (he.VictimIsPlayer && he.Victim != null)
     {
         Fougerite.Player player = (Fougerite.Player)he.Victim;
         if (WaitingUsers.ContainsKey(player.UID))
         {
             if (he.AttackerIsPlayer && he.Attacker != null)
             {
                 Fougerite.Player attacker = (Fougerite.Player)he.Attacker;
                 attacker.MessageFrom("仙域授权", red + "This player haven't logged in yet! He will be kicked if he is AFK.");
             }
             he.DamageAmount = 0f;
         }
         else
         {
             if (he.AttackerIsPlayer && he.Attacker != null)
             {
                 Fougerite.Player attacker = (Fougerite.Player)he.Attacker;
                 if (WaitingUsers.ContainsKey(attacker.UID))
                 {
                     attacker.MessageFrom("仙域授权", red + YouNeedToBeLoggedIn);
                     he.DamageAmount = 0f;
                 }
             }
         }
     }
 }
コード例 #27
0
ファイル: KillCommand.cs プロジェクト: samvds/RustPP
 public void KillPlayer(Fougerite.Player victim, Fougerite.Player myAdmin)
 {
     if (victim == myAdmin)
     {
         myAdmin.MessageFrom(Core.Name, yellow + "☢ " + red + "Suicide isn't painless. " + yellow + Core.Name + red + " won't let you kill yourself.");
     }
     else if (Administrator.IsAdmin(victim.UID) && !Administrator.GetAdmin(victim.UID).HasPermission("RCON"))
     {
         myAdmin.MessageFrom(Core.Name, yellow + "☢ " + red + "You can't kill: " + yellow + victim.Name + red + " he/she is an administrator.");
     }
     else
     {
         Administrator.NotifyAdmins(string.Format(yellow + "☢ " + green + "Player: " + yellow + "{1}" + green + " has been killed by " + yellow + "{0}" + green + ".", myAdmin.Name, victim.Name));
         victim.Kill();
         //TakeDamage.Kill(myAdmin.PlayerClient.netUser.playerClient, victim.PlayerClient.netUser.playerClient, null);
     }
 }
コード例 #28
0
 private void OnEntityDeployedWithPlacer(Fougerite.Player player, Entity e, Fougerite.Player actualplacer)
 {
     if (WaitingUsers.ContainsKey(player.UID))
     {
         e.Destroy();
         player.MessageFrom("仙域授权", red + YouNeedToBeLoggedIn);
     }
 }
コード例 #29
0
 private void OnChat(Fougerite.Player player, ref ChatString text)
 {
     if (WaitingUsers.ContainsKey(player.UID))
     {
         text.NewText = string.Empty;
         player.MessageFrom("仙域授权", red + YouNeedToBeLoggedIn);
     }
 }
コード例 #30
0
        void PlayerBroadcast_Test()
        {
            Log("PlayerBroadcast_Test: Test 1");
            TesterPlayer.Message("");

            Log("PlayerBroadcast_Test: Test 2");
            TesterPlayer.Message(null);

            Log("PlayerBroadcast_Test: Test 3");
            TesterPlayer.MessageFrom("", null);

            Log("PlayerBroadcast_Test: Test 4");
            TesterPlayer.MessageFrom(null, "");

            Log("PlayerBroadcast_Test: Test 5");
            TesterPlayer.MessageFrom(null, null);
        }