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(); }
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 { } }
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); }
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); }
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); }
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); }
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)); } }
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("您输入有误"); * } * } */ }
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; }