Merge remote-tracking branch 'origin/general-devel' into fragments

This commit is contained in:
Lucas Nicodemus 2017-12-09 21:06:47 -07:00
commit 3e5c1bf0c5
6 changed files with 31 additions and 7 deletions

View file

@ -165,10 +165,16 @@ namespace TShockAPI.CLI
{
_source = source;
for (int i = 0; i < (source.Length - 1 == 0 ? 1 : source.Length - 1); i++)
for (int i = 0; i < (source.Length - 1 == 0 ? 1 : source.Length); i++)
{
string flag = source[i].ToLowerInvariant();
string argument = null;
if (string.IsNullOrWhiteSpace(flag))
{
continue;
}
if (i + 1 < source.Length)
{
argument = source[i + 1];

View file

@ -616,6 +616,10 @@ namespace TShockAPI
{
HelpText = "Sends a PM to a player."
});
add(new Command(Permissions.createdumps, CreateDumps, "dump-reference-data")
{
HelpText = "Creates a reference tables for Terraria data types and the TShock permission system in the server folder."
});
#endregion
add(new Command(Aliases, "aliases")
@ -5178,6 +5182,14 @@ namespace TShockAPI
args.Player.SendErrorMessage("No command or command alias matching \"{0}\" found.", givenCommandName);
}
private static void CreateDumps(CommandArgs args)
{
TShock.Utils.DumpPermissionMatrix("PermissionMatrix.txt");
TShock.Utils.Dump(false);
args.Player.SendSuccessMessage("Your reference dumps have been created in the server folder.");
return;
}
#endregion General Commands
#region Cheat Commands

View file

@ -172,7 +172,8 @@ namespace TShockAPI.DB
Permissions.serverinfo,
Permissions.settempgroup,
Permissions.spawnrate,
Permissions.tpoverride));
Permissions.tpoverride,
Permissions.createdumps));
}
// Load Permissions from the DB

View file

@ -128,6 +128,9 @@ namespace TShockAPI
[Description("User can download updates to plugins that are currently running.")]
public static readonly string updateplugins = "tshock.cfg.updateplugins";
[Description("User can create reference files of Terraria IDs and the permission matrix in the server folder.")]
public static readonly string createdumps = "tshock.cfg.createdumps";
// tshock.ignore nodes
[Description("Prevents you from being reverted by kill tile abuse detection.")]

View file

@ -1204,9 +1204,8 @@ namespace TShockAPI
Permissions.DumpDescriptions();
ServerSideCharacters.ServerSideConfig.DumpDescriptions();
RestManager.DumpDescriptions();
DumpPermissionMatrix("PermissionMatrix.txt");
DumpBuffs("BuffList.txt");
DumpItems("Items-1_0.txt", -48, 235);
DumpItems("Items-1_0.txt", 1, 235);
DumpItems("Items-1_1.txt", 235, 604);
DumpItems("Items-1_2.txt", 604, 2749);
DumpItems("Items-1_3.txt", 2749, Main.maxItemTypes);
@ -1226,9 +1225,9 @@ namespace TShockAPI
Main.recipe[i] = new Recipe();
}
// Dumps a matrix of all permissions and all groups in markdown format
// Hard coded to default groups because apparently we have poor querying tools
public void DumpPermissionMatrix(string path)
/// <summary>Dumps a matrix of all permissions & all groups in Markdown table format.</summary>
/// <param name="path">The save destination.</param>
internal void DumpPermissionMatrix(string path)
{
StringBuilder output = new StringBuilder();
output.Append("|Permission|");