From c4cf2d496ddd1dc871be77a861a793d78dd77da2 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sun, 9 Oct 2016 21:04:53 -0600
Subject: [PATCH 01/38] Changed the taken account message to be more clear
Thanks to Gameroom, Kirbyrocket, ProfessorX, etc. for drawing attention to this.
---
TShockAPI/Commands.cs | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index aea00b09f..089bf6d26 100755
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -993,7 +993,8 @@ private static void RegisterUser(CommandArgs args)
}
else
{
- args.Player.SendErrorMessage("Account " + user.Name + " has already been registered.");
+ args.Player.SendErrorMessage("Sorry, " + user.Name + " was already taken by another person.");
+ args.Player.SendErrorMessage("Please try a different username.");
TShock.Log.ConsoleInfo(args.Player.Name + " failed to register an existing account: " + user.Name);
}
}
From 9d2b6555054a7070727c7321ee0908a044f73b0a Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Mon, 10 Oct 2016 16:58:23 -0600
Subject: [PATCH 02/38] Update contributing with new pr-wanted & suggestion
stuff
---
CONTRIBUTING.md | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 7d51b3b05..e0509bc5e 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,3 +1,5 @@
+_When in doubt, make an issue. If any of these instructions are unclear, make an issue to discuss your issue or suggestion._
+
### Issue Guidelines
Please follow these simple requirements before posting a bug report:
@@ -20,11 +22,21 @@ Need help? Drop by Slack and we'll be happy to explain it with more words, step
### TShock Additions
-If something is better suited to be a plugin for TShock, rather than a TShock core feature, it should not be added!
+If something is better suited to be a plugin for TShock, rather than a TShock core feature, it should not be added! Project scope is at times questionable, though, so create an issue on Github for discussion first. If an issue is completely outside of the scope of TShock, it will be made clear in that issue what it is.
+
+_If you are confused, make a suggestion. We will determine scope and relevance for you._
### Pull Request Dev Guidelines
-These guidelines are for all contributors. Please join our Slack instance and ask about your idea first, if you're implementing a new feature, system, or changing an existing implementation. Pull requests that change large feature sets or swathes of code will be dissected for quality and purpose prior to approval, and requests that conflict with a team developer's work may be declined if the project is already being worked on internally, but not released. In addition, issues assigned to Nyx developers that are recent and fresh should be considered a no-go zone, while that developer works on their solution outside the scope of Github.
+These guidelines are for all contributors.
+
+* Create an issue first to suggest an improvement or feature addition to TShock.
+* Active developers will then give a go/no go for implementation. This is scope related: if an issue is within the scope of TShock, it will be tagged 'pr-wanted.'
+* After 'pr-wanted' has been added, an issue should be considered workable in a pull request fashion.
+* If you, as a developer, want to claim an issue for a PR, as soon as possible start work and note that in both the original issue and the new PR. The 'pr-wanted' tag will remain but the active PR will become the center for discussion for your implementation.
+* If a TShock core developer takes an issue, they'll be assigned to the issue and pull the pr-wanted tag off. TShock core developers should not pull a issue out of 'pr-wanted' unless the PR is going nowhere or needs massive rework to be implemented correctly. If your issue was taken by a TShock developer and you were actively developing it in a PR, you should _make it clear as soon as possible that a process error has been made_ so that the your development resources and our development resources aren't wasted.
+
+_The pr-wanted tag indicates an issue should be implemented but no developers are currently available to work an issue._
Even if you have write access to the repository, follow [Github flow](https://guides.github.com/introduction/flow/) when sending commits. Don't send commits directly to either ```master``` or ```general-devel``` unless those commits modify either the deploy scripts or non-code components. If it compiles, follow Github Flow.
From 8a593f950412e7c101cba20ae607f1b19d513ccc Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Mon, 10 Oct 2016 17:06:37 -0600
Subject: [PATCH 03/38] Add note about taking suggestions
---
CONTRIBUTING.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e0509bc5e..8bef9d760 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -26,6 +26,8 @@ If something is better suited to be a plugin for TShock, rather than a TShock co
_If you are confused, make a suggestion. We will determine scope and relevance for you._
+_If a person makes a suggestion in Slack, capture the suggestion as a Github issue. If a suggestion crops up on the forums, make a Github issue to capture it. If you want, direct the user to make a suggestion on Github, but set an alarm/timer/reminder so that if they don't know how to use Github or they don't have an account, an issue is still made and discussed. Make it clear that the issue is a surrogate issue for a suggestion from Slack/the forums too._
+
### Pull Request Dev Guidelines
These guidelines are for all contributors.
From cff0ecbc60a76c2729213e7c4fc457115eb080f2 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Mon, 10 Oct 2016 17:09:17 -0600
Subject: [PATCH 04/38] Add submodule init note change (thanks @levi-middleton)
---
CONTRIBUTING.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 8bef9d760..6fdf68550 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -13,7 +13,7 @@ Please follow these simple requirements before posting a bug report:
Note: This includes the API by default. If you need only the API, you need to cd into that folder and do the following with the .sln file for the API. For those new to C#, the .sln and .csproj files contain the necessary definitions to do a complete source build using Microsoft or Mono build tools.
- Checkout the source.
-- Initialize the submodules: ```git submodule init```
+- Initialize the submodules: ```git submodule update --init```
- Open the source in your favorite text editor that supports .NET building and press the build button OR
- Run ```msbuild TShock.sln``` in the root of the cloned folder on Windows in a 'Developer Command Prompt' OR
- Run ```xbuild TShock.sln``` in the root of the cloned folder on Unix.
From 0e97f299ee17b7392cfc7ff29aab25f73ff71533 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Mon, 10 Oct 2016 18:21:19 -0600
Subject: [PATCH 05/38] Gonna be completely honest I forgot
I started typing this commit message and then forgot what it was.
I'm sure it's related to what wolfje said though.
---
CONTRIBUTING.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6fdf68550..e5bd9051b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -36,9 +36,9 @@ These guidelines are for all contributors.
* Active developers will then give a go/no go for implementation. This is scope related: if an issue is within the scope of TShock, it will be tagged 'pr-wanted.'
* After 'pr-wanted' has been added, an issue should be considered workable in a pull request fashion.
* If you, as a developer, want to claim an issue for a PR, as soon as possible start work and note that in both the original issue and the new PR. The 'pr-wanted' tag will remain but the active PR will become the center for discussion for your implementation.
-* If a TShock core developer takes an issue, they'll be assigned to the issue and pull the pr-wanted tag off. TShock core developers should not pull a issue out of 'pr-wanted' unless the PR is going nowhere or needs massive rework to be implemented correctly. If your issue was taken by a TShock developer and you were actively developing it in a PR, you should _make it clear as soon as possible that a process error has been made_ so that the your development resources and our development resources aren't wasted.
+* If a TShock core developer takes an issue, they'll be assigned to the issue. If your issue was taken by a TShock developer and you were actively developing it in a PR, you should _make it clear as soon as possible that a process error has been made_ so that the your development resources and our development resources aren't wasted.
-_The pr-wanted tag indicates an issue should be implemented but no developers are currently available to work an issue._
+_The pr-wanted tag indicates an issue should be implemented. If an issue has a developer assigned, it indicates that they're working on it. When in doubt, ask where an issue is before starting work (so you don't waste time)!_
Even if you have write access to the repository, follow [Github flow](https://guides.github.com/introduction/flow/) when sending commits. Don't send commits directly to either ```master``` or ```general-devel``` unless those commits modify either the deploy scripts or non-code components. If it compiles, follow Github Flow.
From 0f86c6bf0ffe03d6a29d130395ee8cc2d72e6798 Mon Sep 17 00:00:00 2001
From: White
Date: Thu, 13 Oct 2016 12:49:45 +1030
Subject: [PATCH 06/38] Submodule update for wyverns build
---
TerrariaServerAPI | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TerrariaServerAPI b/TerrariaServerAPI
index eb5261cc7..651dac498 160000
--- a/TerrariaServerAPI
+++ b/TerrariaServerAPI
@@ -1 +1 @@
-Subproject commit eb5261cc7dc51c1550558f7acd97687982d617ae
+Subproject commit 651dac4982d80f0791a887447776d7d7eba1e41b
From b6267bbaa7dbcaf1b652d7f4983e62dce2b11434 Mon Sep 17 00:00:00 2001
From: Enerdy
Date: Fri, 14 Oct 2016 23:07:29 +0100
Subject: [PATCH 07/38] Auth system now checks if a superadmin exists The
'auth-verify' command was also removed and its alias was added to 'auth',
which now does both things.
---
TShockAPI/Commands.cs | 71 +++++++++++++++++--------------------------
TShockAPI/TShock.cs | 47 ++++++++++++++++------------
2 files changed, 55 insertions(+), 63 deletions(-)
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index 089bf6d26..a00c59009 100755
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -208,15 +208,11 @@ public static void InitCommands()
ChatCommands.Add(cmd);
};
- add(new Command(AuthToken, "auth")
+ add(new Command(AuthToken, "auth", "auth-verify")
{
AllowServer = false,
HelpText = "Used to authenticate as superadmin when first setting up TShock."
});
- add(new Command(Permissions.authverify, AuthVerify, "auth-verify")
- {
- HelpText = "Used to verify that you have correctly set up TShock."
- });
add(new Command(Permissions.user, ManageUsers, "user")
{
DoLog = false,
@@ -4627,56 +4623,45 @@ private static void AuthToken(CommandArgs args)
TShock.Log.Warn("{0} attempted to use {1}auth even though it's disabled.", args.Player.IP, Specifier);
return;
}
- int givenCode = Convert.ToInt32(args.Parameters[0]);
- if (givenCode == TShock.AuthToken && args.Player.Group.Name != "superadmin")
+
+ // If the user account is already a superadmin (permanent), disable the system
+ if (args.Player.IsLoggedIn && args.Player.tempGroup == null && args.Player.Group.Name == new SuperAdminGroup().Name)
{
- try
- {
- args.Player.Group = TShock.Utils.GetGroup("superadmin");
- args.Player.SendInfoMessage("Superadmin has been temporarily given to you. It will be removed on logout.");
- args.Player.SendInfoMessage("Please use the following to create a permanent account for you.");
- args.Player.SendInfoMessage("{0}user add superadmin", Specifier);
- args.Player.SendInfoMessage("Creates: with the password as part of the superadmin group.");
- args.Player.SendInfoMessage("Please use {0}login after this process.", Specifier);
- args.Player.SendInfoMessage("If you understand, please {0}login now, and type {0}auth-verify.", Specifier);
- }
- catch (UserManagerException ex)
- {
- TShock.Log.ConsoleError(ex.ToString());
- args.Player.SendErrorMessage(ex.Message);
- }
+ args.Player.SendSuccessMessage("Your new account has been verified, and the {0}auth system has been turned off.", Specifier);
+ args.Player.SendSuccessMessage("You can always use the {0}user command to manage players.", Specifier);
+ args.Player.SendSuccessMessage("The auth system will remain disabled as long as a superadmin exists (even if you delete auth.lck).");
+ args.Player.SendSuccessMessage("Share your server, talk with other admins, and more on our forums -- https://tshock.co/");
+ args.Player.SendSuccessMessage("Thank you for using TShock for Terraria!");
+ FileTools.CreateFile(Path.Combine(TShock.SavePath, "auth.lck"));
+ File.Delete(Path.Combine(TShock.SavePath, "authcode.txt"));
+ TShock.AuthToken = 0;
return;
}
- if (args.Player.Group.Name == "superadmin")
+ if (args.Parameters.Count == 0)
{
- args.Player.SendInfoMessage("Please disable the auth system! If you need help, consult the forums. https://tshock.co/");
- args.Player.SendInfoMessage("This account is superadmin, please do the following to finish your install:");
- args.Player.SendInfoMessage("Please use {0}login to login from now on.", Specifier);
- args.Player.SendInfoMessage("If you understand, please {0}login now, and type {0}auth-verify.", Specifier);
+ args.Player.SendErrorMessage("You must provide an auth code!");
return;
}
- args.Player.SendErrorMessage("Incorrect auth code. This incident has been logged.");
- TShock.Log.Warn(args.Player.IP + " attempted to use an incorrect auth code.");
- }
-
- private static void AuthVerify(CommandArgs args)
- {
- if (TShock.AuthToken == 0)
+ int givenCode;
+ if (!Int32.TryParse(args.Parameters[0], out givenCode) || givenCode != TShock.AuthToken)
{
- args.Player.SendWarningMessage("It appears that you have already turned off the auth token.");
- args.Player.SendWarningMessage("If this is a mistake, delete auth.lck.");
+ args.Player.SendErrorMessage("Incorrect auth code. This incident has been logged.");
+ TShock.Log.Warn(args.Player.IP + " attempted to use an incorrect auth code.");
return;
}
- args.Player.SendSuccessMessage("Your new account has been verified, and the /auth system has been turned off.");
- args.Player.SendSuccessMessage("You can always use the /user command to manage players. Don't just delete the auth.lck.");
- args.Player.SendSuccessMessage("Share your server, talk with other admins, and more on our forums -- https://tshock.co/");
- args.Player.SendSuccessMessage("Thank you for using TShock for Terraria!");
- FileTools.CreateFile(Path.Combine(TShock.SavePath, "auth.lck"));
- File.Delete(Path.Combine(TShock.SavePath, "authcode.txt"));
- TShock.AuthToken = 0;
+ if (args.Player.Group.Name != "superadmin")
+ args.Player.tempGroup = new SuperAdminGroup();
+
+ args.Player.SendInfoMessage("Superadmin has been temporarily given to you. It will be removed on logout.");
+ args.Player.SendInfoMessage("Please use the following to create a permanent account for you.");
+ args.Player.SendInfoMessage("{0}user add superadmin", Specifier);
+ args.Player.SendInfoMessage("Creates: with the password as part of the superadmin group.");
+ args.Player.SendInfoMessage("Please use {0}login after this process.", Specifier);
+ args.Player.SendInfoMessage("If you understand, please {0}login now, and then type {0}auth.", Specifier);
+ return;
}
private static void ThirdPerson(CommandArgs args)
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index 629afdc35..96c88944d 100755
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -789,36 +789,43 @@ public static void HandleCommandLinePostConfigLoad(string[] parms)
private void OnPostInit(EventArgs args)
{
SetConsoleTitle(false);
- if (!File.Exists(Path.Combine(SavePath, "auth.lck")) && !File.Exists(Path.Combine(SavePath, "authcode.txt")))
+
+ // Disable the auth system if "auth.lck" is present or a superadmin exists
+ if (File.Exists(Path.Combine(SavePath, "auth.lck")) || Users.GetUsers().Exists(u => u.Group == new SuperAdminGroup().Name))
{
- var r = new Random((int)DateTime.Now.ToBinary());
- AuthToken = r.Next(100000, 10000000);
- Console.ForegroundColor = ConsoleColor.Yellow;
- Console.WriteLine("TShock Notice: To become SuperAdmin, join the game and type {0}auth {1}", Commands.Specifier, AuthToken);
- Console.WriteLine("This token will display until disabled by verification. ({0}auth-verify)", Commands.Specifier);
- Console.ForegroundColor = ConsoleColor.Gray;
- FileTools.CreateFile(Path.Combine(SavePath, "authcode.txt"));
- using (var tw = new StreamWriter(Path.Combine(SavePath, "authcode.txt")))
+ AuthToken = 0;
+
+ if (File.Exists(Path.Combine(SavePath, "authcode.txt")))
{
- tw.WriteLine(AuthToken);
+ Log.ConsoleInfo("A superadmin account has been detected in the user database, but authcode.txt is still present.");
+ Log.ConsoleInfo("TShock will now disable the auth system and remove authcode.txt as it is no longer needed.");
+ File.Delete(Path.Combine(SavePath, "authcode.txt"));
}
- }
- else if (File.Exists(Path.Combine(SavePath, "authcode.txt")))
- {
- using (var tr = new StreamReader(Path.Combine(SavePath, "authcode.txt")))
+
+ if (!File.Exists(Path.Combine(SavePath, "auth.lck")))
{
- AuthToken = Convert.ToInt32(tr.ReadLine());
+ // This avoids unnecessary database work, which can get ridiculously high on old servers as all users need to be fetched
+ File.Create(Path.Combine(SavePath, "auth.lck"));
}
+ }
+ else if (!File.Exists(Path.Combine(SavePath, "authcode.txt")))
+ {
+ var r = new Random((int)DateTime.Now.ToBinary());
+ AuthToken = r.Next(100000, 10000000);
Console.ForegroundColor = ConsoleColor.Yellow;
- Console.WriteLine(
- "TShock Notice: authcode.txt is still present, and the AuthToken located in that file will be used.");
- Console.WriteLine("To become superadmin, join the game and type {0}auth {1}", Commands.Specifier, AuthToken);
+ Console.WriteLine("TShock Notice: To become SuperAdmin, join the game and type {0}auth {1}", Commands.Specifier, AuthToken);
Console.WriteLine("This token will display until disabled by verification. ({0}auth-verify)", Commands.Specifier);
- Console.ForegroundColor = ConsoleColor.Gray;
+ Console.ResetColor();
+ File.WriteAllText(Path.Combine(SavePath, "authcode.txt"), AuthToken.ToString());
}
else
{
- AuthToken = 0;
+ AuthToken = Convert.ToInt32(File.ReadAllText(Path.Combine(SavePath, "authcode.txt")));
+ Console.ForegroundColor = ConsoleColor.Yellow;
+ Console.WriteLine("TShock Notice: authcode.txt is still present, and the AuthToken located in that file will be used.");
+ Console.WriteLine("To become superadmin, join the game and type {0}auth {1}", Commands.Specifier, AuthToken);
+ Console.WriteLine("This token will display until disabled by verification. ({0}auth)", Commands.Specifier);
+ Console.ResetColor();
}
Regions.Reload();
From 2320a913b446f8ab614096b625d2ebed0139126e Mon Sep 17 00:00:00 2001
From: Enerdy
Date: Fri, 14 Oct 2016 23:13:02 +0100
Subject: [PATCH 08/38] Mark pointless permission as obsolete
---
TShockAPI/Permissions.cs | 37 +++++++++++++++++++------------------
1 file changed, 19 insertions(+), 18 deletions(-)
diff --git a/TShockAPI/Permissions.cs b/TShockAPI/Permissions.cs
index e8c7d18df..0bd00281e 100644
--- a/TShockAPI/Permissions.cs
+++ b/TShockAPI/Permissions.cs
@@ -29,16 +29,16 @@ public static class Permissions
{
// tshock.account nodes
- [Description("User can register account in game")]
+ [Description("User can register account in game.")]
public static readonly string canregister = "tshock.account.register";
- [Description("User can login in game")]
+ [Description("User can login in game.")]
public static readonly string canlogin = "tshock.account.login";
- [Description("User can logout in game")]
+ [Description("User can logout in game.")]
public static readonly string canlogout = "tshock.account.logout";
- [Description("User can change password in game")]
+ [Description("User can change password in game.")]
public static readonly string canchangepassword = "tshock.account.changepassword";
// tshock.admin nodes
@@ -79,10 +79,10 @@ public static class Permissions
[Description("User can manage regions.")]
public static readonly string manageregion = "tshock.admin.region";
- [Description("User can mute and unmute users")]
+ [Description("User can mute and unmute users.")]
public static readonly string mute = "tshock.admin.mute";
- [Description("User can see the id of players with /who")]
+ [Description("User can see the id of players with /who.")]
public static readonly string seeids = "tshock.admin.seeplayerids";
[Description("User can save all the players SSI state.")]
@@ -148,7 +148,7 @@ public static class Permissions
[Description("Prevents your actions from being ignored if damage is too high.")]
public static readonly string ignoredamagecap = "tshock.ignore.damage";
- [Description("Bypass server side character checks")]
+ [Description("Bypass server side character checks.")]
public static readonly string bypassssc = "tshock.ignore.ssc";
[Description("Allow unrestricted SendTileSquare usage, for client side world editing.")]
@@ -200,10 +200,10 @@ public static class Permissions
[Description("User can kill all enemy npcs.")]
public static readonly string butcher = "tshock.npc.butcher";
- [Description("User can summon bosses using items")]
+ [Description("User can summon bosses using items.")]
public static readonly string summonboss = "tshock.npc.summonboss";
- [Description("User can start invasions (Goblin/Snow Legion) using items")]
+ [Description("User can start invasions (Goblin/Snow Legion) using items.")]
public static readonly string startinvasion = "tshock.npc.startinvasion";
[Description("User can clear the list of users who have completed an angler quest that day.")]
@@ -211,7 +211,8 @@ public static class Permissions
// tshock.superadmin nodes
- [Description("Meant for super admins only.")]
+ [Description("This permission is no longer used.")]
+ [Obsolete("No longer used.")]
public static readonly string authverify = "tshock.superadmin.authverify";
[Description("Meant for super admins only.")]
@@ -252,7 +253,7 @@ public static class Permissions
[Description("User can use /spawn.")]
public static readonly string spawn = "tshock.tp.spawn";
- [Description("User can use the Rod of Discor.")]
+ [Description("User can use the Rod of Discord.")]
public static readonly string rod = "tshock.tp.rod";
[Description("User can use wormhole potions.")]
@@ -287,7 +288,7 @@ public static class Permissions
[Description("User can change the homes of NPCs.")]
public static readonly string movenpc = "tshock.world.movenpc";
- [Description("User can convert hallow into corruption and vice-versa")]
+ [Description("User can convert hallow into corruption and vice-versa.")]
public static readonly string converthardmode = "tshock.world.converthardmode";
[Description("User can force the server to Halloween mode.")]
@@ -322,7 +323,7 @@ public static class Permissions
[Description("User can modify the world.")]
public static readonly string canbuild = "tshock.world.modify";
-
+
[Description("User can paint tiles.")]
public static readonly string canpaint = "tshock.world.paint";
@@ -345,7 +346,7 @@ public static class Permissions
[Description("User can kill others.")]
public static readonly string kill = "tshock.kill";
-
+
[Description("Allows you to bypass the max slots for up to 5 slots above your max.")]
public static readonly string reservedslot = "tshock.reservedslot";
@@ -364,10 +365,10 @@ public static class Permissions
[Description("User can heal players.")]
public static readonly string heal = "tshock.heal";
- [Description("User can use party chat in game")]
+ [Description("User can use party chat in game.")]
public static readonly string canpartychat = "tshock.partychat";
- [Description("User can talk in third person")]
+ [Description("User can talk in third person.")]
public static readonly string cantalkinthird = "tshock.thirdperson";
[Description("User can get the server info.")]
@@ -376,10 +377,10 @@ public static class Permissions
[Description("Player recovers health as damage is taken. Can be one shotted.")]
public static readonly string godmode = "tshock.godmode";
- [Description("User can godmode other players")]
+ [Description("User can godmode other players.")]
public static readonly string godmodeother = "tshock.godmode.other";
- [Description("Player can chat")]
+ [Description("Player can chat.")]
public static readonly string canchat = "tshock.canchat";
[Description("Player can use banned projectiles.")]
From 97b6f08523bd81b4fa682f17b651a2e3c50b7478 Mon Sep 17 00:00:00 2001
From: Enerdy
Date: Sat, 15 Oct 2016 00:31:57 +0100
Subject: [PATCH 09/38] 'auth' no longer kicks superadmins when disabled
---
TShockAPI/Commands.cs | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index a00c59009..db3ff9ab1 100755
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -4618,10 +4618,15 @@ private static void AuthToken(CommandArgs args)
{
if (TShock.AuthToken == 0)
{
- args.Player.SendWarningMessage("Auth is disabled. This incident has been logged.");
- TShock.Utils.ForceKick(args.Player, "Auth system is disabled.", true, true);
- TShock.Log.Warn("{0} attempted to use {1}auth even though it's disabled.", args.Player.IP, Specifier);
- return;
+ if (args.Player.Group.Name == new SuperAdminGroup().Name)
+ args.Player.SendInfoMessage("The auth system is already disabled.");
+ else
+ {
+ args.Player.SendWarningMessage("The auth system is disabled. This incident has been logged.");
+ TShock.Utils.ForceKick(args.Player, "Auth system is disabled.", true, true);
+ TShock.Log.Warn("{0} attempted to use {1}auth even though it's disabled.", args.Player.IP, Specifier);
+ return;
+ }
}
// If the user account is already a superadmin (permanent), disable the system
From a49a7f35cca098fa080aadf780ed3fd7dc9cd093 Mon Sep 17 00:00:00 2001
From: Enerdy
Date: Sat, 15 Oct 2016 00:34:32 +0100
Subject: [PATCH 10/38] Fully remove 'auth-verify' because it was unclassy
---
TShockAPI/Commands.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index db3ff9ab1..48f5a1949 100755
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -208,7 +208,7 @@ public static void InitCommands()
ChatCommands.Add(cmd);
};
- add(new Command(AuthToken, "auth", "auth-verify")
+ add(new Command(AuthToken, "auth")
{
AllowServer = false,
HelpText = "Used to authenticate as superadmin when first setting up TShock."
From dcaae17ffe29075fabea5c1d871f2152c356ba9a Mon Sep 17 00:00:00 2001
From: Enerdy
Date: Sat, 15 Oct 2016 00:39:13 +0100
Subject: [PATCH 11/38] Fix that one missing message & Update CHANGELOG.md
---
CHANGELOG.md | 2 ++
TShockAPI/TShock.cs | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3c4e4301f..a59c1aa21 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,8 @@
This is the rolling changelog for TShock for Terraria. Use past tense when adding new entries; sign your name off when you add or change something. This should primarily be things like user changes, not necessarily codebase changes unless it's really relevant or large.
## Upcoming Changes
+* Security improvement: The auth system is now automatically disabled if a superadmin exists in the database (@Enerdy)
+* Removed the `auth-verify` command since `auth` now serves its purpose when necessary (@Enerdy)
## TShock 4.3.19
* Compatibility with Terraria 1.3.3.3 (@Simon311)
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index 96c88944d..bb2f17021 100755
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -814,7 +814,7 @@ private void OnPostInit(EventArgs args)
AuthToken = r.Next(100000, 10000000);
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("TShock Notice: To become SuperAdmin, join the game and type {0}auth {1}", Commands.Specifier, AuthToken);
- Console.WriteLine("This token will display until disabled by verification. ({0}auth-verify)", Commands.Specifier);
+ Console.WriteLine("This token will display until disabled by verification. ({0}auth)", Commands.Specifier);
Console.ResetColor();
File.WriteAllText(Path.Combine(SavePath, "authcode.txt"), AuthToken.ToString());
}
From f35d84213be79d27e2bd0a0914899f3b04f7ec3b Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Fri, 14 Oct 2016 21:25:10 -0600
Subject: [PATCH 12/38] Put the logo in the readme
---
README.md | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 472eaee56..ecd710a19 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,8 @@
-# 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/NyxStudios/TerrariaAPI-Server). It uses JSON for configuration management, and offers several features not present in the Terraria Server normally.
From bbe0462b41642b2312928309250017e207c46278 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sat, 15 Oct 2016 11:37:02 -0600
Subject: [PATCH 13/38] Update create release script for travis
---
scripts/create_release.py | 3 ---
1 file changed, 3 deletions(-)
diff --git a/scripts/create_release.py b/scripts/create_release.py
index 1ce05309d..1690368dc 100644
--- a/scripts/create_release.py
+++ b/scripts/create_release.py
@@ -103,9 +103,6 @@ def delete_files():
def update_terraria_source():
subprocess.check_call(['/usr/bin/git', 'submodule', 'init'])
subprocess.check_call(['/usr/bin/git', 'submodule', 'update'])
- subprocess.check_call(['/usr/bin/rm', '-rf', '/tmp/NuGet/'])
- subprocess.check_call(['/usr/bin/rm', '-rf', '/tmp/NuGetScratch'])
- subprocess.check_call(['/usr/bin/mono', '/opt/nuget/nuget.exe', 'restore'])
def build_software():
release_proc = subprocess.Popen(['/usr/local/bin/xbuild', './TShockAPI/TShockAPI.csproj', '/p:Configuration=Release'])
From 0cbc45ce9ae026d4f213d28d101888422435d7c3 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sat, 15 Oct 2016 11:39:07 -0600
Subject: [PATCH 14/38] Update travis.yml to run create_release
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index f1d766dd2..93848b0d5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,6 +2,7 @@ language: csharp
solution: ./TShockAPI/TShockAPI.csproj
install:
- nuget restore
+script: python ./scripts/create_release.py
notifications:
slack:
secure: O4Nibe2fdaUa2ZxuETUg6WEoQKvNM2CotnfaIVgm3fjfe61dfE1P+EgTpbwDG8646jSmpTqMDw8Z6I/WJwGTlXV/ZQsbwu63Cps4MgOTvPHZ0Lsye5azySlJZs1iI4ItYSj2czXfcnJ+qAl1SOOkXJrjB5uyTMWtDpCrSCFB3MA=
From cf69fc686096c67af7ae056ea1d1a92c83dcc4c2 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sat, 15 Oct 2016 11:43:00 -0600
Subject: [PATCH 15/38] Relative path link xbuild
---
scripts/create_release.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/scripts/create_release.py b/scripts/create_release.py
index 1690368dc..de53f2db0 100644
--- a/scripts/create_release.py
+++ b/scripts/create_release.py
@@ -105,8 +105,8 @@ def update_terraria_source():
subprocess.check_call(['/usr/bin/git', 'submodule', 'update'])
def build_software():
- release_proc = subprocess.Popen(['/usr/local/bin/xbuild', './TShockAPI/TShockAPI.csproj', '/p:Configuration=Release'])
- debug_proc = subprocess.Popen(['/usr/local/bin/xbuild', './TShockAPI/TShockAPI.csproj', '/p:Configuration=Debug'])
+ release_proc = subprocess.Popen(['xbuild', './TShockAPI/TShockAPI.csproj', '/p:Configuration=Release'])
+ debug_proc = subprocess.Popen(['xbuild', './TShockAPI/TShockAPI.csproj', '/p:Configuration=Debug'])
release_proc.wait()
debug_proc.wait()
if (release_proc.returncode != 0):
From c4788fec12de3528bde132dc68769a7d17a5f4b9 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sat, 15 Oct 2016 12:47:26 -0600
Subject: [PATCH 16/38] Add private key
---
.travis.yml | 7 +++++--
scripts/create_release.py | 21 +++++++++++++++++++--
scripts/ssh_private_key.enc | Bin 0 -> 1680 bytes
3 files changed, 24 insertions(+), 4 deletions(-)
create mode 100644 scripts/ssh_private_key.enc
diff --git a/.travis.yml b/.travis.yml
index 93848b0d5..9c6ef7015 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,8 +1,11 @@
language: csharp
-solution: ./TShockAPI/TShockAPI.csproj
+solution: "./TShockAPI/TShockAPI.csproj"
install:
- - nuget restore
+- nuget restore
script: python ./scripts/create_release.py
notifications:
slack:
secure: O4Nibe2fdaUa2ZxuETUg6WEoQKvNM2CotnfaIVgm3fjfe61dfE1P+EgTpbwDG8646jSmpTqMDw8Z6I/WJwGTlXV/ZQsbwu63Cps4MgOTvPHZ0Lsye5azySlJZs1iI4ItYSj2czXfcnJ+qAl1SOOkXJrjB5uyTMWtDpCrSCFB3MA=
+before_install:
+- openssl aes-256-cbc -K $encrypted_1d7cd15ffdb4_key -iv $encrypted_1d7cd15ffdb4_iv
+ -in ssh_private_key.enc -out ssh_private_key -d
diff --git a/scripts/create_release.py b/scripts/create_release.py
index de53f2db0..e7dbe9f2c 100644
--- a/scripts/create_release.py
+++ b/scripts/create_release.py
@@ -92,14 +92,30 @@ def package_debug():
def delete_files():
os.chdir(release_dir)
os.remove(mysql_bin_name)
- os.remove(sqlite_bin_name)
- os.remove(sqlite_dep)
+ # os.remove(sqlite_bin_name)
+ # os.remove(sqlite_dep)
os.remove(json_bin_name)
os.remove(bcrypt_bin_name)
os.remove(http_bin_name)
os.remove(geoip_db_name)
os.chdir(cur_wd)
+def upload_artifacts():
+ if os.environ.get('TRAVIS_PULL_REQUEST', 'false') == 'false':
+ os.chdir(cur_wd)
+ os.mkdir(os.environ.get('TRAVIS_BRANCH', 'test-branch'))
+ os.chdir(os.environ.get('TRAVIS_BRANCH', 'test-branch'))
+ os.mkdir(os.environ.get('TRAVIS_BUILD_NUMBER', 'test-0407'))
+ os.chdir(cur_wd)
+ shutil.copy(os.path.join(release_dir, 'tshock_release.zip'), os.path.join(os.environ.get('TRAVIS_BRANCH', 'test-branch'), os.environ.get('TRAVIS_BUILD_NUMBER', 'test-0407')))
+ shutil.copy(os.path.join(release_dir, 'tshock_debug.zip'), os.path.join(os.environ.get('TRAVIS_BRANCH', 'test-branch'), os.environ.get('TRAVIS_BUILD_NUMBER', 'test-0407')))
+ target = open('./id_rsa', 'w')
+ target.write(os.environ.get('SECRET_SSH_KEY', 'nokey'))
+ target.close()
+ os.chmod('./id_rsa', 0600)
+ upload_process = subprocess.Popen(['scp', '-i', './id_rsa', '-r', os.environ.get('TRAVIS_BRANCH', 'test-branch'), 'tshock-travis@arc.shanked.me:/usr/share/nginx/tshock-travis/'])
+ upload_process.wait()
+
def update_terraria_source():
subprocess.check_call(['/usr/bin/git', 'submodule', 'init'])
subprocess.check_call(['/usr/bin/git', 'submodule', 'update'])
@@ -122,3 +138,4 @@ def build_software():
package_release()
package_debug()
delete_files()
+ upload_artifacts()
diff --git a/scripts/ssh_private_key.enc b/scripts/ssh_private_key.enc
new file mode 100644
index 0000000000000000000000000000000000000000..76fbbec9a26705f4c0afa7b8028856ced4ed0488
GIT binary patch
literal 1680
zcmV;B25kz*bK!PGcRPRc7ItCk&BHpcx;_f|=R+h+7{+!H(s
z;lPi6t1Ag)gpI(4;?#=_PWlDJY=aAyAO7q}k4`198CAAi8~fQ%gc}OKsaeJS{)p4U
zif2j1t%?cRH#L6EQ_dr4c59J|MHSrA^h(9{3Yo=|h@9~Slx5F0P>b_HpONu#^R5Ap
zhrn|)5f{{Ykd!E1VEZYHImcX5hh%m;&d#$wwrex(dN|p_a(~cdRNQ_V{Z+k2gakuhOq2Ba^HV)T)79(aG!$U10zn%);T+5vS
zCo&}4f$TM@@8>4${&4bq)~ObLCgGE|+%DD5+q{C!GutNk9k~E1YJn
zoN?J6Q2*!W@Xr`4jzOrl2mD$b
zSZ_T1MYp;G9#YXDztzg&)C2I1BwQdB^y^8>juSzF4JWs0+Zo)Eka*iGP~Ftt;d<4-8JGL~zj~+y4cgMhzJaE)6>
z<@9k_H_zoETGy+`RvsG(kNjqnz`I={o))Kb^9Rah*PWoZkPtfw_%~zV&cV?ElPa%t*uSoWwb|o5g{NZR#2*)^%p1qAIdr#~bUC%AfPhHc7F-Yp-p
zJaR_L0StvqKUO{3&p1h}U7%_sPq`t(lUYtKm;ZNnqYx=aos@?7q7dsKXfCQZDygP-
z*{b8hcJ49_h+)(ow$!C;x6SlD9P57Fq1f5u2y|r})WO+zub{&WU*WlJ`qw-};`KBP
zo~HD^W%=HKFP@gU6(D4@M9dTTQz|*$uqN2i5Mo04OaubDMuBA4U&JShGLnBY2KRiY
zktKG9XV&WR#_5@6K90(-CGLE#dcf)xtOKG!EH@Rcdn#G&&0O;v
zJK81kc~Qgp$?VOO5MK@2Q5+qarHF-Y8u%J20zV{`=2zc&fDn7RSxiQ`-qiaU1~&3y)p#~)AQ&Fn%ymXdd8JHeeqey
zo`*7}7=DJ=4phWDZEgF1McdJ6tWhkN#+6#E1>^BF6pqPQ)e-}nixx1r+I7s$?oF{1
zt&bVrHb^q<1K_J!^$a1*)1M;p-56B0<;S-TLE&_kMYPS&XIwsBOMTFc5sr-YGesZZp$M
z54sn*jm0{mmL*WPWX+b3MuYNv844(gqTShF&eTK<{9AnCE;~kBMQ{!)#GUqI!_SkF
zv0&h*mfSYEwO^Mks1X)o`uktp$NPRJVvQq5o+Y_O$BIMLJP8KH4ROaLu8;S-Om6n|
zqsz3wgUu5;ZEMw&r8zVqDs+A>{U=pzt8+m})F46CC#`G@YEf9_18>@Iq%fu5+(S%@
zP9F`=ZL&FST0CCNg4#0Pu>WcC;19q
Date: Sat, 15 Oct 2016 12:48:09 -0600
Subject: [PATCH 17/38] Update create_release with new instructions for
existing key
---
scripts/create_release.py | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/scripts/create_release.py b/scripts/create_release.py
index e7dbe9f2c..557f50b2d 100644
--- a/scripts/create_release.py
+++ b/scripts/create_release.py
@@ -109,11 +109,8 @@ def upload_artifacts():
os.chdir(cur_wd)
shutil.copy(os.path.join(release_dir, 'tshock_release.zip'), os.path.join(os.environ.get('TRAVIS_BRANCH', 'test-branch'), os.environ.get('TRAVIS_BUILD_NUMBER', 'test-0407')))
shutil.copy(os.path.join(release_dir, 'tshock_debug.zip'), os.path.join(os.environ.get('TRAVIS_BRANCH', 'test-branch'), os.environ.get('TRAVIS_BUILD_NUMBER', 'test-0407')))
- target = open('./id_rsa', 'w')
- target.write(os.environ.get('SECRET_SSH_KEY', 'nokey'))
- target.close()
- os.chmod('./id_rsa', 0600)
- upload_process = subprocess.Popen(['scp', '-i', './id_rsa', '-r', os.environ.get('TRAVIS_BRANCH', 'test-branch'), 'tshock-travis@arc.shanked.me:/usr/share/nginx/tshock-travis/'])
+ os.chmod('./scripts/ssh_private_key', 0600)
+ upload_process = subprocess.Popen(['scp', '-i', './scripts/ssh_private_key', '-r', os.environ.get('TRAVIS_BRANCH', 'test-branch'), 'tshock-travis@arc.shanked.me:/usr/share/nginx/tshock-travis/'])
upload_process.wait()
def update_terraria_source():
From d6747e9e4dfecfccde5c2d0a608c207b3455e78f Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sat, 15 Oct 2016 12:51:02 -0600
Subject: [PATCH 18/38] Tell openssl to actually go to where the key is to
decrypt
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 9c6ef7015..9fd7ae006 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,4 +8,4 @@ notifications:
secure: O4Nibe2fdaUa2ZxuETUg6WEoQKvNM2CotnfaIVgm3fjfe61dfE1P+EgTpbwDG8646jSmpTqMDw8Z6I/WJwGTlXV/ZQsbwu63Cps4MgOTvPHZ0Lsye5azySlJZs1iI4ItYSj2czXfcnJ+qAl1SOOkXJrjB5uyTMWtDpCrSCFB3MA=
before_install:
- openssl aes-256-cbc -K $encrypted_1d7cd15ffdb4_key -iv $encrypted_1d7cd15ffdb4_iv
- -in ssh_private_key.enc -out ssh_private_key -d
+ -in ./scripts/ssh_private_key.enc -out ./scripts/ssh_private_key -d
From d4ab183e705f92437ae02248cfdaf0d68b5bb847 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sat, 15 Oct 2016 12:57:04 -0600
Subject: [PATCH 19/38] Try to turn off strict host key checking
---
scripts/create_release.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/create_release.py b/scripts/create_release.py
index 557f50b2d..4e50964d2 100644
--- a/scripts/create_release.py
+++ b/scripts/create_release.py
@@ -110,7 +110,7 @@ def upload_artifacts():
shutil.copy(os.path.join(release_dir, 'tshock_release.zip'), os.path.join(os.environ.get('TRAVIS_BRANCH', 'test-branch'), os.environ.get('TRAVIS_BUILD_NUMBER', 'test-0407')))
shutil.copy(os.path.join(release_dir, 'tshock_debug.zip'), os.path.join(os.environ.get('TRAVIS_BRANCH', 'test-branch'), os.environ.get('TRAVIS_BUILD_NUMBER', 'test-0407')))
os.chmod('./scripts/ssh_private_key', 0600)
- upload_process = subprocess.Popen(['scp', '-i', './scripts/ssh_private_key', '-r', os.environ.get('TRAVIS_BRANCH', 'test-branch'), 'tshock-travis@arc.shanked.me:/usr/share/nginx/tshock-travis/'])
+ upload_process = subprocess.Popen(['scp', '-oStrictHostKeyChecking=no', '-i', './scripts/ssh_private_key', '-r', os.environ.get('TRAVIS_BRANCH', 'test-branch'), 'tshock-travis@arc.shanked.me:/usr/share/nginx/tshock-travis/'])
upload_process.wait()
def update_terraria_source():
From 2f6a6921aa602f2898b4efc5d30e03da9d5f8a05 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sat, 15 Oct 2016 12:57:56 -0600
Subject: [PATCH 20/38] Ignore ssh private key files
---
.gitignore | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.gitignore b/.gitignore
index 7856d7dfc..afd1b060f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -65,3 +65,6 @@ _ReSharper.*
# GTFO NuGet stuff #
####################
packages/*
+
+# Private key files #
+scripts/ssh_private_key
\ No newline at end of file
From b064b3a0784b47e7620fe0c144188a30d368ab27 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sat, 15 Oct 2016 13:09:24 -0600
Subject: [PATCH 21/38] Update private key file for NyxStudios/TShock repo
---
scripts/ssh_private_key.enc | Bin 1680 -> 1680 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/scripts/ssh_private_key.enc b/scripts/ssh_private_key.enc
index 76fbbec9a26705f4c0afa7b8028856ced4ed0488..69373269f3f8fa632641ec17e47cdd8748c4129e 100644
GIT binary patch
literal 1680
zcmV;B25
zFp^?!KvbTPMn}@6=&*`dXw_xTW1`!|(
z$imeb$b@%@4vjoVTr566-9~M{DZnFX3)lM0>&bRukpvks9R?j9_(&5NBQ}*ec-Y}6
zvRUkuo;eR@$YP`3A}ObX%)Gg0_gz*miB*1J8d7b0ra?C8#d-=kOjhyW`4tg;Bjy!%-l_3dd)`v55DiA|-)XSR%O;Wud#a=u
z)07(H_Sw_GSDM(0NJbQq)((Rn-l&M;X-;cNR2+0{AEogkW;+M?S(zW6n&G-FaRVs`
zH&d|~bkFgAcH!uWg>nSAYa2BO-lc=1RxvjRwdADK?8#1DZW~Xe`JqD#NQcAX`7?3_
zIrJ>R(>a5h)pS=(JXbP|iu}{+FgRg`)*@R$^!pq<(o3D0WQ7nqK8-^qLdA-|?
zI^wKH=2oHU#VwoG8@@J=9FdJH1Wck;a*Q?6+s;El>^+jf$s7G)k&L>V^~=x0YHJ>9
z{=an23Ffn<93ltrrAsuTX%HYYz$U(RDE9*=pmZyxgpt(nzjg6~M--O>7fM9)8Gv5|
zO{j93nbpafn{P^5>p>v7(eApMRzkQ0<%-|a3eAQWDP`)4VIxE`>0FSc7YSV*ANlBl
z3@(K5MA10(01Pol0aqopl6h-BG73_@JElr-B}Hkfh6pGKc#3?VxTjl&)X*vTZASsP
zMv(<=%ULbCaEB5VvZ-CFo%3M=myy6EXyxzQA;ir+<5!1Vvirfc%t{r{y`DK76=Wb=Qm`>CbnB{LwXV8vXmC#8|o%glMBe1D|WfI5?wT@*a
znaGhjyG|N=()rWc;PGJNee68D%d0`|U!i$k%+HT%A^73zMz{vByfFIT>mH4g!M?
zaT@WaimX{zGz;ce^5m_-B+wLJzFq^IcFRxc`Jp1|Y<6gEdHtAWG6I55$-JoCUV1+8~;VNle8b
zy?oXU5(A~@+x5n&r{$HWe~znXQ>P91StKs-^;Dj
zP)3HW#kKM3h<{Zy%O*bOcfA1&|Lxymto~j6lMZm7UP(wF;=7~JYb_8Zk~Oa`Yg||9og9hl3zt3j
zKn2Q0Sx{zPy)z+e%B+YIW4K1}0qc3PXMEP`dz5d#!6S`%3laGTj>u;4&t%L+na*Fa}!_jGAdn7Dcs&;f-+DuxuQUMJ?;lx-L%1-
z%y|Oit-^9L{{qr`9x~@n>))laowZ}Zv<*h^!GJvK7d9hic@g(aHn<(evOg|C%cGSI9Cv{YZ~$n
zHa`^{mV^gA^b4li?3>7)Lonjd^=%+N{XpHZ>Ov`l3>*0}aU^`7RcECp_Ly~?h(pd|
z9cS+G0Uyc~gqU(_wXS>VnXN65R91=k1+pY?Ai>a@BTX%;;pKsr&pJk`kq+UXkU3iG
zm-;Gr@_9lK)VJOap40`j9V3a>C*v3FcFWTi)3Gr3iR9N&NS%#_2@jW01F^vbnkN7?
z)8Nm|{lK}*UA2`g-975=y}}})I>l6D&KHo2l&_skW8K8FSs?g$CxT5}cBRiw0?g`X
aCmc1F`;Kp_iFA7k>bds_RctYKG@xkdGD6t^
literal 1680
zcmV;B25kz*bK!PGcRPRc7ItCk&BHpcx;_f|=R+h+7{+!H(s
z;lPi6t1Ag)gpI(4;?#=_PWlDJY=aAyAO7q}k4`198CAAi8~fQ%gc}OKsaeJS{)p4U
zif2j1t%?cRH#L6EQ_dr4c59J|MHSrA^h(9{3Yo=|h@9~Slx5F0P>b_HpONu#^R5Ap
zhrn|)5f{{Ykd!E1VEZYHImcX5hh%m;&d#$wwrex(dN|p_a(~cdRNQ_V{Z+k2gakuhOq2Ba^HV)T)79(aG!$U10zn%);T+5vS
zCo&}4f$TM@@8>4${&4bq)~ObLCgGE|+%DD5+q{C!GutNk9k~E1YJn
zoN?J6Q2*!W@Xr`4jzOrl2mD$b
zSZ_T1MYp;G9#YXDztzg&)C2I1BwQdB^y^8>juSzF4JWs0+Zo)Eka*iGP~Ftt;d<4-8JGL~zj~+y4cgMhzJaE)6>
z<@9k_H_zoETGy+`RvsG(kNjqnz`I={o))Kb^9Rah*PWoZkPtfw_%~zV&cV?ElPa%t*uSoWwb|o5g{NZR#2*)^%p1qAIdr#~bUC%AfPhHc7F-Yp-p
zJaR_L0StvqKUO{3&p1h}U7%_sPq`t(lUYtKm;ZNnqYx=aos@?7q7dsKXfCQZDygP-
z*{b8hcJ49_h+)(ow$!C;x6SlD9P57Fq1f5u2y|r})WO+zub{&WU*WlJ`qw-};`KBP
zo~HD^W%=HKFP@gU6(D4@M9dTTQz|*$uqN2i5Mo04OaubDMuBA4U&JShGLnBY2KRiY
zktKG9XV&WR#_5@6K90(-CGLE#dcf)xtOKG!EH@Rcdn#G&&0O;v
zJK81kc~Qgp$?VOO5MK@2Q5+qarHF-Y8u%J20zV{`=2zc&fDn7RSxiQ`-qiaU1~&3y)p#~)AQ&Fn%ymXdd8JHeeqey
zo`*7}7=DJ=4phWDZEgF1McdJ6tWhkN#+6#E1>^BF6pqPQ)e-}nixx1r+I7s$?oF{1
zt&bVrHb^q<1K_J!^$a1*)1M;p-56B0<;S-TLE&_kMYPS&XIwsBOMTFc5sr-YGesZZp$M
z54sn*jm0{mmL*WPWX+b3MuYNv844(gqTShF&eTK<{9AnCE;~kBMQ{!)#GUqI!_SkF
zv0&h*mfSYEwO^Mks1X)o`uktp$NPRJVvQq5o+Y_O$BIMLJP8KH4ROaLu8;S-Om6n|
zqsz3wgUu5;ZEMw&r8zVqDs+A>{U=pzt8+m})F46CC#`G@YEf9_18>@Iq%fu5+(S%@
zP9F`=ZL&FST0CCNg4#0Pu>WcC;19q
Date: Sat, 15 Oct 2016 13:31:12 -0600
Subject: [PATCH 22/38] Tell travis not to use sudo
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index 9fd7ae006..c64554a5a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,6 @@
language: csharp
solution: "./TShockAPI/TShockAPI.csproj"
+sudo: false
install:
- nuget restore
script: python ./scripts/create_release.py
From fb2fc6772e7cec4f51be9115230934701d0aeb6b Mon Sep 17 00:00:00 2001
From: ProfessorXZ
Date: Fri, 14 Oct 2016 23:18:33 +0200
Subject: [PATCH 23/38] Fixes #1021
---
TShockAPI/GetDataHandlers.cs | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs
index 92a8b7f6d..8cdf709b1 100755
--- a/TShockAPI/GetDataHandlers.cs
+++ b/TShockAPI/GetDataHandlers.cs
@@ -1741,6 +1741,14 @@ private static bool HandleSendTileSquare(GetDataHandlerArgs args)
continue;
}
+ if (((Main.tile[realx, realy + 1].type == TileID.Grass && (newtile.Type == TileID.Plants || newtile.Type == TileID.Plants2))
+ || (Main.tile[realx, realy + 1].type == TileID.HallowedGrass && (newtile.Type == TileID.HallowedPlants || newtile.Type == TileID.HallowedPlants2))
+ || (Main.tile[realx, realy + 1].type == TileID.JungleGrass && newtile.Type == TileID.JunglePlants2))
+ && size == 1 && args.Player.Accessories.Any(i => i.active && i.netID == ItemID.FlowerBoots))
+ {
+ return false;
+ }
+
// Junction Box
if (tile.type == TileID.WirePipe)
return false;
From ec4152df816b1a0ebc79cf6992937d1a989048ec Mon Sep 17 00:00:00 2001
From: ProfessorXZ
Date: Sat, 15 Oct 2016 22:12:45 +0200
Subject: [PATCH 24/38] Separated the Flower Boots check into multiple if
statements
---
TShockAPI/GetDataHandlers.cs | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs
index 8cdf709b1..13126f0d1 100755
--- a/TShockAPI/GetDataHandlers.cs
+++ b/TShockAPI/GetDataHandlers.cs
@@ -1741,12 +1741,23 @@ private static bool HandleSendTileSquare(GetDataHandlerArgs args)
continue;
}
- if (((Main.tile[realx, realy + 1].type == TileID.Grass && (newtile.Type == TileID.Plants || newtile.Type == TileID.Plants2))
- || (Main.tile[realx, realy + 1].type == TileID.HallowedGrass && (newtile.Type == TileID.HallowedPlants || newtile.Type == TileID.HallowedPlants2))
- || (Main.tile[realx, realy + 1].type == TileID.JungleGrass && newtile.Type == TileID.JunglePlants2))
- && size == 1 && args.Player.Accessories.Any(i => i.active && i.netID == ItemID.FlowerBoots))
+ // Fixes the Flower Boots not creating flowers issue
+ if (size == 1 && args.Player.Accessories.Any(i => i.active && i.netID == ItemID.FlowerBoots))
{
- return false;
+ if (Main.tile[realx, realy + 1].type == TileID.Grass && (newtile.Type == TileID.Plants || newtile.Type == TileID.Plants2))
+ {
+ return false;
+ }
+
+ if (Main.tile[realx, realy + 1].type == TileID.HallowedGrass && (newtile.Type == TileID.HallowedPlants || newtile.Type == TileID.HallowedPlants2))
+ {
+ return false;
+ }
+
+ if (Main.tile[realx, realy + 1].type == TileID.JungleGrass && newtile.Type == TileID.JunglePlants2)
+ {
+ return false;
+ }
}
// Junction Box
From b20e2060a2ffd3c5d235bcb9ccd314ed07d2a366 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sat, 15 Oct 2016 14:27:17 -0600
Subject: [PATCH 25/38] Move decryption of secret key file into create release
script
---
.travis.yml | 5 +----
scripts/create_release.py | 2 ++
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index c64554a5a..e7d8daa76 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,7 +6,4 @@ install:
script: python ./scripts/create_release.py
notifications:
slack:
- secure: O4Nibe2fdaUa2ZxuETUg6WEoQKvNM2CotnfaIVgm3fjfe61dfE1P+EgTpbwDG8646jSmpTqMDw8Z6I/WJwGTlXV/ZQsbwu63Cps4MgOTvPHZ0Lsye5azySlJZs1iI4ItYSj2czXfcnJ+qAl1SOOkXJrjB5uyTMWtDpCrSCFB3MA=
-before_install:
-- openssl aes-256-cbc -K $encrypted_1d7cd15ffdb4_key -iv $encrypted_1d7cd15ffdb4_iv
- -in ./scripts/ssh_private_key.enc -out ./scripts/ssh_private_key -d
+ secure: O4Nibe2fdaUa2ZxuETUg6WEoQKvNM2CotnfaIVgm3fjfe61dfE1P+EgTpbwDG8646jSmpTqMDw8Z6I/WJwGTlXV/ZQsbwu63Cps4MgOTvPHZ0Lsye5azySlJZs1iI4ItYSj2czXfcnJ+qAl1SOOkXJrjB5uyTMWtDpCrSCFB3MA=
\ No newline at end of file
diff --git a/scripts/create_release.py b/scripts/create_release.py
index 4e50964d2..2403d3e4d 100644
--- a/scripts/create_release.py
+++ b/scripts/create_release.py
@@ -110,6 +110,8 @@ def upload_artifacts():
shutil.copy(os.path.join(release_dir, 'tshock_release.zip'), os.path.join(os.environ.get('TRAVIS_BRANCH', 'test-branch'), os.environ.get('TRAVIS_BUILD_NUMBER', 'test-0407')))
shutil.copy(os.path.join(release_dir, 'tshock_debug.zip'), os.path.join(os.environ.get('TRAVIS_BRANCH', 'test-branch'), os.environ.get('TRAVIS_BUILD_NUMBER', 'test-0407')))
os.chmod('./scripts/ssh_private_key', 0600)
+ decrypt_process = subprocess.Popen(['openssl', 'aes-256-cbc', '-K', os.environ.get('encrypted_1d7cd15ffdb4_key'), '-iv', os.environ.get('encrypted_1d7cd15ffdb4_iv'), '-in', './scripts/ssh_private_key.enc', '-out', './scripts/ssh_private_key', '-d'])
+ decrypt_process.wait()
upload_process = subprocess.Popen(['scp', '-oStrictHostKeyChecking=no', '-i', './scripts/ssh_private_key', '-r', os.environ.get('TRAVIS_BRANCH', 'test-branch'), 'tshock-travis@arc.shanked.me:/usr/share/nginx/tshock-travis/'])
upload_process.wait()
From bba0d72a294fc62895b36c202a56cd8d2dfe0d97 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sat, 15 Oct 2016 14:33:38 -0600
Subject: [PATCH 26/38] Can't chmod a file before it exists
---
scripts/create_release.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/create_release.py b/scripts/create_release.py
index 2403d3e4d..3bde7c41c 100644
--- a/scripts/create_release.py
+++ b/scripts/create_release.py
@@ -109,9 +109,9 @@ def upload_artifacts():
os.chdir(cur_wd)
shutil.copy(os.path.join(release_dir, 'tshock_release.zip'), os.path.join(os.environ.get('TRAVIS_BRANCH', 'test-branch'), os.environ.get('TRAVIS_BUILD_NUMBER', 'test-0407')))
shutil.copy(os.path.join(release_dir, 'tshock_debug.zip'), os.path.join(os.environ.get('TRAVIS_BRANCH', 'test-branch'), os.environ.get('TRAVIS_BUILD_NUMBER', 'test-0407')))
- os.chmod('./scripts/ssh_private_key', 0600)
decrypt_process = subprocess.Popen(['openssl', 'aes-256-cbc', '-K', os.environ.get('encrypted_1d7cd15ffdb4_key'), '-iv', os.environ.get('encrypted_1d7cd15ffdb4_iv'), '-in', './scripts/ssh_private_key.enc', '-out', './scripts/ssh_private_key', '-d'])
decrypt_process.wait()
+ os.chmod('./scripts/ssh_private_key', 0600)
upload_process = subprocess.Popen(['scp', '-oStrictHostKeyChecking=no', '-i', './scripts/ssh_private_key', '-r', os.environ.get('TRAVIS_BRANCH', 'test-branch'), 'tshock-travis@arc.shanked.me:/usr/share/nginx/tshock-travis/'])
upload_process.wait()
From 54915bcf47c8ec480c27337eb8f56a374d399a1f Mon Sep 17 00:00:00 2001
From: Simon
Date: Sun, 16 Oct 2016 08:58:55 +0300
Subject: [PATCH 27/38] Fix /"
---
TShockAPI/Commands.cs | 27 ++++++++++++++++++++++-----
TShockAPI/TShock.cs | 8 +++++++-
2 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index 48f5a1949..eaf69ec6b 100755
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -628,12 +628,29 @@ public static bool HandleCommand(TSPlayer player, string text)
if (cmdPrefix == SilentSpecifier)
silent = true;
- var args = ParseParameters(cmdText);
- if (args.Count < 1)
- return false;
+ int index = -1;
+ for (int i = 0; i < cmdText.Length; i++)
+ if (IsWhiteSpace(cmdText[i]))
+ {
+ index = i;
+ break;
+ }
+ string cmdName;
+ if (index == 0) // Space after the command specifier should not be supported
+ {
+ player.SendErrorMessage("Invalid command entered. Type {0}help for a list of valid commands.", Specifier);
+ return true;
+ }
+ else if (index < 0)
+ cmdName = cmdText;
+ else
+ cmdName = cmdText.Substring(0, index);
- string cmdName = args[0].ToLower();
- args.RemoveAt(0);
+ List args;
+ if (index < 0)
+ args = new List();
+ else
+ args = ParseParameters(cmdText.Substring(index));
IEnumerable cmds = ChatCommands.FindAll(c => c.HasAlias(cmdName));
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index bb2f17021..707d90087 100755
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -1384,7 +1384,13 @@ private void OnChat(ServerChatEventArgs args)
{
try
{
- args.Handled = Commands.HandleCommand(tsplr, args.Text);
+ args.Handled = true;
+ if (!Commands.HandleCommand(tsplr, args.Text))
+ {
+ // This is required in case anyone makes HandleCommand return false again
+ tsplr.SendErrorMessage("Unable to parse command. Please contact an administrator for assistance.");
+ Log.ConsoleError("Unable to parse command '{0}' from player {1}.", args.Text, tsplr.Name);
+ }
}
catch (Exception ex)
{
From b16b9e70f2e3f940338ebfca3ea006d153e8682d Mon Sep 17 00:00:00 2001
From: Simon
Date: Sun, 16 Oct 2016 09:48:46 +0300
Subject: [PATCH 28/38] Add brackets
---
TShockAPI/Commands.cs | 2 ++
1 file changed, 2 insertions(+)
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index eaf69ec6b..f31fee148 100755
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -630,11 +630,13 @@ public static bool HandleCommand(TSPlayer player, string text)
int index = -1;
for (int i = 0; i < cmdText.Length; i++)
+ {
if (IsWhiteSpace(cmdText[i]))
{
index = i;
break;
}
+ }
string cmdName;
if (index == 0) // Space after the command specifier should not be supported
{
From 3416f20d49fd71f455ed1eed34e7272b2b1dd92b Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sun, 16 Oct 2016 01:07:04 -0600
Subject: [PATCH 29/38] Please send PRs that have text in the description
---
CONTRIBUTING.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e5bd9051b..6382cc887 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -37,6 +37,7 @@ These guidelines are for all contributors.
* After 'pr-wanted' has been added, an issue should be considered workable in a pull request fashion.
* If you, as a developer, want to claim an issue for a PR, as soon as possible start work and note that in both the original issue and the new PR. The 'pr-wanted' tag will remain but the active PR will become the center for discussion for your implementation.
* If a TShock core developer takes an issue, they'll be assigned to the issue. If your issue was taken by a TShock developer and you were actively developing it in a PR, you should _make it clear as soon as possible that a process error has been made_ so that the your development resources and our development resources aren't wasted.
+* Please send a pull request with at least a sentence description and something meaningful as the title, not just the issue number you're fixing.
_The pr-wanted tag indicates an issue should be implemented. If an issue has a developer assigned, it indicates that they're working on it. When in doubt, ask where an issue is before starting work (so you don't waste time)!_
From 60a8362e276b708a2e452e9601e2715acef70be6 Mon Sep 17 00:00:00 2001
From: Simon
Date: Sun, 16 Oct 2016 12:42:05 +0300
Subject: [PATCH 30/38] Add ToLower() back
---
TShockAPI/Commands.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index f31fee148..08e5477ed 100755
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -644,9 +644,9 @@ public static bool HandleCommand(TSPlayer player, string text)
return true;
}
else if (index < 0)
- cmdName = cmdText;
+ cmdName = cmdText.ToLower();
else
- cmdName = cmdText.Substring(0, index);
+ cmdName = cmdText.Substring(0, index).ToLower();
List args;
if (index < 0)
From 5be85b986479013769cf9a607434976d9e5c7c84 Mon Sep 17 00:00:00 2001
From: Simon
Date: Sun, 16 Oct 2016 13:58:05 +0300
Subject: [PATCH 31/38] Ensure that players can not connect once the server
started shutting down
---
TShockAPI/TShock.cs | 10 ++++++++++
TShockAPI/Utils.cs | 2 ++
2 files changed, 12 insertions(+)
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index 707d90087..1bbb70523 100755
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -72,6 +72,9 @@ public class TShock : TerrariaPlugin
///
internal static bool NoRestart;
+ /// Will be set to true once Utils.StopServer() is called.
+ public static bool ShuttingDown;
+
/// Players - Contains all TSPlayer objects for accessing TSPlayers currently on the server
public static TSPlayer[] Players = new TSPlayer[Main.maxPlayers];
/// Bans - Static reference to the ban manager for accessing bans & related functions.
@@ -1200,6 +1203,13 @@ private void OnStatueSpawn(StatueSpawnEventArgs args)
/// args - The ConnectEventArgs object.
private void OnConnect(ConnectEventArgs args)
{
+ if (ShuttingDown)
+ {
+ NetMessage.SendData((int)PacketTypes.Disconnect, args.Who, -1, "Server is shutting down...");
+ args.Handled = true;
+ return;
+ }
+
var player = new TSPlayer(args.Who);
if (Utils.ActivePlayers() + 1 > Config.MaxSlots + Config.ReservedSlots)
diff --git a/TShockAPI/Utils.cs b/TShockAPI/Utils.cs
index b26e22aee..d596f0545 100644
--- a/TShockAPI/Utils.cs
+++ b/TShockAPI/Utils.cs
@@ -538,6 +538,8 @@ public void ForceKickAll(string reason)
/// string reason (default: "Server shutting down!")
public void StopServer(bool save = true, string reason = "Server shutting down!")
{
+ TShock.ShuttingDown = true;
+
ForceKickAll(reason);
if (save)
SaveManager.Instance.SaveWorld();
From 90c6f4ab2227310ea22c177fe26798240ac86244 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sun, 16 Oct 2016 09:31:23 -0600
Subject: [PATCH 32/38] Update changelog with @Simon311's changes
---
CHANGELOG.md | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a59c1aa21..7de6db812 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,8 +3,10 @@
This is the rolling changelog for TShock for Terraria. Use past tense when adding new entries; sign your name off when you add or change something. This should primarily be things like user changes, not necessarily codebase changes unless it's really relevant or large.
## Upcoming Changes
-* Security improvement: The auth system is now automatically disabled if a superadmin exists in the database (@Enerdy)
-* Removed the `auth-verify` command since `auth` now serves its purpose when necessary (@Enerdy)
+* Security improvement: The auth system is now automatically disabled if a superadmin exists in the database (@Enerdy).
+* Removed the `auth-verify` command since `auth` now serves its purpose when necessary (@Enerdy).
+* Security: `/"` exploit can no longer break chat mute filters (@Simon311).
+* Fixed an issue where sometimes players could connect briefly during server shutdown, leading to errors (@Simon311).
## TShock 4.3.19
* Compatibility with Terraria 1.3.3.3 (@Simon311)
From 49b4effe74a8fbbc8cc746e5cd3a109547921b3a Mon Sep 17 00:00:00 2001
From: Adilson Carvalho
Date: Sun, 16 Oct 2016 17:06:02 -0200
Subject: [PATCH 33/38] Changed year to 2016 on all GPL headers
---
TShockAPI/BackupManager.cs | 2 +-
TShockAPI/Commands.cs | 2 +-
TShockAPI/ConfigFile.cs | 2 +-
TShockAPI/DB/BanManager.cs | 2 +-
TShockAPI/DB/CharacterManager.cs | 2 +-
TShockAPI/DB/GroupManager.cs | 2 +-
TShockAPI/DB/IQueryBuilder.cs | 2 +-
TShockAPI/DB/ItemManager.cs | 2 +-
TShockAPI/DB/ProjectileManager.cs | 2 +-
TShockAPI/DB/RegionManager.cs | 2 +-
TShockAPI/DB/RememberedPosManager.cs | 2 +-
TShockAPI/DB/SqlColumn.cs | 2 +-
TShockAPI/DB/SqlTable.cs | 2 +-
TShockAPI/DB/SqlValue.cs | 2 +-
TShockAPI/DB/TileManager.cs | 2 +-
TShockAPI/DB/UserManager.cs | 2 +-
TShockAPI/DB/WarpsManager.cs | 2 +-
TShockAPI/Extensions/DbExt.cs | 2 +-
TShockAPI/Extensions/LinqExt.cs | 2 +-
TShockAPI/Extensions/RandomExt.cs | 2 +-
TShockAPI/Extensions/StringExt.cs | 2 +-
TShockAPI/FileTools.cs | 2 +-
TShockAPI/GeoIPCountry.cs | 2 +-
TShockAPI/GetDataHandlers.cs | 2 +-
TShockAPI/Group.cs | 2 +-
TShockAPI/HandlerList.cs | 2 +-
TShockAPI/Hooks/AccountHooks.cs | 2 +-
TShockAPI/Hooks/GeneralHooks.cs | 2 +-
TShockAPI/Hooks/PlayerHooks.cs | 2 +-
TShockAPI/Hooks/RegionHooks.cs | 2 +-
TShockAPI/ILog.cs | 2 +-
TShockAPI/IPackable.cs | 2 +-
TShockAPI/Net/BaseMsg.cs | 2 +-
TShockAPI/Net/DisconnectMsg.cs | 2 +-
TShockAPI/Net/NetTile.cs | 2 +-
TShockAPI/Net/ProjectileRemoveMsg.cs | 2 +-
TShockAPI/Net/SpawnMsg.cs | 2 +-
TShockAPI/Net/WorldInfoMsg.cs | 2 +-
TShockAPI/PacketBufferer.cs | 2 +-
TShockAPI/PaginationTools.cs | 2 +-
TShockAPI/Permissions.cs | 2 +-
TShockAPI/Properties/AssemblyInfo.cs | 2 +-
TShockAPI/Rest/Rest.cs | 2 +-
TShockAPI/Rest/RestCommand.cs | 2 +-
TShockAPI/Rest/RestManager.cs | 2 +-
TShockAPI/Rest/RestObject.cs | 2 +-
TShockAPI/Rest/RestPermissions.cs | 2 +-
TShockAPI/Rest/RestVerbs.cs | 2 +-
TShockAPI/Rest/SecureRest.cs | 2 +-
TShockAPI/SaveManager.cs | 2 +-
TShockAPI/ServerSideCharacters/ServerSideConfig.cs | 2 +-
TShockAPI/SqlLog.cs | 2 +-
TShockAPI/TSPlayer.cs | 2 +-
TShockAPI/TShock.cs | 2 +-
TShockAPI/TShockAPI.licenseheader | 2 +-
TShockAPI/TextLog.cs | 2 +-
TShockAPI/UpdateManager.cs | 2 +-
TShockAPI/Utils.cs | 2 +-
58 files changed, 58 insertions(+), 58 deletions(-)
diff --git a/TShockAPI/BackupManager.cs b/TShockAPI/BackupManager.cs
index d484c3896..58b544f4a 100644
--- a/TShockAPI/BackupManager.cs
+++ b/TShockAPI/BackupManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index 08e5477ed..a4ddb549a 100755
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/ConfigFile.cs b/TShockAPI/ConfigFile.cs
index c4f9cf354..f32099ab4 100755
--- a/TShockAPI/ConfigFile.cs
+++ b/TShockAPI/ConfigFile.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/DB/BanManager.cs b/TShockAPI/DB/BanManager.cs
index f4dcc9793..757cce817 100755
--- a/TShockAPI/DB/BanManager.cs
+++ b/TShockAPI/DB/BanManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/DB/CharacterManager.cs b/TShockAPI/DB/CharacterManager.cs
index f1e5a5fca..e24612056 100755
--- a/TShockAPI/DB/CharacterManager.cs
+++ b/TShockAPI/DB/CharacterManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/DB/GroupManager.cs b/TShockAPI/DB/GroupManager.cs
index 4521519a1..171d7f4a3 100755
--- a/TShockAPI/DB/GroupManager.cs
+++ b/TShockAPI/DB/GroupManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/DB/IQueryBuilder.cs b/TShockAPI/DB/IQueryBuilder.cs
index ac030759a..a39e72eac 100644
--- a/TShockAPI/DB/IQueryBuilder.cs
+++ b/TShockAPI/DB/IQueryBuilder.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/DB/ItemManager.cs b/TShockAPI/DB/ItemManager.cs
index ebff94bc7..043fbd807 100755
--- a/TShockAPI/DB/ItemManager.cs
+++ b/TShockAPI/DB/ItemManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/DB/ProjectileManager.cs b/TShockAPI/DB/ProjectileManager.cs
index c52baf3bf..79f18cd69 100755
--- a/TShockAPI/DB/ProjectileManager.cs
+++ b/TShockAPI/DB/ProjectileManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/DB/RegionManager.cs b/TShockAPI/DB/RegionManager.cs
index 48e17c39a..15478600d 100755
--- a/TShockAPI/DB/RegionManager.cs
+++ b/TShockAPI/DB/RegionManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/DB/RememberedPosManager.cs b/TShockAPI/DB/RememberedPosManager.cs
index 3700ceb84..44b21a5d9 100755
--- a/TShockAPI/DB/RememberedPosManager.cs
+++ b/TShockAPI/DB/RememberedPosManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/DB/SqlColumn.cs b/TShockAPI/DB/SqlColumn.cs
index 8fd72d885..0726e1601 100644
--- a/TShockAPI/DB/SqlColumn.cs
+++ b/TShockAPI/DB/SqlColumn.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/DB/SqlTable.cs b/TShockAPI/DB/SqlTable.cs
index 8a9a9c2d6..856f331fc 100755
--- a/TShockAPI/DB/SqlTable.cs
+++ b/TShockAPI/DB/SqlTable.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/DB/SqlValue.cs b/TShockAPI/DB/SqlValue.cs
index 9edb13e0f..0badb26d7 100644
--- a/TShockAPI/DB/SqlValue.cs
+++ b/TShockAPI/DB/SqlValue.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/DB/TileManager.cs b/TShockAPI/DB/TileManager.cs
index a16f30fb6..49af4ee25 100755
--- a/TShockAPI/DB/TileManager.cs
+++ b/TShockAPI/DB/TileManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/DB/UserManager.cs b/TShockAPI/DB/UserManager.cs
index 2610875e9..cab879221 100755
--- a/TShockAPI/DB/UserManager.cs
+++ b/TShockAPI/DB/UserManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/DB/WarpsManager.cs b/TShockAPI/DB/WarpsManager.cs
index 215726d63..cb8d1d022 100755
--- a/TShockAPI/DB/WarpsManager.cs
+++ b/TShockAPI/DB/WarpsManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Extensions/DbExt.cs b/TShockAPI/Extensions/DbExt.cs
index e7c20bf46..97e1d05b6 100644
--- a/TShockAPI/Extensions/DbExt.cs
+++ b/TShockAPI/Extensions/DbExt.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Extensions/LinqExt.cs b/TShockAPI/Extensions/LinqExt.cs
index e1885bbd5..589f3a774 100644
--- a/TShockAPI/Extensions/LinqExt.cs
+++ b/TShockAPI/Extensions/LinqExt.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Extensions/RandomExt.cs b/TShockAPI/Extensions/RandomExt.cs
index 42abce9a8..9e5f2552e 100644
--- a/TShockAPI/Extensions/RandomExt.cs
+++ b/TShockAPI/Extensions/RandomExt.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Extensions/StringExt.cs b/TShockAPI/Extensions/StringExt.cs
index fe6dcfa2a..0007d83fb 100644
--- a/TShockAPI/Extensions/StringExt.cs
+++ b/TShockAPI/Extensions/StringExt.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/FileTools.cs b/TShockAPI/FileTools.cs
index e0aada859..a85c269fd 100644
--- a/TShockAPI/FileTools.cs
+++ b/TShockAPI/FileTools.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/GeoIPCountry.cs b/TShockAPI/GeoIPCountry.cs
index 764a69a20..a97ef46ff 100644
--- a/TShockAPI/GeoIPCountry.cs
+++ b/TShockAPI/GeoIPCountry.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs
index 92a8b7f6d..e3f744489 100755
--- a/TShockAPI/GetDataHandlers.cs
+++ b/TShockAPI/GetDataHandlers.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Group.cs b/TShockAPI/Group.cs
index 8c05d64c2..63cf5180f 100644
--- a/TShockAPI/Group.cs
+++ b/TShockAPI/Group.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/HandlerList.cs b/TShockAPI/HandlerList.cs
index 07b9d5481..6990160d8 100644
--- a/TShockAPI/HandlerList.cs
+++ b/TShockAPI/HandlerList.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Hooks/AccountHooks.cs b/TShockAPI/Hooks/AccountHooks.cs
index 8c82d0ed0..c652e03ba 100755
--- a/TShockAPI/Hooks/AccountHooks.cs
+++ b/TShockAPI/Hooks/AccountHooks.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Hooks/GeneralHooks.cs b/TShockAPI/Hooks/GeneralHooks.cs
index d07c4f4fd..9e7a44093 100644
--- a/TShockAPI/Hooks/GeneralHooks.cs
+++ b/TShockAPI/Hooks/GeneralHooks.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Hooks/PlayerHooks.cs b/TShockAPI/Hooks/PlayerHooks.cs
index b3e6b585b..5d58847a7 100644
--- a/TShockAPI/Hooks/PlayerHooks.cs
+++ b/TShockAPI/Hooks/PlayerHooks.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Hooks/RegionHooks.cs b/TShockAPI/Hooks/RegionHooks.cs
index 26b2b9f88..2dabb0098 100644
--- a/TShockAPI/Hooks/RegionHooks.cs
+++ b/TShockAPI/Hooks/RegionHooks.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/ILog.cs b/TShockAPI/ILog.cs
index 21ad01562..881fad3fb 100644
--- a/TShockAPI/ILog.cs
+++ b/TShockAPI/ILog.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/IPackable.cs b/TShockAPI/IPackable.cs
index 7dbb2d938..017d62921 100644
--- a/TShockAPI/IPackable.cs
+++ b/TShockAPI/IPackable.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Net/BaseMsg.cs b/TShockAPI/Net/BaseMsg.cs
index c6f3de548..c781a832a 100644
--- a/TShockAPI/Net/BaseMsg.cs
+++ b/TShockAPI/Net/BaseMsg.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Net/DisconnectMsg.cs b/TShockAPI/Net/DisconnectMsg.cs
index 9e5789b46..3a2588988 100644
--- a/TShockAPI/Net/DisconnectMsg.cs
+++ b/TShockAPI/Net/DisconnectMsg.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Net/NetTile.cs b/TShockAPI/Net/NetTile.cs
index c3ee7d6f0..40a1a345c 100644
--- a/TShockAPI/Net/NetTile.cs
+++ b/TShockAPI/Net/NetTile.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Net/ProjectileRemoveMsg.cs b/TShockAPI/Net/ProjectileRemoveMsg.cs
index a576e5bdb..e3f2d13b5 100644
--- a/TShockAPI/Net/ProjectileRemoveMsg.cs
+++ b/TShockAPI/Net/ProjectileRemoveMsg.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Net/SpawnMsg.cs b/TShockAPI/Net/SpawnMsg.cs
index 2fa15e59b..cc6958d5e 100644
--- a/TShockAPI/Net/SpawnMsg.cs
+++ b/TShockAPI/Net/SpawnMsg.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Net/WorldInfoMsg.cs b/TShockAPI/Net/WorldInfoMsg.cs
index 5f2d83a1d..a14eb6a97 100644
--- a/TShockAPI/Net/WorldInfoMsg.cs
+++ b/TShockAPI/Net/WorldInfoMsg.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/PacketBufferer.cs b/TShockAPI/PacketBufferer.cs
index 66a8de140..3124c695d 100644
--- a/TShockAPI/PacketBufferer.cs
+++ b/TShockAPI/PacketBufferer.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/PaginationTools.cs b/TShockAPI/PaginationTools.cs
index e3161a3c2..3bc6de890 100644
--- a/TShockAPI/PaginationTools.cs
+++ b/TShockAPI/PaginationTools.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Permissions.cs b/TShockAPI/Permissions.cs
index 0bd00281e..35ac2b602 100644
--- a/TShockAPI/Permissions.cs
+++ b/TShockAPI/Permissions.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Properties/AssemblyInfo.cs b/TShockAPI/Properties/AssemblyInfo.cs
index 2dbae8e62..674af1cbe 100755
--- a/TShockAPI/Properties/AssemblyInfo.cs
+++ b/TShockAPI/Properties/AssemblyInfo.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Rest/Rest.cs b/TShockAPI/Rest/Rest.cs
index 567cbc040..91b042e11 100644
--- a/TShockAPI/Rest/Rest.cs
+++ b/TShockAPI/Rest/Rest.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Rest/RestCommand.cs b/TShockAPI/Rest/RestCommand.cs
index 7debe22f4..e23efee22 100644
--- a/TShockAPI/Rest/RestCommand.cs
+++ b/TShockAPI/Rest/RestCommand.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Rest/RestManager.cs b/TShockAPI/Rest/RestManager.cs
index 64c624a88..d74aa6c5c 100644
--- a/TShockAPI/Rest/RestManager.cs
+++ b/TShockAPI/Rest/RestManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Rest/RestObject.cs b/TShockAPI/Rest/RestObject.cs
index edc70f580..3653dfaa6 100644
--- a/TShockAPI/Rest/RestObject.cs
+++ b/TShockAPI/Rest/RestObject.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Rest/RestPermissions.cs b/TShockAPI/Rest/RestPermissions.cs
index 6f005c122..eb3bf6cde 100644
--- a/TShockAPI/Rest/RestPermissions.cs
+++ b/TShockAPI/Rest/RestPermissions.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Rest/RestVerbs.cs b/TShockAPI/Rest/RestVerbs.cs
index fa18aec78..057b7d2d6 100644
--- a/TShockAPI/Rest/RestVerbs.cs
+++ b/TShockAPI/Rest/RestVerbs.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Rest/SecureRest.cs b/TShockAPI/Rest/SecureRest.cs
index b0cc65c7d..f8290784f 100644
--- a/TShockAPI/Rest/SecureRest.cs
+++ b/TShockAPI/Rest/SecureRest.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/SaveManager.cs b/TShockAPI/SaveManager.cs
index 7ca8ddc6c..9ff98287a 100644
--- a/TShockAPI/SaveManager.cs
+++ b/TShockAPI/SaveManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/ServerSideCharacters/ServerSideConfig.cs b/TShockAPI/ServerSideCharacters/ServerSideConfig.cs
index cb54716d3..6eaa946f5 100644
--- a/TShockAPI/ServerSideCharacters/ServerSideConfig.cs
+++ b/TShockAPI/ServerSideCharacters/ServerSideConfig.cs
@@ -3,7 +3,7 @@
using System.ComponentModel;
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/SqlLog.cs b/TShockAPI/SqlLog.cs
index 083f76e7a..047f67c00 100644
--- a/TShockAPI/SqlLog.cs
+++ b/TShockAPI/SqlLog.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/TSPlayer.cs b/TShockAPI/TSPlayer.cs
index 95feb9806..ee2348f67 100755
--- a/TShockAPI/TSPlayer.cs
+++ b/TShockAPI/TSPlayer.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index 1bbb70523..ae5f78895 100755
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/TShockAPI.licenseheader b/TShockAPI/TShockAPI.licenseheader
index 936b8a9b5..96f5081fd 100644
--- a/TShockAPI/TShockAPI.licenseheader
+++ b/TShockAPI/TShockAPI.licenseheader
@@ -1,7 +1,7 @@
extensions: .cs
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/TextLog.cs b/TShockAPI/TextLog.cs
index 464305ad9..f3072b8ff 100644
--- a/TShockAPI/TextLog.cs
+++ b/TShockAPI/TextLog.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/UpdateManager.cs b/TShockAPI/UpdateManager.cs
index 0884cb778..650bc17bd 100755
--- a/TShockAPI/UpdateManager.cs
+++ b/TShockAPI/UpdateManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Utils.cs b/TShockAPI/Utils.cs
index d596f0545..0cd9c0a89 100644
--- a/TShockAPI/Utils.cs
+++ b/TShockAPI/Utils.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
From ad03215986d8d0da19eadc55c1b73ba82cbc0e55 Mon Sep 17 00:00:00 2001
From: Adilson Carvalho
Date: Sun, 16 Oct 2016 17:33:19 -0200
Subject: [PATCH 34/38] Added GPL header on all code files when missing
---
TShockAPI/DB/DBTools.cs | 18 ++++++++++++++++++
TShockAPI/NetItem.cs | 18 ++++++++++++++++++
TShockAPI/PlayerData.cs | 18 ++++++++++++++++++
.../ServerSideCharacters/ServerSideConfig.cs | 18 ++++++++++++++++++
TShockAPI/StatTracker.cs | 18 ++++++++++++++++++
.../Properties/AssemblyInfo.cs | 18 ++++++++++++++++++
TShockRestTestPlugin/TShockRestTestPlugin.cs | 18 ++++++++++++++++++
7 files changed, 126 insertions(+)
mode change 100755 => 100644 TShockAPI/StatTracker.cs
diff --git a/TShockAPI/DB/DBTools.cs b/TShockAPI/DB/DBTools.cs
index 8851a4701..38d005d46 100644
--- a/TShockAPI/DB/DBTools.cs
+++ b/TShockAPI/DB/DBTools.cs
@@ -1,3 +1,21 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
using System;
using System.Collections.Generic;
using System.Data;
diff --git a/TShockAPI/NetItem.cs b/TShockAPI/NetItem.cs
index af2c8ac82..45cc2a31c 100644
--- a/TShockAPI/NetItem.cs
+++ b/TShockAPI/NetItem.cs
@@ -1,3 +1,21 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/TShockAPI/PlayerData.cs b/TShockAPI/PlayerData.cs
index 27baa3538..eff5baaa7 100644
--- a/TShockAPI/PlayerData.cs
+++ b/TShockAPI/PlayerData.cs
@@ -1,3 +1,21 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
using Terraria;
using TShockAPI;
diff --git a/TShockAPI/ServerSideCharacters/ServerSideConfig.cs b/TShockAPI/ServerSideCharacters/ServerSideConfig.cs
index 6eaa946f5..cac649121 100644
--- a/TShockAPI/ServerSideCharacters/ServerSideConfig.cs
+++ b/TShockAPI/ServerSideCharacters/ServerSideConfig.cs
@@ -1,3 +1,21 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
using System;
using System.Collections.Generic;
using System.ComponentModel;
diff --git a/TShockAPI/StatTracker.cs b/TShockAPI/StatTracker.cs
old mode 100755
new mode 100644
index 62c112830..24913e839
--- a/TShockAPI/StatTracker.cs
+++ b/TShockAPI/StatTracker.cs
@@ -1,3 +1,21 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/TShockRestTestPlugin/Properties/AssemblyInfo.cs b/TShockRestTestPlugin/Properties/AssemblyInfo.cs
index f9320bbe3..dfb6c9aa4 100644
--- a/TShockRestTestPlugin/Properties/AssemblyInfo.cs
+++ b/TShockRestTestPlugin/Properties/AssemblyInfo.cs
@@ -1,3 +1,21 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
diff --git a/TShockRestTestPlugin/TShockRestTestPlugin.cs b/TShockRestTestPlugin/TShockRestTestPlugin.cs
index 385ba4fc2..250ff0879 100644
--- a/TShockRestTestPlugin/TShockRestTestPlugin.cs
+++ b/TShockRestTestPlugin/TShockRestTestPlugin.cs
@@ -1,3 +1,21 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
using System;
using System.Collections.Generic;
using System.ComponentModel;
From 4bdae494cb8541966a838bb5468044a0ac303375 Mon Sep 17 00:00:00 2001
From: Vinayak Agarwal
Date: Mon, 17 Oct 2016 03:31:35 +0530
Subject: [PATCH 35/38] Add script for GPL
---
TShockAPI/BackupManager.cs | 2 +-
TShockAPI/Commands.cs | 2 +-
TShockAPI/ConfigFile.cs | 2 +-
TShockAPI/FileTools.cs | 2 +-
TShockAPI/GeoIPCountry.cs | 2 +-
TShockAPI/GetDataHandlers.cs | 2 +-
TShockAPI/Group.cs | 2 +-
TShockAPI/HandlerList.cs | 2 +-
TShockAPI/ILog.cs | 2 +-
TShockAPI/IPackable.cs | 2 +-
TShockAPI/NetItem.cs | 18 +++++
TShockAPI/PacketBufferer.cs | 2 +-
TShockAPI/PaginationTools.cs | 2 +-
TShockAPI/Permissions.cs | 2 +-
TShockAPI/PlayerData.cs | 18 +++++
TShockAPI/Resources.Designer.cs | 18 +++++
TShockAPI/SaveManager.cs | 2 +-
TShockAPI/SqlLog.cs | 2 +-
TShockAPI/StatTracker.cs | 18 +++++
TShockAPI/TSPlayer.cs | 2 +-
TShockAPI/TSServerPlayer.cs | 18 +++++
TShockAPI/TShock.cs | 2 +-
TShockAPI/TextLog.cs | 2 +-
TShockAPI/UpdateManager.cs | 2 +-
TShockAPI/Utils.cs | 2 +-
TShockRestTestPlugin/TShockRestTestPlugin.cs | 18 +++++
gpltext.py | 83 ++++++++++++++++++++
scripts/create_release.py | 18 +++++
scripts/deploy_release.py | 18 +++++
scripts/test_release.py | 18 +++++
30 files changed, 265 insertions(+), 20 deletions(-)
create mode 100644 gpltext.py
diff --git a/TShockAPI/BackupManager.cs b/TShockAPI/BackupManager.cs
index d484c3896..58b544f4a 100644
--- a/TShockAPI/BackupManager.cs
+++ b/TShockAPI/BackupManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index 08e5477ed..a4ddb549a 100755
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/ConfigFile.cs b/TShockAPI/ConfigFile.cs
index c4f9cf354..f32099ab4 100755
--- a/TShockAPI/ConfigFile.cs
+++ b/TShockAPI/ConfigFile.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/FileTools.cs b/TShockAPI/FileTools.cs
index e0aada859..a85c269fd 100644
--- a/TShockAPI/FileTools.cs
+++ b/TShockAPI/FileTools.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/GeoIPCountry.cs b/TShockAPI/GeoIPCountry.cs
index 764a69a20..a97ef46ff 100644
--- a/TShockAPI/GeoIPCountry.cs
+++ b/TShockAPI/GeoIPCountry.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs
index 92a8b7f6d..e3f744489 100755
--- a/TShockAPI/GetDataHandlers.cs
+++ b/TShockAPI/GetDataHandlers.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Group.cs b/TShockAPI/Group.cs
index 8c05d64c2..63cf5180f 100644
--- a/TShockAPI/Group.cs
+++ b/TShockAPI/Group.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/HandlerList.cs b/TShockAPI/HandlerList.cs
index 07b9d5481..6990160d8 100644
--- a/TShockAPI/HandlerList.cs
+++ b/TShockAPI/HandlerList.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/ILog.cs b/TShockAPI/ILog.cs
index 21ad01562..881fad3fb 100644
--- a/TShockAPI/ILog.cs
+++ b/TShockAPI/ILog.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/IPackable.cs b/TShockAPI/IPackable.cs
index 7dbb2d938..017d62921 100644
--- a/TShockAPI/IPackable.cs
+++ b/TShockAPI/IPackable.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/NetItem.cs b/TShockAPI/NetItem.cs
index af2c8ac82..45cc2a31c 100644
--- a/TShockAPI/NetItem.cs
+++ b/TShockAPI/NetItem.cs
@@ -1,3 +1,21 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/TShockAPI/PacketBufferer.cs b/TShockAPI/PacketBufferer.cs
index 66a8de140..3124c695d 100644
--- a/TShockAPI/PacketBufferer.cs
+++ b/TShockAPI/PacketBufferer.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/PaginationTools.cs b/TShockAPI/PaginationTools.cs
index e3161a3c2..3bc6de890 100644
--- a/TShockAPI/PaginationTools.cs
+++ b/TShockAPI/PaginationTools.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Permissions.cs b/TShockAPI/Permissions.cs
index 0bd00281e..35ac2b602 100644
--- a/TShockAPI/Permissions.cs
+++ b/TShockAPI/Permissions.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/PlayerData.cs b/TShockAPI/PlayerData.cs
index 27baa3538..eff5baaa7 100644
--- a/TShockAPI/PlayerData.cs
+++ b/TShockAPI/PlayerData.cs
@@ -1,3 +1,21 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
using Terraria;
using TShockAPI;
diff --git a/TShockAPI/Resources.Designer.cs b/TShockAPI/Resources.Designer.cs
index 49c1d908f..026e79d87 100644
--- a/TShockAPI/Resources.Designer.cs
+++ b/TShockAPI/Resources.Designer.cs
@@ -1,3 +1,21 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
diff --git a/TShockAPI/SaveManager.cs b/TShockAPI/SaveManager.cs
index 7ca8ddc6c..9ff98287a 100644
--- a/TShockAPI/SaveManager.cs
+++ b/TShockAPI/SaveManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/SqlLog.cs b/TShockAPI/SqlLog.cs
index 083f76e7a..047f67c00 100644
--- a/TShockAPI/SqlLog.cs
+++ b/TShockAPI/SqlLog.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/StatTracker.cs b/TShockAPI/StatTracker.cs
index 62c112830..24913e839 100755
--- a/TShockAPI/StatTracker.cs
+++ b/TShockAPI/StatTracker.cs
@@ -1,3 +1,21 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/TShockAPI/TSPlayer.cs b/TShockAPI/TSPlayer.cs
index 95feb9806..ee2348f67 100755
--- a/TShockAPI/TSPlayer.cs
+++ b/TShockAPI/TSPlayer.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/TSServerPlayer.cs b/TShockAPI/TSServerPlayer.cs
index 7618e0ca4..a69a4ca23 100644
--- a/TShockAPI/TSServerPlayer.cs
+++ b/TShockAPI/TSServerPlayer.cs
@@ -1,3 +1,21 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
using System;
using System.Collections.Generic;
using Terraria;
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index 1bbb70523..ae5f78895 100755
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/TextLog.cs b/TShockAPI/TextLog.cs
index 464305ad9..f3072b8ff 100644
--- a/TShockAPI/TextLog.cs
+++ b/TShockAPI/TextLog.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/UpdateManager.cs b/TShockAPI/UpdateManager.cs
index 0884cb778..650bc17bd 100755
--- a/TShockAPI/UpdateManager.cs
+++ b/TShockAPI/UpdateManager.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockAPI/Utils.cs b/TShockAPI/Utils.cs
index d596f0545..0cd9c0a89 100644
--- a/TShockAPI/Utils.cs
+++ b/TShockAPI/Utils.cs
@@ -1,6 +1,6 @@
/*
TShock, a server mod for Terraria
-Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team)
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/TShockRestTestPlugin/TShockRestTestPlugin.cs b/TShockRestTestPlugin/TShockRestTestPlugin.cs
index 385ba4fc2..250ff0879 100644
--- a/TShockRestTestPlugin/TShockRestTestPlugin.cs
+++ b/TShockRestTestPlugin/TShockRestTestPlugin.cs
@@ -1,3 +1,21 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
using System;
using System.Collections.Generic;
using System.ComponentModel;
diff --git a/gpltext.py b/gpltext.py
new file mode 100644
index 000000000..63cc024c5
--- /dev/null
+++ b/gpltext.py
@@ -0,0 +1,83 @@
+''' TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+'''
+
+import re
+import os
+import glob
+
+extensions = {'.cs', '.py'}
+path = "./"
+pattern = "/\*\s?\n?TShock, a server mod for Terraria(\n|.)*\*/"
+pypattern = "'''\s?\n?TShock, a server mod for Terraria(\n|.)*'''"
+year = "2016"
+filename = "./README.md"
+text = "/*\n\
+TShock, a server mod for Terraria\n\
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)\n\
+\n\
+This program is free software: you can redistribute it and/or modify\n\
+it under the terms of the GNU General Public License as published by\n\
+the Free Software Foundation, either version 3 of the License, or\n\
+(at your option) any later version.\n\
+\n\
+This program is distributed in the hope that it will be useful,\n\
+but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\
+GNU General Public License for more details.\n\
+\n\
+You should have received a copy of the GNU General Public License\n\
+along with this program. If not, see .\n\
+*/\n\
+\n\
+"
+pytext = re.sub(r"\*/", "'''", text)
+pytext = re.sub(r"/\*", "'''", pytext)
+
+def changeText(filename):
+ content = ''
+
+ with open(filename, 'r') as f:
+ content = f.read()
+
+ if filename.endswith('.py'):
+ if re.search(pypattern, content):
+ content = re.sub(r"Copyright \(C\) 2011-[\d]{4}", "Copyright (C) 2011-%s" % year, content)
+ else:
+ content = pytext + content
+ else:
+ if re.search(pattern, content):
+ content = re.sub(r"Copyright \(C\) 2011-[\d]{4}", "Copyright (C) 2011-%s" % year, content)
+ else:
+ content = text + content
+
+ with open(filename, 'w') as f:
+ f.write(content)
+
+def getFiles(path):
+ list = os.listdir(path)
+
+ for f in list:
+ #print (f)
+ if os.path.isdir(f):
+ getFiles(path + f + '/')
+ else:
+ for ext in extensions:
+ if f.endswith(ext):
+ print (path + f)
+ changeText(path + f)
+
+getFiles(path)
\ No newline at end of file
diff --git a/scripts/create_release.py b/scripts/create_release.py
index 3bde7c41c..e63ee1b63 100644
--- a/scripts/create_release.py
+++ b/scripts/create_release.py
@@ -1,3 +1,21 @@
+'''
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+'''
+
# Hey there, this is used to compile TShock on the build server.
# Don't change it. Thanks!
diff --git a/scripts/deploy_release.py b/scripts/deploy_release.py
index 5e2a90e1a..4b8067616 100644
--- a/scripts/deploy_release.py
+++ b/scripts/deploy_release.py
@@ -1,3 +1,21 @@
+'''
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+'''
+
import requests
import json
import sys
diff --git a/scripts/test_release.py b/scripts/test_release.py
index 53fb234ae..60009582b 100644
--- a/scripts/test_release.py
+++ b/scripts/test_release.py
@@ -1,3 +1,21 @@
+'''
+TShock, a server mod for Terraria
+Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+'''
+
import subprocess
import shutil
import os.path
From 01778531c625e7ca97168941d94cbf0a4f0932c5 Mon Sep 17 00:00:00 2001
From: Vinayak Agarwal
Date: Mon, 17 Oct 2016 11:28:34 +0530
Subject: [PATCH 36/38] Remove headers from autogenerated file
---
TShockAPI/Resources.Designer.cs | 18 ------------------
gpltext.py | 3 +++
2 files changed, 3 insertions(+), 18 deletions(-)
diff --git a/TShockAPI/Resources.Designer.cs b/TShockAPI/Resources.Designer.cs
index 026e79d87..49c1d908f 100644
--- a/TShockAPI/Resources.Designer.cs
+++ b/TShockAPI/Resources.Designer.cs
@@ -1,21 +1,3 @@
-/*
-TShock, a server mod for Terraria
-Copyright (C) 2011-2016 Nyx Studios (fka. The TShock Team)
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see .
-*/
-
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
diff --git a/gpltext.py b/gpltext.py
index 63cc024c5..a9b54cafb 100644
--- a/gpltext.py
+++ b/gpltext.py
@@ -77,7 +77,10 @@ def getFiles(path):
else:
for ext in extensions:
if f.endswith(ext):
+ if f.endswith('.Designer.cs'):
+ break
print (path + f)
changeText(path + f)
+ break
getFiles(path)
\ No newline at end of file
From 198825deac5999ad1b48845e4f621a0805974d5e Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Mon, 17 Oct 2016 02:36:48 -0600
Subject: [PATCH 37/38] Submodule update for #1308 / #921
---
TerrariaServerAPI | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TerrariaServerAPI b/TerrariaServerAPI
index 651dac498..3c7a19d6e 160000
--- a/TerrariaServerAPI
+++ b/TerrariaServerAPI
@@ -1 +1 @@
-Subproject commit 651dac4982d80f0791a887447776d7d7eba1e41b
+Subproject commit 3c7a19d6e5a3cdf3c82d12edca0f9e761e6f4a47
From 9b7ca644b5ab3e90e6d1e83e95190e1156c2cdb6 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Mon, 17 Oct 2016 02:41:22 -0600
Subject: [PATCH 38/38] Version Tick: 4.3.20
---
CHANGELOG.md | 4 +++-
TShockAPI/Properties/AssemblyInfo.cs | 4 ++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7de6db812..b1c9b41e9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,11 +2,13 @@
This is the rolling changelog for TShock for Terraria. Use past tense when adding new entries; sign your name off when you add or change something. This should primarily be things like user changes, not necessarily codebase changes unless it's really relevant or large.
-## Upcoming Changes
+## TShock 4.3.20
* Security improvement: The auth system is now automatically disabled if a superadmin exists in the database (@Enerdy).
* Removed the `auth-verify` command since `auth` now serves its purpose when necessary (@Enerdy).
* Security: `/"` exploit can no longer break chat mute filters (@Simon311).
* Fixed an issue where sometimes players could connect briefly during server shutdown, leading to errors (@Simon311).
+* Fixed wyverns despawning & not behaving like normal (@WhiteXZ).
+* Fixed major security issue where InvokeClientConnect could be exploited to do terrible, terrible things (@Simon311, @nicatronTg, @popstarfreas, @ProfessorXZ).
## TShock 4.3.19
* Compatibility with Terraria 1.3.3.3 (@Simon311)
diff --git a/TShockAPI/Properties/AssemblyInfo.cs b/TShockAPI/Properties/AssemblyInfo.cs
index 674af1cbe..bf2ea2224 100755
--- a/TShockAPI/Properties/AssemblyInfo.cs
+++ b/TShockAPI/Properties/AssemblyInfo.cs
@@ -53,5 +53,5 @@ You should have received a copy of the GNU General Public License
// Also, be sure to release on github with the exact assembly version tag as below
// so that the update manager works correctly (via the Github releases api and mimic)
-[assembly: AssemblyVersion("4.3.19")]
-[assembly: AssemblyFileVersion("4.3.19")]
+[assembly: AssemblyVersion("4.3.20")]
+[assembly: AssemblyFileVersion("4.3.20")]