From bfdcea5dd802bf72db07543cd338ae8fc564de46 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Wed, 19 Apr 2017 16:02:56 -0600
Subject: [PATCH 01/58] Update submodule to t-1.3.5 branch
---
TerrariaServerAPI | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TerrariaServerAPI b/TerrariaServerAPI
index 3b96d98a..5a5b0e9e 160000
--- a/TerrariaServerAPI
+++ b/TerrariaServerAPI
@@ -1 +1 @@
-Subproject commit 3b96d98a37c96c2a5969bfd4bf63a2fd4371ed46
+Subproject commit 5a5b0e9ee39af91e4d584eaa63e5af104803200f
From d50fa2fbc44b7ad8401e1ed5a29f337fead3348a Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Wed, 19 Apr 2017 16:03:25 -0600
Subject: [PATCH 02/58] Mark create release script executable
---
scripts/create_release.py | 0
1 file changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 scripts/create_release.py
diff --git a/scripts/create_release.py b/scripts/create_release.py
old mode 100644
new mode 100755
From 2a5efa65aec65d9ac3c685675e4eb86de7558f0e Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Wed, 19 Apr 2017 17:12:38 -0600
Subject: [PATCH 03/58] Saving work to apply merge changes
Currently moving .name to .Name and things like that from Item
---
.gitignore | 4 ++--
TShockAPI/DB/ItemManager.cs | 4 ++--
TShockAPI/PlayerData.cs | 36 ++++++++++++++++++------------------
TShockAPI/TShock.cs | 36 ++++++++++++++++++------------------
TShockAPI/app.config | 8 ++++----
TShockAPI/web.config | 9 +++++++++
scripts/create_release.py | 2 +-
7 files changed, 54 insertions(+), 45 deletions(-)
create mode 100644 TShockAPI/web.config
diff --git a/.gitignore b/.gitignore
index 5a43ff85..c7755a6d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,6 @@
# Sublime Text #
*.sublime-*
-
+releases/
# Compiled source #
###################
*.com
@@ -67,4 +67,4 @@ _ReSharper.*
packages/*
# Private key files #
-scripts/ssh_private_key
\ No newline at end of file
+scripts/ssh_private_key
diff --git a/TShockAPI/DB/ItemManager.cs b/TShockAPI/DB/ItemManager.cs
index 75a6028f..541f8a8d 100644
--- a/TShockAPI/DB/ItemManager.cs
+++ b/TShockAPI/DB/ItemManager.cs
@@ -65,7 +65,7 @@ namespace TShockAPI.DB
try
{
database.Query("INSERT INTO ItemBans (ItemName, AllowedGroups) VALUES (@0, @1);",
- TShock.Utils.GetItemByName(itemname)[0].name, "");
+ TShock.Utils.GetItemByName(itemname)[0].Name, "");
if (!ItemIsBanned(itemname, null))
ItemBans.Add(new ItemBan(itemname));
}
@@ -81,7 +81,7 @@ namespace TShockAPI.DB
return;
try
{
- database.Query("DELETE FROM ItemBans WHERE ItemName=@0;", TShock.Utils.GetItemByName(itemname)[0].name);
+ database.Query("DELETE FROM ItemBans WHERE ItemName=@0;", TShock.Utils.GetItemByName(itemname)[0].Name);
ItemBans.Remove(new ItemBan(itemname));
}
catch (Exception ex)
diff --git a/TShockAPI/PlayerData.cs b/TShockAPI/PlayerData.cs
index 0b6c1ae0..de5f68ed 100644
--- a/TShockAPI/PlayerData.cs
+++ b/TShockAPI/PlayerData.cs
@@ -340,43 +340,43 @@ namespace TShockAPI
float slot = 0f;
for (int k = 0; k < NetItem.InventorySlots; k++)
{
- NetMessage.SendData(5, -1, -1, Main.player[player.Index].inventory[k].name, player.Index, slot, (float)Main.player[player.Index].inventory[k].prefix);
+ NetMessage.SendData(5, -1, -1, Main.player[player.Index].inventory[k].Name, player.Index, slot, (float)Main.player[player.Index].inventory[k].prefix);
slot++;
}
for (int k = 0; k < NetItem.ArmorSlots; k++)
{
- NetMessage.SendData(5, -1, -1, Main.player[player.Index].armor[k].name, player.Index, slot, (float)Main.player[player.Index].armor[k].prefix);
+ NetMessage.SendData(5, -1, -1, Main.player[player.Index].armor[k].Name, player.Index, slot, (float)Main.player[player.Index].armor[k].prefix);
slot++;
}
for (int k = 0; k < NetItem.DyeSlots; k++)
{
- NetMessage.SendData(5, -1, -1, Main.player[player.Index].dye[k].name, player.Index, slot, (float)Main.player[player.Index].dye[k].prefix);
+ NetMessage.SendData(5, -1, -1, Main.player[player.Index].dye[k].Name, player.Index, slot, (float)Main.player[player.Index].dye[k].prefix);
slot++;
}
for (int k = 0; k < NetItem.MiscEquipSlots; k++)
{
- NetMessage.SendData(5, -1, -1, Main.player[player.Index].miscEquips[k].name, player.Index, slot, (float)Main.player[player.Index].miscEquips[k].prefix);
+ NetMessage.SendData(5, -1, -1, Main.player[player.Index].miscEquips[k].Name, player.Index, slot, (float)Main.player[player.Index].miscEquips[k].prefix);
slot++;
}
for (int k = 0; k < NetItem.MiscDyeSlots; k++)
{
- NetMessage.SendData(5, -1, -1, Main.player[player.Index].miscDyes[k].name, player.Index, slot, (float)Main.player[player.Index].miscDyes[k].prefix);
+ NetMessage.SendData(5, -1, -1, Main.player[player.Index].miscDyes[k].Name, player.Index, slot, (float)Main.player[player.Index].miscDyes[k].prefix);
slot++;
}
for (int k = 0; k < NetItem.PiggySlots; k++)
{
- NetMessage.SendData(5, -1, -1, Main.player[player.Index].bank.item[k].name, player.Index, slot, (float)Main.player[player.Index].bank.item[k].prefix);
+ NetMessage.SendData(5, -1, -1, Main.player[player.Index].bank.item[k].Name, player.Index, slot, (float)Main.player[player.Index].bank.item[k].prefix);
slot++;
}
for (int k = 0; k < NetItem.SafeSlots; k++)
{
- NetMessage.SendData(5, -1, -1, Main.player[player.Index].bank2.item[k].name, player.Index, slot, (float)Main.player[player.Index].bank2.item[k].prefix);
+ NetMessage.SendData(5, -1, -1, Main.player[player.Index].bank2.item[k].Name, player.Index, slot, (float)Main.player[player.Index].bank2.item[k].prefix);
slot++;
}
- NetMessage.SendData(5, -1, -1, Main.player[player.Index].trashItem.name, player.Index, slot++, (float)Main.player[player.Index].trashItem.prefix);
+ NetMessage.SendData(5, -1, -1, Main.player[player.Index].trashItem.Name, player.Index, slot++, (float)Main.player[player.Index].trashItem.prefix);
for (int k = 0; k < NetItem.ForgeSlots; k++)
{
- NetMessage.SendData(5, -1, -1, Main.player[player.Index].bank3.item[k].name, player.Index, slot, (float)Main.player[player.Index].bank3.item[k].prefix);
+ NetMessage.SendData(5, -1, -1, Main.player[player.Index].bank3.item[k].Name, player.Index, slot, (float)Main.player[player.Index].bank3.item[k].prefix);
slot++;
}
@@ -388,43 +388,43 @@ namespace TShockAPI
slot = 0f;
for (int k = 0; k < NetItem.InventorySlots; k++)
{
- NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].inventory[k].name, player.Index, slot, (float)Main.player[player.Index].inventory[k].prefix);
+ NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].inventory[k].Name, player.Index, slot, (float)Main.player[player.Index].inventory[k].prefix);
slot++;
}
for (int k = 0; k < NetItem.ArmorSlots; k++)
{
- NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].armor[k].name, player.Index, slot, (float)Main.player[player.Index].armor[k].prefix);
+ NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].armor[k].Name, player.Index, slot, (float)Main.player[player.Index].armor[k].prefix);
slot++;
}
for (int k = 0; k < NetItem.DyeSlots; k++)
{
- NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].dye[k].name, player.Index, slot, (float)Main.player[player.Index].dye[k].prefix);
+ NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].dye[k].Name, player.Index, slot, (float)Main.player[player.Index].dye[k].prefix);
slot++;
}
for (int k = 0; k < NetItem.MiscEquipSlots; k++)
{
- NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].miscEquips[k].name, player.Index, slot, (float)Main.player[player.Index].miscEquips[k].prefix);
+ NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].miscEquips[k].Name, player.Index, slot, (float)Main.player[player.Index].miscEquips[k].prefix);
slot++;
}
for (int k = 0; k < NetItem.MiscDyeSlots; k++)
{
- NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].miscDyes[k].name, player.Index, slot, (float)Main.player[player.Index].miscDyes[k].prefix);
+ NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].miscDyes[k].Name, player.Index, slot, (float)Main.player[player.Index].miscDyes[k].prefix);
slot++;
}
for (int k = 0; k < NetItem.PiggySlots; k++)
{
- NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].bank.item[k].name, player.Index, slot, (float)Main.player[player.Index].bank.item[k].prefix);
+ NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].bank.item[k].Name, player.Index, slot, (float)Main.player[player.Index].bank.item[k].prefix);
slot++;
}
for (int k = 0; k < NetItem.SafeSlots; k++)
{
- NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].bank2.item[k].name, player.Index, slot, (float)Main.player[player.Index].bank2.item[k].prefix);
+ NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].bank2.item[k].Name, player.Index, slot, (float)Main.player[player.Index].bank2.item[k].prefix);
slot++;
}
- NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].trashItem.name, player.Index, slot++, (float)Main.player[player.Index].trashItem.prefix);
+ NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].trashItem.Name, player.Index, slot++, (float)Main.player[player.Index].trashItem.prefix);
for (int k = 0; k < NetItem.ForgeSlots; k++)
{
- NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].bank3.item[k].name, player.Index, slot, (float)Main.player[player.Index].bank3.item[k].prefix);
+ NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].bank3.item[k].Name, player.Index, slot, (float)Main.player[player.Index].bank3.item[k].prefix);
slot++;
}
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index f4d051e1..2ebb7ef4 100644
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -1108,7 +1108,7 @@ namespace TShockAPI
if (!player.HasPermission(Permissions.ignorestackhackdetection) && (item.stack > item.maxStack || item.stack < 0) &&
item.type != 0)
{
- check = "Remove item " + item.name + " (" + item.stack + ") exceeds max stack of " + item.maxStack;
+ check = "Remove item " + item.Name + " (" + item.stack + ") exceeds max stack of " + item.maxStack;
player.SendErrorMessage(check);
break;
}
@@ -1118,12 +1118,12 @@ namespace TShockAPI
// Please don't remove this for the time being; without it, players wearing banned equipment will only get debuffed once
foreach (Item item in player.TPlayer.armor)
{
- if (Itembans.ItemIsBanned(item.name, player))
+ if (Itembans.ItemIsBanned(item.Name, player))
{
player.SetBuff(BuffID.Frozen, 330, true);
player.SetBuff(BuffID.Stoned, 330, true);
player.SetBuff(BuffID.Webbed, 330, true);
- check = "Remove armor/accessory " + item.name;
+ check = "Remove armor/accessory " + item.Name;
player.SendErrorMessage("You are wearing banned equipment. {0}", check);
break;
@@ -1131,12 +1131,12 @@ namespace TShockAPI
}
foreach (Item item in player.TPlayer.dye)
{
- if (Itembans.ItemIsBanned(item.name, player))
+ if (Itembans.ItemIsBanned(item.Name, player))
{
player.SetBuff(BuffID.Frozen, 330, true);
player.SetBuff(BuffID.Stoned, 330, true);
player.SetBuff(BuffID.Webbed, 330, true);
- check = "Remove dye " + item.name;
+ check = "Remove dye " + item.Name;
player.SendErrorMessage("You are wearing banned equipment. {0}", check);
break;
@@ -1144,12 +1144,12 @@ namespace TShockAPI
}
foreach (Item item in player.TPlayer.miscEquips)
{
- if (Itembans.ItemIsBanned(item.name, player))
+ if (Itembans.ItemIsBanned(item.Name, player))
{
player.SetBuff(BuffID.Frozen, 330, true);
player.SetBuff(BuffID.Stoned, 330, true);
player.SetBuff(BuffID.Webbed, 330, true);
- check = "Remove misc equip " + item.name;
+ check = "Remove misc equip " + item.Name;
player.SendErrorMessage("You are wearing banned equipment. {0}", check);
break;
@@ -1157,12 +1157,12 @@ namespace TShockAPI
}
foreach (Item item in player.TPlayer.miscDyes)
{
- if (Itembans.ItemIsBanned(item.name, player))
+ if (Itembans.ItemIsBanned(item.Name, player))
{
player.SetBuff(BuffID.Frozen, 330, true);
player.SetBuff(BuffID.Stoned, 330, true);
player.SetBuff(BuffID.Webbed, 330, true);
- check = "Remove misc dye " + item.name;
+ check = "Remove misc dye " + item.Name;
player.SendErrorMessage("You are wearing banned equipment. {0}", check);
break;
@@ -1989,7 +1989,7 @@ namespace TShockAPI
{
check = true;
player.SendMessage(
- String.Format("Stack cheat detected. Remove item {0} ({1}) and then rejoin", item.name, inventory[i].stack),
+ String.Format("Stack cheat detected. Remove item {0} ({1}) and then rejoin", item.Name, inventory[i].stack),
Color.Cyan);
}
}
@@ -2008,7 +2008,7 @@ namespace TShockAPI
{
check = true;
player.SendMessage(
- String.Format("Stack cheat detected. Remove armor {0} ({1}) and then rejoin", item.name, armor[index].stack),
+ String.Format("Stack cheat detected. Remove armor {0} ({1}) and then rejoin", item.Name, armor[index].stack),
Color.Cyan);
}
}
@@ -2027,7 +2027,7 @@ namespace TShockAPI
{
check = true;
player.SendMessage(
- String.Format("Stack cheat detected. Remove dye {0} ({1}) and then rejoin", item.name, dye[index].stack),
+ String.Format("Stack cheat detected. Remove dye {0} ({1}) and then rejoin", item.Name, dye[index].stack),
Color.Cyan);
}
}
@@ -2046,7 +2046,7 @@ namespace TShockAPI
{
check = true;
player.SendMessage(
- String.Format("Stack cheat detected. Remove item {0} ({1}) and then rejoin", item.name, miscEquips[index].stack),
+ String.Format("Stack cheat detected. Remove item {0} ({1}) and then rejoin", item.Name, miscEquips[index].stack),
Color.Cyan);
}
}
@@ -2065,7 +2065,7 @@ namespace TShockAPI
{
check = true;
player.SendMessage(
- String.Format("Stack cheat detected. Remove item dye {0} ({1}) and then rejoin", item.name, miscDyes[index].stack),
+ String.Format("Stack cheat detected. Remove item dye {0} ({1}) and then rejoin", item.Name, miscDyes[index].stack),
Color.Cyan);
}
}
@@ -2085,7 +2085,7 @@ namespace TShockAPI
{
check = true;
player.SendMessage(
- String.Format("Stack cheat detected. Remove Piggy-bank item {0} ({1}) and then rejoin", item.name, piggy[index].stack),
+ String.Format("Stack cheat detected. Remove Piggy-bank item {0} ({1}) and then rejoin", item.Name, piggy[index].stack),
Color.Cyan);
}
}
@@ -2105,7 +2105,7 @@ namespace TShockAPI
{
check = true;
player.SendMessage(
- String.Format("Stack cheat detected. Remove Safe item {0} ({1}) and then rejoin", item.name, safe[index].stack),
+ String.Format("Stack cheat detected. Remove Safe item {0} ({1}) and then rejoin", item.Name, safe[index].stack),
Color.Cyan);
}
}
@@ -2124,7 +2124,7 @@ namespace TShockAPI
{
check = true;
player.SendMessage(
- String.Format("Stack cheat detected. Remove trash item {0} ({1}) and then rejoin", item.name, trash.stack),
+ String.Format("Stack cheat detected. Remove trash item {0} ({1}) and then rejoin", item.Name, trash.stack),
Color.Cyan);
}
}
@@ -2144,7 +2144,7 @@ namespace TShockAPI
{
check = true;
player.SendMessage(
- String.Format("Stack cheat detected. Remove Defender's Forge item {0} ({1}) and then rejoin", item.name, forge[index].stack),
+ String.Format("Stack cheat detected. Remove Defender's Forge item {0} ({1}) and then rejoin", item.Name, forge[index].stack),
Color.Cyan);
}
}
diff --git a/TShockAPI/app.config b/TShockAPI/app.config
index c5e7715e..1565cd9f 100644
--- a/TShockAPI/app.config
+++ b/TShockAPI/app.config
@@ -1,9 +1,9 @@
-
+
-
-
+
+
-
+
diff --git a/TShockAPI/web.config b/TShockAPI/web.config
new file mode 100644
index 00000000..74c0d886
--- /dev/null
+++ b/TShockAPI/web.config
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/scripts/create_release.py b/scripts/create_release.py
index 94c85cb0..e6af6559 100755
--- a/scripts/create_release.py
+++ b/scripts/create_release.py
@@ -47,7 +47,7 @@ mysql_bin = os.path.join(cur_wd, "packages", "MySql.Data.6.9.8", "lib", "net45",
sqlite_dep = os.path.join(cur_wd, "prebuilts", sqlite_dep_name)
sqlite_bin = os.path.join(cur_wd, "prebuilts", sqlite_bin_name)
http_bin = os.path.join(cur_wd, "prebuilts", http_bin_name)
-json_bin = os.path.join(cur_wd, "packages", "Newtonsoft.Json.9.0.1", "lib", "net45", json_bin_name)
+json_bin = os.path.join(cur_wd, "packages", "Newtonsoft.Json.10.0.2", "lib", "net45", json_bin_name)
bcrypt_bin = os.path.join(cur_wd, "packages", "BCrypt.Net.0.1.0", "lib", "net35", bcrypt_bin_name)
geoip_db = os.path.join(cur_wd, "prebuilts", geoip_db_name)
release_bin = os.path.join(cur_wd, "TShockAPI", "bin", "Release", tshock_bin_name)
From d2705d785b6fc21955a7370f2818ca80e72bb101 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Wed, 19 Apr 2017 17:14:05 -0600
Subject: [PATCH 04/58] Update to OTAPI 2.0.0.19 / Terraria 1.3.5.1
---
TerrariaServerAPI | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TerrariaServerAPI b/TerrariaServerAPI
index 5a5b0e9e..cc479f6b 160000
--- a/TerrariaServerAPI
+++ b/TerrariaServerAPI
@@ -1 +1 @@
-Subproject commit 5a5b0e9ee39af91e4d584eaa63e5af104803200f
+Subproject commit cc479f6b3e429f2ca5c9c2d1122385ca92a49276
From 46c42536c976416ffa63eb7f19227f4e8f6f6f23 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Wed, 19 Apr 2017 17:22:46 -0600
Subject: [PATCH 05/58] Replace calls to Main.buffName to Lang.GetBuffName
---
TShockAPI/Commands.cs | 4 ++--
TShockAPI/Utils.cs | 12 ++++++------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index 04d19f70..9c6ca1bf 100644
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -5517,7 +5517,7 @@ namespace TShockAPI
}
else if (found.Count > 1)
{
- TShock.Utils.SendMultipleMatchError(args.Player, found.Select(f => Main.buffName[f]));
+ TShock.Utils.SendMultipleMatchError(args.Player, found.Select(f => Lang.GetBuffName(f)));
return;
}
id = found[0];
@@ -5568,7 +5568,7 @@ namespace TShockAPI
}
else if (found.Count > 1)
{
- TShock.Utils.SendMultipleMatchError(args.Player, found.Select(b => Main.buffName[b]));
+ TShock.Utils.SendMultipleMatchError(args.Player, found.Select(b => Lang.GetBuffName(b)));
return;
}
id = found[0];
diff --git a/TShockAPI/Utils.cs b/TShockAPI/Utils.cs
index df0c8a72..fd680370 100644
--- a/TShockAPI/Utils.cs
+++ b/TShockAPI/Utils.cs
@@ -435,7 +435,7 @@ namespace TShockAPI
/// name
public string GetBuffName(int id)
{
- return (id > 0 && id < Main.maxBuffTypes) ? Main.buffName[id] : "null";
+ return (id > 0 && id < Main.maxBuffTypes) ? Lang.GetBuffName(id) : "null";
}
///
@@ -445,7 +445,7 @@ namespace TShockAPI
/// description
public string GetBuffDescription(int id)
{
- return (id > 0 && id < Main.maxBuffTypes) ? Main.buffTip[id] : "null";
+ return (id > 0 && id < Main.maxBuffTypes) ? Lang.GetBuffName(id) : "null";
}
///
@@ -459,14 +459,14 @@ namespace TShockAPI
string buffname;
for (int i = 1; i < Main.maxBuffTypes; i++)
{
- buffname = Main.buffName[i];
+ buffname = Lang.GetBuffName(i);
if (!String.IsNullOrWhiteSpace(buffname) && buffname.ToLower() == nameLower)
return new List {i};
}
var found = new List();
for (int i = 1; i < Main.maxBuffTypes; i++)
{
- buffname = Main.buffName[i];
+ buffname = Lang.GetBuffName(i);
if (!String.IsNullOrWhiteSpace(buffname) && buffname.ToLower().StartsWith(nameLower))
found.Add(i);
}
@@ -1209,9 +1209,9 @@ namespace TShockAPI
List
From 94f1d5e9dd1dfe7ef932cade8ec55180b8f06302 Mon Sep 17 00:00:00 2001
From: Tyler Watson
Date: Sun, 30 Apr 2017 03:10:25 +1000
Subject: [PATCH 49/58] Updated submodule for OnNpcKilled hook
---
TerrariaServerAPI | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TerrariaServerAPI b/TerrariaServerAPI
index d93b585f..e704076c 160000
--- a/TerrariaServerAPI
+++ b/TerrariaServerAPI
@@ -1 +1 @@
-Subproject commit d93b585fb9833f536c96b68bc6b5e9dc7d00416c
+Subproject commit e704076c2a9db4b2e9beb77249f6c4f8f5036a6e
From 1d2619d311012387768b4702ca9ea35de8f2544b Mon Sep 17 00:00:00 2001
From: Tyler Watson
Date: Sun, 30 Apr 2017 03:25:41 +1000
Subject: [PATCH 50/58] Update submodule
---
TerrariaServerAPI | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TerrariaServerAPI b/TerrariaServerAPI
index e704076c..f54010dd 160000
--- a/TerrariaServerAPI
+++ b/TerrariaServerAPI
@@ -1 +1 @@
-Subproject commit e704076c2a9db4b2e9beb77249f6c4f8f5036a6e
+Subproject commit f54010ddb19b2f739324da73c9a05c6bbfd370a2
From 5b8ce7b88a77fc173cd9dae64e508f83c1194894 Mon Sep 17 00:00:00 2001
From: Tyler Watson
Date: Sun, 30 Apr 2017 03:43:35 +1000
Subject: [PATCH 51/58] update submodule
---
TerrariaServerAPI | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TerrariaServerAPI b/TerrariaServerAPI
index f54010dd..999f252c 160000
--- a/TerrariaServerAPI
+++ b/TerrariaServerAPI
@@ -1 +1 @@
-Subproject commit f54010ddb19b2f739324da73c9a05c6bbfd370a2
+Subproject commit 999f252c85b1347e27d237fed9b9987f110e786b
From ea979abcdb562ec11bf5ffc6df7b67e7f664d843 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sat, 29 Apr 2017 12:28:24 -0600
Subject: [PATCH 52/58] Update changelog for OnNpcKilled
---
CHANGELOG.md | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1d13820d..15f32ab5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,10 +4,11 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin
## Upcoming Changes
-* Updated OpenTerraria API to 1.3.5.1 (@DeathCradle)
-* Updated Terraria Server API to 1.3.5.1 (@WhiteXZ, @hakusaro)
-* Updated TShock core components to 1.3.5.1 (@hakusaro)
-* Terraria Server API version tick: 2.1
+* Updated OpenTerraria API to 1.3.5.3 (@DeathCradle)
+* Updated Terraria Server API to 1.3.5.3 (@WhiteXZ, @hakusaro)
+* Updated TShock core components to 1.3.5.3 (@hakusaro)
+* Terraria Server API version tick: 2.2
+* Added OnNpcKilled hook to Server API: 2.2 (@tylerjwatson)
## TShock 4.3.23
* Added evil type option during world creation (@mistzzt)
From edad442ec8b6f0fad1480ec3715371c1bab529d8 Mon Sep 17 00:00:00 2001
From: Luke
Date: Mon, 1 May 2017 22:59:19 +1000
Subject: [PATCH 53/58] Update submodule for potential lever fix
---
TerrariaServerAPI | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TerrariaServerAPI b/TerrariaServerAPI
index 999f252c..3545b44a 160000
--- a/TerrariaServerAPI
+++ b/TerrariaServerAPI
@@ -1 +1 @@
-Subproject commit 999f252c85b1347e27d237fed9b9987f110e786b
+Subproject commit 3545b44afe9edafd67a3798da5f047bd63705d53
From 6c082aae63b43850011116955cb4c4e2ee52efe8 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Mon, 1 May 2017 18:06:19 -0600
Subject: [PATCH 54/58] Update create release script to build Platform not UTF8
---
scripts/create_release.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/scripts/create_release.py b/scripts/create_release.py
index be6efb41..a1890272 100755
--- a/scripts/create_release.py
+++ b/scripts/create_release.py
@@ -148,7 +148,7 @@ def run_bootstrapper():
mod_clientuuid_proc = subprocess.Popen(['xbuild', './TerrariaServerAPI/TShock.Modifications.ClientUUID/TShock.Modifications.ClientUUID.csproj', '/p:Configuration=' + build_config])
mod_explosives_proc = subprocess.Popen(['xbuild', './TerrariaServerAPI/TShock.Modifications.Explosives/TShock.Modifications.Explosives.csproj', '/p:Configuration=' + build_config])
mod_ssc_proc = subprocess.Popen(['xbuild', './TerrariaServerAPI/TShock.Modifications.SSC/TShock.Modifications.SSC.csproj', '/p:Configuration=' + build_config])
- mod_utf8_proc = subprocess.Popen(['xbuild', './TerrariaServerAPI/TShock.Modifications.UnicodeInput/TShock.Modifications.UnicodeInput.csproj', '/p:Configuration=' + build_config])
+ mod_utf8_proc = subprocess.Popen(['xbuild', './TerrariaServerAPI/TShock.Modifications.Platform/TShock.Modifications.Platform.csproj', '/p:Configuration=' + build_config])
mod_bootstrapper_proc.wait()
mod_clientuuid_proc.wait()
@@ -164,6 +164,8 @@ def run_bootstrapper():
raise CalledProcessError(mod_explosives_proc.returncode)
if (mod_ssc_proc.returncode != 0):
raise CalledProcessError(mod_ssc_proc.returncode)
+ if (mod_utf8_proc.returncode != 0):
+ raise CalledProcessError(mod_utf8_proc.returncode)
# run the bootstrapper to generate the new OTAPI.dll
os.chdir('./TerrariaServerAPI/TShock.Modifications.Bootstrapper/bin/' + build_config)
From ee5e3f7d9d07f84ea54ae74615d5e8603176226e Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Mon, 1 May 2017 18:08:47 -0600
Subject: [PATCH 55/58] Update create_release script to test just building
TShock.4.OTAPI.sln and not individual projects
---
scripts/create_release.py | 24 ++++--------------------
1 file changed, 4 insertions(+), 20 deletions(-)
diff --git a/scripts/create_release.py b/scripts/create_release.py
index a1890272..3d86912d 100755
--- a/scripts/create_release.py
+++ b/scripts/create_release.py
@@ -144,28 +144,12 @@ def update_terraria_source():
def run_bootstrapper():
for build_config in ['Debug','Release'] :
- mod_bootstrapper_proc = subprocess.Popen(['xbuild', './TerrariaServerAPI/TShock.Modifications.Bootstrapper/TShock.Modifications.Bootstrapper.csproj', '/p:Configuration=' + build_config])
- mod_clientuuid_proc = subprocess.Popen(['xbuild', './TerrariaServerAPI/TShock.Modifications.ClientUUID/TShock.Modifications.ClientUUID.csproj', '/p:Configuration=' + build_config])
- mod_explosives_proc = subprocess.Popen(['xbuild', './TerrariaServerAPI/TShock.Modifications.Explosives/TShock.Modifications.Explosives.csproj', '/p:Configuration=' + build_config])
- mod_ssc_proc = subprocess.Popen(['xbuild', './TerrariaServerAPI/TShock.Modifications.SSC/TShock.Modifications.SSC.csproj', '/p:Configuration=' + build_config])
- mod_utf8_proc = subprocess.Popen(['xbuild', './TerrariaServerAPI/TShock.Modifications.Platform/TShock.Modifications.Platform.csproj', '/p:Configuration=' + build_config])
+ mintaka = subprocess.Popen(['xbuild', './TerrariaServerAPI/TShock.4.OTAPI.sln', '/p:Configuration=' + build_config])
- mod_bootstrapper_proc.wait()
- mod_clientuuid_proc.wait()
- mod_explosives_proc.wait()
- mod_ssc_proc.wait()
- mod_utf8_proc.wait()
+ mintaka.wait()
- if (mod_bootstrapper_proc.returncode != 0):
- raise CalledProcessError(mod_bootstrapper_proc.returncode)
- if (mod_clientuuid_proc.returncode != 0):
- raise CalledProcessError(mod_clientuuid_proc.returncode)
- if (mod_explosives_proc.returncode != 0):
- raise CalledProcessError(mod_explosives_proc.returncode)
- if (mod_ssc_proc.returncode != 0):
- raise CalledProcessError(mod_ssc_proc.returncode)
- if (mod_utf8_proc.returncode != 0):
- raise CalledProcessError(mod_utf8_proc.returncode)
+ if (mintaka.returncode != 0):
+ raise CalledProcessError(mintaka.returncode)
# run the bootstrapper to generate the new OTAPI.dll
os.chdir('./TerrariaServerAPI/TShock.Modifications.Bootstrapper/bin/' + build_config)
From 72a547441b77e92fc56e284a2c7b0cfef649ba72 Mon Sep 17 00:00:00 2001
From: White
Date: Tue, 2 May 2017 16:53:59 +0930
Subject: [PATCH 56/58] Redirects /token/create to /v2/token/create. Adds
/v4/players/read. V4 contains piggy, safe, and forge data, and condenses all
item fields into one object with child objects.
---
TShockAPI/Rest/RestManager.cs | 44 ++++++++++++++++++++++++++++++++++-
1 file changed, 43 insertions(+), 1 deletion(-)
diff --git a/TShockAPI/Rest/RestManager.cs b/TShockAPI/Rest/RestManager.cs
index acc34661..eace08ee 100644
--- a/TShockAPI/Rest/RestManager.cs
+++ b/TShockAPI/Rest/RestManager.cs
@@ -28,6 +28,7 @@ using HttpServer;
using Rests;
using Terraria;
using TShockAPI.DB;
+using Newtonsoft.Json;
namespace TShockAPI
{
@@ -196,6 +197,7 @@ namespace TShockAPI
}
Rest.RegisterRedirect("/status", "/v2/server/status");
+ Rest.RegisterRedirect("/token/create", "/v2/token/create");
//server commands
Rest.RegisterRedirect("/server/motd", "/v3/server/motd");
@@ -227,7 +229,7 @@ namespace TShockAPI
//player commands
Rest.RegisterRedirect("/lists/players", "/lists/players", "/v2/players/list");
Rest.RegisterRedirect("/players/list", "/v2/players/list");
- Rest.RegisterRedirect("/players/read", "/v3/players/read");
+ Rest.RegisterRedirect("/players/read", "/v3/players/read", "v4/players/read");
Rest.RegisterRedirect("/players/kick", "/v2/players/kick");
Rest.RegisterRedirect("/players/ban", "/v2/players/ban");
Rest.RegisterRedirect("/players/kill", "/v2/players/kill");
@@ -277,6 +279,7 @@ namespace TShockAPI
Rest.Register(new SecureRestCommand("/lists/players", PlayerList));
Rest.Register(new SecureRestCommand("/v2/players/list", PlayerListV2));
Rest.Register(new SecureRestCommand("/v3/players/read", PlayerReadV3, RestPermissions.restuserinfo));
+ Rest.Register(new SecureRestCommand("/v4/players/read", PlayerReadV4, RestPermissions.restuserinfo));
Rest.Register(new SecureRestCommand("/v2/players/kick", PlayerKickV2, RestPermissions.restkick));
Rest.Register(new SecureRestCommand("/v2/players/ban", PlayerBanV2, RestPermissions.restban, RestPermissions.restmanagebans));
Rest.Register(new SecureRestCommand("/v2/players/kill", PlayerKill, RestPermissions.restkill));
@@ -947,6 +950,45 @@ namespace TShockAPI
};
}
+ [Description("Get information for a user.")]
+ [Route("/v4/players/read")]
+ [Permission(RestPermissions.restuserinfo)]
+ [Noun("player", true, "The player to lookup", typeof(String))]
+ [Token]
+ private object PlayerReadV4(RestRequestArgs args)
+ {
+ var ret = PlayerFind(args.Parameters);
+ if (ret is RestObject)
+ {
+ return ret;
+ }
+
+ TSPlayer player = (TSPlayer)ret;
+
+ object items = new
+ {
+ inventory = player.TPlayer.inventory.Where(i => i.active).Select(item => (NetItem)item),
+ equipment = player.TPlayer.armor.Where(i => i.active).Select(item => (NetItem)item),
+ dyes = player.TPlayer.dye.Where(i => i.active).Select(item => (NetItem)item),
+ piggy = player.TPlayer.bank.item.Where(i => i.active).Select(item => (NetItem)item),
+ safe = player.TPlayer.bank2.item.Where(i => i.active).Select(item => (NetItem)item),
+ forge = player.TPlayer.bank3.item.Where(i => i.active).Select(item => (NetItem)item)
+ };
+
+ return new RestObject
+ {
+ {"nickname", player.Name},
+ {"username", player.User?.Name},
+ {"ip", player.IP},
+ {"group", player.Group.Name},
+ {"registered", player.User?.Registered},
+ {"muted", player.mute },
+ {"position", player.TileX + "," + player.TileY},
+ {"items", items},
+ {"buffs", string.Join(", ", player.TPlayer.buffType)}
+ };
+ }
+
[Description("Kick a player off the server.")]
[Route("/v2/players/kick")]
[Permission(RestPermissions.restkick)]
From 961c857c4b9b84f7ce9a66296af53a3e4c398726 Mon Sep 17 00:00:00 2001
From: ZIT WANG
Date: Tue, 2 May 2017 19:43:30 +0800
Subject: [PATCH 57/58] Resolve duplicate negative ids items in
Utils.GetItemByName
---
TShockAPI/Utils.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TShockAPI/Utils.cs b/TShockAPI/Utils.cs
index 7e690b84..520bed9c 100644
--- a/TShockAPI/Utils.cs
+++ b/TShockAPI/Utils.cs
@@ -346,7 +346,7 @@ namespace TShockAPI
string nameLower = name.ToLowerInvariant();
var checkEnglish = Language.ActiveCulture != GameCulture.English;
- for (int i = -48; i < Main.maxItemTypes; i++)
+ for (int i = 1; i < Main.maxItemTypes; i++)
{
item.netDefaults(i);
if (!String.IsNullOrWhiteSpace(item.Name))
From c161be102ddc58936af66b96c59d515ed1580db0 Mon Sep 17 00:00:00 2001
From: ZIT WANG
Date: Wed, 3 May 2017 08:25:50 +0800
Subject: [PATCH 58/58] Add displaying ids when sending error responses
---
TShockAPI/Commands.cs | 44 +++++++++++++++++++++----------------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index df98776e..cd90f8e6 100644
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -2293,7 +2293,7 @@ namespace TShockAPI
}
else if (npcs.Count > 1)
{
- TShock.Utils.SendMultipleMatchError(args.Player, npcs.Select(n => n.FullName));
+ TShock.Utils.SendMultipleMatchError(args.Player, npcs.Select(n => $"{n.FullName}({n.type})"));
}
else
{
@@ -2550,7 +2550,7 @@ namespace TShockAPI
if (matches.Count > 1)
{
- TShock.Utils.SendMultipleMatchError(args.Player, matches.Select(n => n.FullName));
+ TShock.Utils.SendMultipleMatchError(args.Player, matches.Select(n => $"{n.FullName}({n.whoAmI})"));
return;
}
if (matches.Count == 0)
@@ -3208,7 +3208,7 @@ namespace TShockAPI
}
else if (items.Count > 1)
{
- TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => i.Name));
+ TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => $"{i.Name}({i.netID})"));
}
else
{
@@ -3234,7 +3234,7 @@ namespace TShockAPI
}
else if (items.Count > 1)
{
- TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => i.Name));
+ TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => $"{i.Name}({i.netID})"));
}
else
{
@@ -3279,7 +3279,7 @@ namespace TShockAPI
}
else if (items.Count > 1)
{
- TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => i.Name));
+ TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => $"{i.Name}({i.netID})"));
}
else
{
@@ -3305,7 +3305,7 @@ namespace TShockAPI
}
else if (items.Count > 1)
{
- TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => i.Name));
+ TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => $"{i.Name}({i.netID})"));
}
else
{
@@ -5193,7 +5193,7 @@ namespace TShockAPI
}
else if (npcs.Count > 1)
{
- TShock.Utils.SendMultipleMatchError(args.Player, npcs.Select(n => n.FullName));
+ TShock.Utils.SendMultipleMatchError(args.Player, npcs.Select(n => $"{n.FullName}({n.type})"));
return;
}
else
@@ -5248,7 +5248,7 @@ namespace TShockAPI
}
else if (matchedItems.Count > 1)
{
- TShock.Utils.SendMultipleMatchError(args.Player, matchedItems.Select(i => i.Name));
+ TShock.Utils.SendMultipleMatchError(args.Player, matchedItems.Select(i => $"{i.Name}({i.netID})"));
return;
}
else
@@ -5267,14 +5267,14 @@ namespace TShockAPI
string prefixidOrName = args.Parameters[amountParamIndex + 1];
var prefixIds = TShock.Utils.GetPrefixByIdOrName(prefixidOrName);
- if (item.accessory && prefixIds.Contains(42))
+ if (item.accessory && prefixIds.Contains(PrefixID.Quick))
{
- prefixIds.Remove(42);
- prefixIds.Remove(76);
- prefixIds.Add(76);
+ prefixIds.Remove(PrefixID.Quick);
+ prefixIds.Remove(PrefixID.Quick2);
+ prefixIds.Add(PrefixID.Quick2);
}
- else if (!item.accessory && prefixIds.Contains(42))
- prefixIds.Remove(76);
+ else if (!item.accessory && prefixIds.Contains(PrefixID.Quick))
+ prefixIds.Remove(PrefixID.Quick2);
if (prefixIds.Count > 1)
{
@@ -5331,7 +5331,7 @@ namespace TShockAPI
}
else if (npcs.Count > 1)
{
- TShock.Utils.SendMultipleMatchError(args.Player, npcs.Select(n => n.FullName));
+ TShock.Utils.SendMultipleMatchError(args.Player, npcs.Select(n => $"{n.FullName}({n.type})"));
return;
}
else if (args.Parameters[1].Length > 200)
@@ -5396,7 +5396,7 @@ namespace TShockAPI
}
else if (items.Count > 1)
{
- TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => i.Name));
+ TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => $"{i.Name}({i.netID})"));
}
else
{
@@ -5406,14 +5406,14 @@ namespace TShockAPI
{
int.TryParse(args.Parameters[0], out itemAmount);
var prefixIds = TShock.Utils.GetPrefixByIdOrName(args.Parameters[1]);
- if (item.accessory && prefixIds.Contains(42))
+ if (item.accessory && prefixIds.Contains(PrefixID.Quick))
{
- prefixIds.Remove(42);
- prefixIds.Remove(76);
- prefixIds.Add(76);
+ prefixIds.Remove(PrefixID.Quick);
+ prefixIds.Remove(PrefixID.Quick2);
+ prefixIds.Add(PrefixID.Quick2);
}
- else if (!item.accessory && prefixIds.Contains(42))
- prefixIds.Remove(76);
+ else if (!item.accessory && prefixIds.Contains(PrefixID.Quick))
+ prefixIds.Remove(PrefixID.Quick2);
if (prefixIds.Count == 1)
prefix = prefixIds[0];
}