Exemplo n.º 1
0
        public void BanPlayer(Fougerite.Player player, string Banner = "Console", string reason = "You were banned.")
        {
            string red   = "[color #FF0000]";
            string green = "[color #009900]";
            string white = "[color #FFFFFF]";

            foreach (Fougerite.Player pl in Server.GetServer().Players)
            {
                if (pl.Admin || pl.Moderator)
                {
                    pl.Message(red + player.Name + white + " was banned by: "
                               + green + Banner);
                    pl.Message(red + " Reason: " + reason);
                }
            }
            IniParser ini = GlobalBanList;

            ini.AddSetting("Ips", player.IP, player.Name);
            ini.AddSetting("Ids", player.SteamID, player.Name);
            ini.AddSetting("NameIps", player.Name, player.IP);
            ini.AddSetting("NameIds", player.Name, player.SteamID);
            ini.AddSetting("AdminWhoBanned", player.Name, Banner);
            ini.Save();
            player.Message(red + " " + reason);
            player.Message(red + " Banned by: " + Banner);
            player.Disconnect();
        }
Exemplo n.º 2
0
 public static void PlayerHurt(ref DamageEvent e)
 {
     try
     {
         HurtEvent he = new HurtEvent(ref e);
         if (!(he.Attacker is NPC) && !(he.Victim is NPC))
         {
             Fougerite.Player attacker = he.Attacker as Fougerite.Player;
             Fougerite.Player victim   = he.Victim as Fougerite.Player;
             Zone3D           zoned    = Zone3D.GlobalContains(attacker);
             if ((zoned != null) && !zoned.PVP)
             {
                 attacker.Message("You are in a PVP restricted area.");
                 he.DamageAmount = 0f;
                 e = he.DamageEvent;
                 return;
             }
             zoned = Zone3D.GlobalContains(victim);
             if ((zoned != null) && !zoned.PVP)
             {
                 attacker.Message(victim.Name + " is in a PVP restricted area.");
                 he.DamageAmount = 0f;
                 e = he.DamageEvent;
                 return;
             }
         }
         if (OnPlayerHurt != null)
         {
             OnPlayerHurt(he);
         }
         e = he.DamageEvent;
     }
     catch { }
 }
Exemplo n.º 3
0
        public bool UnbanByName(string name, string UnBanner = "Consola", Fougerite.Player Sender = null)
        {
            var    ids   = FindIDsOfName(name);
            var    ips   = FindIPsOfName(name);
            string red   = "[color #FF0000]";
            string green = "[color #009900]";
            string white = "[color #FFFFFF]";

            if (ids.Count == 0 && ips.Count == 0)
            {
                if (Sender != null)
                {
                    Sender.Message(red + "Couldn't find any names matching with " + name);
                }
                return(false);
            }
            foreach (Fougerite.Player pl in Players.Where(pl => pl.Admin || pl.Moderator))
            {
                pl.Message(red + name + white + " fue desbaneado por: "
                           + green + UnBanner + white + " Busquedas similares: " + ids.Count);
            }
            if (ips.Count > 0)
            {
                var iptub = ips.Last();
                DataStore.GetInstance().Remove("Ips", iptub);
            }
            if (ids.Count > 0)
            {
                var idtub = ids.Last();
                DataStore.GetInstance().Remove("Ids", idtub);
            }
            return(true);
        }
Exemplo n.º 4
0
        public static bool PlayerConnect(NetUser user)
        {
            bool connected = false;

            try
            {
                if (user.playerClient == null)
                {
                    Logger.LogDebug("PlayerConnect user.playerClient is null");
                    return(false);
                }
                Fougerite.Player item = new Fougerite.Player(user.playerClient);
                Fougerite.Server.GetServer().Players.Add(item);
                Logger.LogDebug("User Connected: " + item.Name + " (" + item.SteamID.ToString() + " | " +
                                item.PlayerClient.netPlayer.ipAddress + ")");
                if (OnPlayerConnected != null)
                {
                    OnPlayerConnected(item);
                }

                connected = user.connected;
                if (Fougerite.Config.GetValue("Fougerite", "tellversion") != "false")
                {
                    item.Message("This server is powered by Fougerite v." + Bootstrap.Version + "!");
                }

                return(connected);
            }
            catch (Exception ex)
            {
                Logger.LogException(ex);
            }
            return(connected);
        }
Exemplo n.º 5
0
        public static bool PlayerConnect(NetUser user)
        {
            bool connected = false;

            if (user.playerClient == null)
            {
                Logger.LogDebug("PlayerConnect user.playerClient is null");
                return(connected);
            }
            ulong uid = user.userID;

            Fougerite.Server server = Fougerite.Server.GetServer();
            Fougerite.Player player = new Fougerite.Player(user.playerClient);
            if (!Fougerite.Server.Cache.ContainsKey(uid))
            {
                Fougerite.Server.Cache.Add(uid, player);
            }
            else
            {
                Fougerite.Server.Cache[uid] = player;
            }

            if (server.Players.Contains(player))
            {
                Logger.LogError(string.Format("[PlayerConnect] Server.Players already contains {0} {1}", player.Name, player.SteamID));
                connected = user.connected;
                return(connected);
            }
            server.Players.Add(player);

            try
            {
                if (OnPlayerConnected != null)
                {
                    OnPlayerConnected(player);
                }
            }
            catch (Exception ex)
            {
                Logger.LogDebug("Failed to call OnConnected event. " + ex.ToString());
                return(connected);
            }

            connected = user.connected;

            if (Fougerite.Config.GetBoolValue("Fougerite", "tellversion"))
            {
                player.Message(string.Format("This server is powered by Fougerite v.{0}!", Bootstrap.Version));
            }
            Logger.LogDebug("User Connected: " + player.Name + " (" + player.SteamID + ")" + " (" + player.IP + ")");
            return(connected);
        }
Exemplo n.º 6
0
        public void BanPlayer(Fougerite.Player player, string Banner = "Console", string reason = "You were banned.", Fougerite.Player Sender = null, bool AnnounceToServer = false)
        {
            bool cancel = Hooks.OnBanEventHandler(new BanEvent(player, Banner, reason, Sender));

            if (cancel)
            {
                return;
            }
            string red   = "[color #FF0000]";
            string green = "[color #009900]";
            string white = "[color #FFFFFF]";

            if (player.IsOnline && !player.IsDisconnecting)
            {
                player.Message(red + " " + reason);
                player.Message(red + " Banned by: " + Banner);
                player.Disconnect();
            }
            if (Sender != null)
            {
                Sender.Message("You banned " + player.Name);
                Sender.Message("Player's IP: " + player.IP);
                Sender.Message("Player's ID: " + player.SteamID);
            }
            if (!AnnounceToServer)
            {
                foreach (Fougerite.Player pl in Players.Where(pl => pl.Admin || pl.Moderator))
                {
                    pl.Message(red + player.Name + white + " was banned by: " + green + Banner);
                    pl.Message(red + " Reason: " + reason);
                }
            }
            else
            {
                Broadcast(red + player.Name + white + " was banned by: " + green + Banner);
                Broadcast(red + " Reason: " + reason);
            }
            BanPlayerIPandID(player.IP, player.SteamID, player.Name, reason, Banner);
        }
Exemplo n.º 7
0
        public static void opbjectWho(Fougerite.Player player)
        {
            string     text       = "耐久度还有 %OBJECT.HEALTH% / %OBJECT.MAXHEALTH%";
            NetUser    Sender     = NetUser.FindByUserID(player.UID);
            float      distance   = player.Admin ? 1000f : 10f;
            GameObject lookObject = Helper.GetLookObject(Helper.GetLookRay(Sender), distance, -1);

            if (lookObject == null)
            {
                player.Message("您面前没有物品");
                return;
            }
            string             newValue   = Helper.NiceName(lookObject.name);
            StructureComponent component  = lookObject.GetComponent <StructureComponent>();
            DeployableObject   component2 = lookObject.GetComponent <DeployableObject>();
            TakeDamage         component3 = lookObject.GetComponent <TakeDamage>();

            Fougerite.Player bySteamID;
            if (component != null)
            {
                bySteamID = Fougerite.Player.FindBySteamID(component._master.ownerID.ToString());
            }
            else
            {
                if (!(component2 != null))
                {
                    player.Message("没有找到所属");
                    return;
                }
                bySteamID = Fougerite.Player.FindBySteamID(component2.ownerID.ToString());
            }

            if (component3 == null)
            {
                text = "";
            }
            else
            {
                text = text.Replace("%OBJECT.HEALTH%", component3.health.ToString());
                text = text.Replace("%OBJECT.MAXHEALTH%", component3.maxHealth.ToString());
            }
            if (bySteamID != null)
            {
                string text2 = "建筑名称 %OBJECT.NAME% 建造主人 %OBJECT.OWNERNAME%. %OBJECT.CONDITION%".Replace("%OBJECT.CONDITION%", text);
                text2 = text2.Replace("%OBJECT.NAME%", newValue).Replace("%OBJECT.OWNERNAME%", bySteamID.Name);
                player.Message(text2);
                bool online = bySteamID.IsOnline;

                if (Sender.admin)
                {
                    if (online)
                    {
                        player.Message("状态:在线");
                    }
                    else
                    {
                        player.Message("状态:离线");
                    }
                    player.Message(string.Concat(new object[]
                    {
                        "玩家最后位置: ",
                        bySteamID.X,
                        ",",
                        bySteamID.Y,
                        ",",
                        bySteamID.Z
                    }));
                }
            }
            else
            {
                player.Message("这个 %OBJECT.NAME% 不拥有名字对象. %OBJECT.CONDITION%".Replace("%OBJECT.NAME%", newValue).Replace("%OBJECT.CONDITION%", text));
            }
        }
Exemplo n.º 8
0
        private void Hooks_OnCommand(Fougerite.Player player, string cmd, string[] args)
        {
            if (cmd == "who")
            {
                Who.opbjectWho(player);
            }
            else if (cmd == "cvip")
            {
                if (player.Admin)
                {
                    if (args.Length == 2)
                    {
                        Fougerite.Player player1 = Fougerite.Player.FindByName(args[0]);
                        if (player1 == null)
                        {
                            player.Message("查询无果,找不到此玩家");
                            return;
                        }
                        else
                        {
                            Vip.SetVip(args[1], player1.SteamID);
                            player.Message("充值成功");
                            player1.Message("恭喜您充值成功!非常感谢您对服务器的支持![比心心]");
                            string cmdText;
                            cmdText = string.Concat(new string[] {
                                "恭喜玩家",
                                player1.Name,
                                "成功充值VIP",
                                args[1],
                                "突破[",
                                Vip.GetCH(args[1]),
                                "]"
                            });
                            Fougerite.Server.GetServer().BroadcastNotice(cmdText);
                        }
                    }
                    else
                    {
                        player.Message("您输入有误[/cvip 玩家名 等级]");
                    }
                }
            }
            else if (cmd == "svip")
            {
                if (player.Admin)
                {
                    if (args.Length == 2)
                    {
                        Fougerite.Player player1 = Fougerite.Player.FindByName(args[0]);
                        if (player1 == null)
                        {
                            player.Message("查询无果,找不到此玩家");
                            return;
                        }
                        else
                        {
                            Vip.SetVip(args[1], player1.SteamID);
                            player.Message("设置成功");
                        }
                    }
                    else
                    {
                        player.Message("您输入有误[/cvip 玩家名 等级]");
                    }
                }
            }
            else if (cmd == "kit")
            {
                string kitlist = string.Concat(new string[] {
                    "starter[小礼包]❀",
                    "xklb[小康礼包]❀",
                    "vip[VIP大礼包]❀",
                    "vipyf[VIP隐身衣]"
                });
                if (args.Length == 0)
                {
                    player.Message(kitlist);
                }
                else if (args.Length == 1)
                {
                    if (args[0] == "starter")
                    {
                        Kit.starter(player);
                    }
                    else if (args[0] == "xklb")
                    {
                        Kit.xklb(player);
                    }
                    else if (args[0] == "vip")
                    {
                        Kit.vip(player);
                    }
                    else if (args[0] == "vipyf")
                    {
                        Kit.vipyf(player);
                    }
                }
            }
            else if (cmd == "vipsearch")
            {
                if (args.Length == 0)
                {
                    Vip.Vipsearch(player);
                }
                if (args.Length == 1)
                {
                    Vip.Vipsearch(Fougerite.Player.FindByName(args[0]));
                }
            }
            else if (cmd == "remove")
            {
                if (args.Length == 0)
                {
                    Kit.remove(player, player.Name);
                }
                if (args.Length == 1)
                {
                    Kit.remove(player, args[0]);
                }
            }
            else if (cmd == "fps")
            {
                NetUser Sender = NetUser.FindByUserID(player.UID);
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "gfx.ssaa false");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "gfx.ssao false");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "gfx.bloom false");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "gfx.grain false");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "gfx.shafts false");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "gfx.tonemap false");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "grass.on false");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "grass.forceredraw false");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "grass.displacement false");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "grass.shadowcast false");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "grass.shadowreceive false");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "render.level 0");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "render.vsync false");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "water.level -1");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "water.reflection false");
                player.Notice("优化完毕");
            }
            else if (cmd == "quality")
            {
                NetUser Sender = NetUser.FindByUserID(player.UID);
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "gfx.ssaa true");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "gfx.ssao true");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "gfx.bloom true");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "gfx.grain true");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "gfx.shafts true");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "gfx.tonemap true");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "grass.on true");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "grass.forceredraw true");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "grass.displacement true");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "grass.shadowcast true");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "grass.shadowreceive true");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "render.level 1");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "render.vsync true");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "water.level 1");
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "water.reflection true");
                player.Notice("成功开启最高特效");
            }
            else if (cmd == "suicide")
            {
                NetUser Sender = NetUser.FindByUserID(player.UID);
                ConsoleNetworker.SendClientCommand(Sender.networkPlayer, "suicide");
            }
            else if (cmd == "dvip")
            {
                if (args.Length == 1)
                {
                    if (args[0] == "1")
                    {
                        if (Money.HasMoney(player, 1000))
                        {
                            Money.RemoveMoney(player, 1000);
                            Vip.SetVip(args[0], player.SteamID);
                            player.Message("恭喜您充值成功!非常感谢您对服务器的支持![比心心]");
                            string cmdText;
                            cmdText = string.Concat(new string[] {
                                "恭喜玩家",
                                player.Name,
                                "成功充值VIP",
                                args[0],
                                "突破[",
                                Vip.GetCH(args[0]),
                                "]"
                            });
                            Fougerite.Server.GetServer().BroadcastNotice(cmdText);
                        }
                        else
                        {
                            player.Message("抱歉,您的斩仙币不足");
                        }
                    }
                    else if (args[0] == "2")
                    {
                        if (Money.HasMoney(player, 2000))
                        {
                            Money.RemoveMoney(player, 2000);
                            Vip.SetVip(args[0], player.SteamID);
                            player.Message("恭喜您充值成功!非常感谢您对服务器的支持![比心心]");
                            string cmdText;
                            cmdText = string.Concat(new string[] {
                                "恭喜玩家",
                                player.Name,
                                "成功充值VIP",
                                args[0],
                                "突破[",
                                Vip.GetCH(args[0]),
                                "]"
                            });
                            Fougerite.Server.GetServer().BroadcastNotice(cmdText);
                        }
                        else
                        {
                            player.Message("抱歉,您的斩仙币不足");
                        }
                    }
                    else if (args[0] == "3")
                    {
                        if (Money.HasMoney(player, 3000))
                        {
                            Money.RemoveMoney(player, 3000);
                            Vip.SetVip(args[0], player.SteamID);
                            player.Message("恭喜您充值成功!非常感谢您对服务器的支持![比心心]");
                            string cmdText;
                            cmdText = string.Concat(new string[] {
                                "恭喜玩家",
                                player.Name,
                                "成功充值VIP",
                                args[0],
                                "突破[",
                                Vip.GetCH(args[0]),
                                "]"
                            });
                            Fougerite.Server.GetServer().BroadcastNotice(cmdText);
                        }
                        else
                        {
                            player.Message("抱歉,您的斩仙币不足");
                        }
                    }
                }
                else
                {
                    player.Message("输入/dvip+空格+等级即可兑换(目前最高为3级)");
                    player.Message("VIP1-1000斩仙币");
                    player.Message("VIP2-2000斩仙币");
                    player.Message("VIP3-3000斩仙币");
                }
            }

            /*else if (cmd == "changeowner")
             * {
             *   if (player.Admin)
             *   {
             *       if (args.Length == 2)
             *       {
             *           Fougerite.Player player1 = Fougerite.Player.FindBySteamID(args[0]);
             *           if (player1 != null)
             *           {
             *               foreach (Fougerite.Entity ob in Fougerite.World.GetWorld().Entities)
             *               {
             *                   if (ob.OwnerID == args[1]) ob.ChangeOwner(player1);
             *               }
             *               player.Message("更改成功");
             *           }
             *           else player.Message("找不到玩家");
             *       }
             *       else player.Message("您输入有误");
             *   }
             * }  */
        }
Exemplo n.º 9
0
        public static bool PlayerConnect(NetUser user)
        {
            bool connected = false;
            try
            {
                if (user.playerClient == null)
                {
                    Logger.LogDebug("PlayerConnect user.playerClient is null");
                    return false;
                }
                Fougerite.Player item = new Fougerite.Player(user.playerClient);
                Fougerite.Server.GetServer().Players.Add(item);
                Logger.LogDebug("User Connected: " + item.Name + " (" + item.SteamID.ToString() + " | " +
                                item.PlayerClient.netPlayer.ipAddress + ")");
                if (OnPlayerConnected != null)
                    OnPlayerConnected(item);

                connected = user.connected;
                if (Fougerite.Config.GetValue("Fougerite", "tellversion") != "false")
                    item.Message("This server is powered by Fougerite v." + Bootstrap.Version + "!");

                return connected;
            }
            catch (Exception ex)
            {
                Logger.LogException(ex);
            }
            return connected;
        }