Merge branch 'general-devel' of https://github.com/nyxstudios/TShock into general-devel

This commit is contained in:
White 2015-07-10 16:59:44 +09:30
commit a99414e712
8 changed files with 44 additions and 17 deletions

View file

@ -2,7 +2,27 @@
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. 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.
## TShock 4.3.0.1 ## TShock 4.3.2 (Unreleased)
* Fixed the issue where using the Super Absorbent Sponge would disable users (@WhiteXZ)
* Fixed an issue in NetGetData where e.Length - 1 would be -1 (@WhiteXZ)
* Fixed /who -i and /userinfo (@Enerdy)
* API: OnRegionEntered hook now returns the region entered (@Patrikkk)
* Support for Terraria 1.3.0.4 (@nicatronTg)
* Fixed dressers being unbreakable. (@nicatronTg)
* Fixed wall placement mechanics (@nicatronTg, @Ijwu, @WhiteXZ)
* Fixed Moon Lord projectiles disabling players (@k0rd, @nicatronTg)
* Fixed several potential crashes in server (@Patrikkk)
* Fixed -autocreate command line argument (@WhiteXZ, @nicatronTg)
* Added more world data to world load menu (@WhiteXZ)
* Moved server password to TShock config (@Enerdy)
* Fixed world delete in server (@benjiro)
* Fixed disappearing NPCs (@WhiteXZ)
* Added much more performant code, SendQ, to server module. Reduces downstream network overhead by at least 40% (@tylerjwatson)
* API: Updated TSPlayer.Disable to use new buffs (@Enerdy)
* Updated default max projectile damage to 1,175 (based on 625 people)
## TShock 4.3.1
* Fixed a bug where /user group failing would output no error. (@nicatronTg) * Fixed a bug where /user group failing would output no error. (@nicatronTg)
* Fixed a bug where /user group would fail. @(Enerdy) * Fixed a bug where /user group would fail. @(Enerdy)

View file

@ -293,7 +293,7 @@ namespace TShockAPI
public int MaxDamage = 175; public int MaxDamage = 175;
[Description("The maximum damage a projectile can inflict.")] [Description("The maximum damage a projectile can inflict.")]
public int MaxProjDamage = 175; public int MaxProjDamage = 1175;
[Description("Kicks a user if set to true, if they inflict more damage then the max damage.")] [Description("Kicks a user if set to true, if they inflict more damage then the max damage.")]
public bool KickOnDamageThresholdBroken = false; public bool KickOnDamageThresholdBroken = false;

View file

@ -1944,9 +1944,10 @@ namespace TShockAPI
} }
else if (action == EditAction.KillWall) else if (action == EditAction.KillWall)
{ {
// If they aren't selecting an hammer, they're hacking. // If they aren't selecting an hammer, they could be hacking.
if (selectedItem.hammer == 0 && !ItemID.Sets.Explosives[selectedItem.netID] && args.Player.RecentFuse == 0) if (selectedItem.hammer == 0 && !ItemID.Sets.Explosives[selectedItem.netID] && args.Player.RecentFuse == 0 && selectedItem.createWall == 0)
{ {
args.Player.SendTileSquare(tileX, tileY, 1); args.Player.SendTileSquare(tileX, tileY, 1);
return true; return true;
} }
@ -2474,7 +2475,7 @@ namespace TShockAPI
bool hasPermission = !TShock.CheckProjectilePermission(args.Player, index, type); bool hasPermission = !TShock.CheckProjectilePermission(args.Player, index, type);
if (!TShock.Config.IgnoreProjUpdate && !hasPermission && !args.Player.Group.HasPermission(Permissions.ignoreprojectiledetection)) if (!TShock.Config.IgnoreProjUpdate && !hasPermission && !args.Player.Group.HasPermission(Permissions.ignoreprojectiledetection))
{ {
if (type == 100 || type == 164 || type == 180 || type == 261 || (type > 289 && type < 298) || (type >= 325 && type <= 328) || (type >= 345 && type <= 352) || (type >= 435 && type <= 438)) if (type == 622 || (type >= 638 && type <= 642) || type == 100 || type == 164 || type == 180 || type == 261 || (type > 289 && type < 298) || (type >= 325 && type <= 328) || (type >= 345 && type <= 352) || (type >= 435 && type <= 438))
{ {
TShock.Log.Debug("Certain projectiles have been ignored for cheat detection."); TShock.Log.Debug("Certain projectiles have been ignored for cheat detection.");
} }
@ -2778,7 +2779,7 @@ namespace TShockAPI
return true; return true;
} }
if (flag != 0 && Main.tile[tileX, tileY].type != 21 && (!TShock.Utils.MaxChests() && Main.tile[tileX, tileY].type != 0)) //Chest if (flag != 0 && Main.tile[tileX, tileY].type != 21 && Main.tile[tileX, tileY].type != 88 && (!TShock.Utils.MaxChests() && Main.tile[tileX, tileY].type != 0)) //Chest
{ {
args.Player.SendTileSquare(tileX, tileY, 3); args.Player.SendTileSquare(tileX, tileY, 3);
return true; return true;

View file

@ -24,6 +24,7 @@ using System.Text;
using System.Threading; using System.Threading;
using System.Timers; using System.Timers;
using Terraria; using Terraria;
using Terraria.ID;
using TShockAPI.DB; using TShockAPI.DB;
using TShockAPI.Net; using TShockAPI.Net;
using Timer = System.Timers.Timer; using Timer = System.Timers.Timer;
@ -770,13 +771,17 @@ namespace TShockAPI
public int ActiveChest = -1; public int ActiveChest = -1;
public Item ItemInHand = new Item(); public Item ItemInHand = new Item();
/// <summary>
/// Disables the player for the given <paramref name="reason"/>.
/// </summary>
/// <param name="reason">The reason why the player was disabled.</param>
/// <param name="displayConsole">Whether or not to log this event to the console.</param>
public virtual void Disable(string reason = "", bool displayConsole = true) public virtual void Disable(string reason = "", bool displayConsole = true)
{ {
LastThreat = DateTime.UtcNow; LastThreat = DateTime.UtcNow;
SetBuff(33, 330, true); //Weak SetBuff(BuffID.Frozen, 330, true);
SetBuff(32, 330, true); //Slow SetBuff(BuffID.Stoned, 330, true);
SetBuff(23, 330, true); //Cursed SetBuff(BuffID.Webbed, 330, true);
SetBuff(47, 330, true); //Frozen
if (ActiveChest != -1) if (ActiveChest != -1)
{ {
@ -798,6 +803,7 @@ namespace TShockAPI
LastDisableNotification = DateTime.UtcNow; LastDisableNotification = DateTime.UtcNow;
} }
} }
var trace = new StackTrace(); var trace = new StackTrace();
StackFrame frame = null; StackFrame frame = null;
frame = trace.GetFrame(1); frame = trace.GetFrame(1);

@ -1 +1 @@
Subproject commit e0d62e9b9092496c61f86f721235e7b488349d0a Subproject commit 088c5f707f0ae1f948ee5dac4566702a5d85e07e

Binary file not shown.

View file

@ -11,7 +11,7 @@ cur_wd = os.getcwd()
release_dir = os.path.join(cur_wd, "releases") release_dir = os.path.join(cur_wd, "releases")
terraria_bin_name = "TerrariaServer.exe" terraria_bin_name = "TerrariaServer.exe"
sql_bins_names = ["Mono.Data.Sqlite.dll", "MySql.Data.dll", "MySql.Web.dll"] sql_bins_names = ["Mono.Data.Sqlite.dll", "MySql.Data.dll"]
sqlite_dep = "sqlite3.dll" sqlite_dep = "sqlite3.dll"
json_bin_name = "Newtonsoft.Json.dll" json_bin_name = "Newtonsoft.Json.dll"
http_bin_name = "HttpServer.dll" http_bin_name = "HttpServer.dll"
@ -56,7 +56,7 @@ def create_base_zip(name):
zip.write(terraria_bin_name) zip.write(terraria_bin_name)
zip.write(sqlite_dep) zip.write(sqlite_dep)
zip.write(http_bin_name, os.path.join("ServerPlugins", http_bin_name)) zip.write(http_bin_name, os.path.join("ServerPlugins", http_bin_name))
zip.write(json_bin_name, os.path.join("ServerPlugins", json_bin_name)) zip.write(json_bin_name, json_bin_name)
zip.write(bcrypt_bin_name, os.path.join("ServerPlugins", bcrypt_bin_name)) zip.write(bcrypt_bin_name, os.path.join("ServerPlugins", bcrypt_bin_name))
for f in sql_bins_names: for f in sql_bins_names:
zip.write(f, os.path.join("ServerPlugins", f)) zip.write(f, os.path.join("ServerPlugins", f))

View file

@ -99,7 +99,7 @@ upload_headers = {'Authorization': 'token ' + token, 'Content-Type':'application
#upload the binary, resulting in a complete binary #upload the binary, resulting in a complete binary
r = requests.post(upload_url, data=open(release_name, 'rb'), headers = upload_headers, verify=False) r = requests.post(upload_url, data=open(release_name, 'rb'), headers = upload_headers, verify=False)
read_and_update_config_on_confluence(config_desc_page, "ConfigDescriptions.txt") # read_and_update_config_on_confluence(config_desc_page, "ConfigDescriptions.txt")
read_and_update_config_on_confluence(ssc_desc_page, "ServerSideConfigDescriptions.txt") # read_and_update_config_on_confluence(ssc_desc_page, "ServerSideConfigDescriptions.txt")
read_and_update_config_on_confluence(permissions_desc_page, "PermissionsDescriptions.txt") # read_and_update_config_on_confluence(permissions_desc_page, "PermissionsDescriptions.txt")
read_and_update_config_on_confluence(rest_desc_page, "RestDescriptions.txt") # read_and_update_config_on_confluence(rest_desc_page, "RestDescriptions.txt")