diff --git a/README.md b/README.md index 72479628..86aa841b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# TShock [![Build Status](https://travis-ci.org/NyxStudios/TShock.png?branch=general-devel)](https://travis-ci.org/NyxStudios/TShock) +# TShock [![Build Status](https://travis-ci.org/NyxStudios/TShock.png?branch=general-devel)](https://travis-ci.org/NyxStudios/TShock) TShock is a server modification for Terraria, written in C#, and based upon the [Terraria Server API](https://github.com/Deathmax/TerrariaAPI-Server). It uses JSON for configuration management, and offers several features not present in the Terraria Server normally. @@ -18,6 +18,7 @@ Feeling like helping out? Want to find an awesome server? Some awesome plugins? * [Website & Forums](https://tshock.co/xf/) * [Wiki](https://tshock.atlassian.net/wiki/display/TSHOCKPLUGINS/Home) +* [Join our chat (supports IRC, XMPP, iOS, Android, Web)](http://chat.tshock.co/) ## Download diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs index f186e688..c04f2b00 100755 --- a/TShockAPI/Commands.cs +++ b/TShockAPI/Commands.cs @@ -623,7 +623,7 @@ namespace TShockAPI IEnumerable cmds = ChatCommands.FindAll(c => c.HasAlias(cmdName)); - if (Hooks.PlayerHooks.OnPlayerCommand(player, cmdName, cmdText, args, ref cmds)) + if (Hooks.PlayerHooks.OnPlayerCommand(player, cmdName, cmdText, args, ref cmds, cmdPrefix)) return true; if (cmds.Count() == 0) diff --git a/TShockAPI/Hooks/PlayerHooks.cs b/TShockAPI/Hooks/PlayerHooks.cs index 73e862a8..08c8ef64 100644 --- a/TShockAPI/Hooks/PlayerHooks.cs +++ b/TShockAPI/Hooks/PlayerHooks.cs @@ -21,30 +21,31 @@ using System.ComponentModel; namespace TShockAPI.Hooks { - public class PlayerPostLoginEventArgs - { - public TSPlayer Player { get; set; } - public PlayerPostLoginEventArgs(TSPlayer ply) - { - Player = ply; - } - } + public class PlayerPostLoginEventArgs + { + public TSPlayer Player { get; set; } + public PlayerPostLoginEventArgs(TSPlayer ply) + { + Player = ply; + } + } - public class PlayerPreLoginEventArgs : HandledEventArgs - { - public TSPlayer Player { get; set; } - public string LoginName { get; set; } - public string Password { get; set; } - } + public class PlayerPreLoginEventArgs : HandledEventArgs + { + public TSPlayer Player { get; set; } + public string LoginName { get; set; } + public string Password { get; set; } + } - public class PlayerCommandEventArgs : HandledEventArgs - { - public TSPlayer Player { get; set; } - public string CommandName { get; set; } - public string CommandText { get; set; } - public List Parameters { get; set; } + public class PlayerCommandEventArgs : HandledEventArgs + { + public TSPlayer Player { get; set; } + public string CommandName { get; set; } + public string CommandText { get; set; } + public List Parameters { get; set; } public IEnumerable CommandList { get; set; } - } + public string CommandPrefix { get; set; } + } public class PlayerChatEventArgs : HandledEventArgs { @@ -53,59 +54,59 @@ namespace TShockAPI.Hooks public string TShockFormattedText { get; set; } } - public static class PlayerHooks - { - public delegate void PlayerPostLoginD(PlayerPostLoginEventArgs e); - public static event PlayerPostLoginD PlayerPostLogin; + public static class PlayerHooks + { + public delegate void PlayerPostLoginD(PlayerPostLoginEventArgs e); + public static event PlayerPostLoginD PlayerPostLogin; - public delegate void PlayerPreLoginD(PlayerPreLoginEventArgs e); - public static event PlayerPreLoginD PlayerPreLogin; + public delegate void PlayerPreLoginD(PlayerPreLoginEventArgs e); + public static event PlayerPreLoginD PlayerPreLogin; - public delegate void PlayerCommandD(PlayerCommandEventArgs e); - public static event PlayerCommandD PlayerCommand; + public delegate void PlayerCommandD(PlayerCommandEventArgs e); + public static event PlayerCommandD PlayerCommand; public delegate void PlayerChatD(PlayerChatEventArgs e); public static event PlayerChatD PlayerChat; - public static void OnPlayerPostLogin(TSPlayer ply) - { - if (PlayerPostLogin == null) - { - return; - } + public static void OnPlayerPostLogin(TSPlayer ply) + { + if (PlayerPostLogin == null) + { + return; + } - PlayerPostLoginEventArgs args = new PlayerPostLoginEventArgs(ply); - PlayerPostLogin(args); - } + PlayerPostLoginEventArgs args = new PlayerPostLoginEventArgs(ply); + PlayerPostLogin(args); + } - public static bool OnPlayerCommand(TSPlayer player, string cmdName, string cmdText, List args, ref IEnumerable commands) - { - if (PlayerCommand == null) - { - return false; - } - PlayerCommandEventArgs playerCommandEventArgs = new PlayerCommandEventArgs() - { - Player = player, - CommandName = cmdName, - CommandText = cmdText, - Parameters = args, - CommandList = commands - }; - PlayerCommand(playerCommandEventArgs); - commands = playerCommandEventArgs.CommandList; - return playerCommandEventArgs.Handled; - } + public static bool OnPlayerCommand(TSPlayer player, string cmdName, string cmdText, List args, ref IEnumerable commands, string cmdPrefix) + { + if (PlayerCommand == null) + { + return false; + } + PlayerCommandEventArgs playerCommandEventArgs = new PlayerCommandEventArgs() + { + Player = player, + CommandName = cmdName, + CommandText = cmdText, + Parameters = args, + CommandList = commands, + CommandPrefix = cmdPrefix, + }; + PlayerCommand(playerCommandEventArgs); + return playerCommandEventArgs.Handled; + } - public static bool OnPlayerPreLogin(TSPlayer ply, string name, string pass) - { - if (PlayerPreLogin == null) - return false; + public static bool OnPlayerPreLogin(TSPlayer ply, string name, string pass) + { + if (PlayerPreLogin == null) + return false; - var args = new PlayerPreLoginEventArgs {Player = ply, LoginName = name, Password = pass}; - PlayerPreLogin(args); - return args.Handled; - } + var args = new PlayerPreLoginEventArgs {Player = ply, LoginName = name, Password = pass}; + PlayerPreLogin(args); + return args.Handled; + } public static void OnPlayerChat(TSPlayer ply, string rawtext, ref string tshockText) { @@ -116,5 +117,5 @@ namespace TShockAPI.Hooks PlayerChat(args); tshockText = args.TShockFormattedText; } - } + } } diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 1c8177a7..4374c295 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -1132,26 +1132,12 @@ namespace TShockAPI WorldGen.genRand = new Random(); } - if (args.Command.StartsWith("playing") || args.Command.StartsWith("{0}playing".SFormat(Commands.Specifier))) - { - int count = 0; - foreach (TSPlayer player in Players) - { - if (player != null && player.Active) - { - count++; - TSPlayer.Server.SendInfoMessage("{0} ({1}) [{2}] <{3}>", player.Name, player.IP, - player.Group.Name, player.UserAccountName); - } - } - TSPlayer.Server.SendInfoMessage("{0} players connected.", count); - } - else if (args.Command == "autosave") + if (args.Command == "autosave") { Main.autoSave = Config.AutoSave = !Config.AutoSave; Log.ConsoleInfo("AutoSave " + (Config.AutoSave ? "Enabled" : "Disabled")); } - else if (args.Command.StartsWith(Commands.Specifier)) + else if (args.Command.StartsWith(Commands.Specifier) || args.Command.StartsWith(Commands.SilentSpecifier)) { Commands.HandleCommand(TSPlayer.Server, args.Command); }