4.2.7 Code Freeze
Merge branch 'general-devel'
This commit is contained in:
commit
5dfb1a806c
4 changed files with 71 additions and 83 deletions
|
|
@ -1,4 +1,4 @@
|
|||
# TShock [](https://travis-ci.org/NyxStudios/TShock)
|
||||
# TShock [](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
|
||||
|
||||
|
|
|
|||
|
|
@ -623,7 +623,7 @@ namespace TShockAPI
|
|||
|
||||
IEnumerable<Command> 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)
|
||||
|
|
|
|||
|
|
@ -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<string> Parameters { get; set; }
|
||||
public class PlayerCommandEventArgs : HandledEventArgs
|
||||
{
|
||||
public TSPlayer Player { get; set; }
|
||||
public string CommandName { get; set; }
|
||||
public string CommandText { get; set; }
|
||||
public List<string> Parameters { get; set; }
|
||||
public IEnumerable<Command> 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<string> args, ref IEnumerable<Command> 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<string> args, ref IEnumerable<Command> 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue