From 2236a5bb56005716663d16b54c7d5e7e5de78bda Mon Sep 17 00:00:00 2001 From: DogooFalchion Date: Wed, 21 Dec 2016 20:39:27 -0500 Subject: [PATCH 1/3] More SSC cleanup. Fixes prefix issues. --- TShockAPI/NetItem.cs | 8 +++- TShockAPI/PlayerData.cs | 82 +++++++++++++++++++---------------------- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/TShockAPI/NetItem.cs b/TShockAPI/NetItem.cs index 8d6b4e2a..b11b3fba 100644 --- a/TShockAPI/NetItem.cs +++ b/TShockAPI/NetItem.cs @@ -71,6 +71,11 @@ namespace TShockAPI /// public static readonly int MiscDyeSlots = MiscEquipSlots; + /// + /// 1 - The number of trash can slots. + /// + public static readonly int TrashSlots = 1; + /// /// 180 - The inventory size (inventory, held item, armour, dies, coins, ammo, piggy, safe, and trash) /// @@ -83,7 +88,8 @@ namespace TShockAPI public static readonly Tuple MiscDyeIndex = new Tuple(MiscEquipIndex.Item2, MiscEquipIndex.Item2 + MiscDyeSlots); public static readonly Tuple PiggyIndex = new Tuple(MiscDyeIndex.Item2, MiscDyeIndex.Item2 + PiggySlots); public static readonly Tuple SafeIndex = new Tuple(PiggyIndex.Item2, PiggyIndex.Item2 + SafeSlots); - public static readonly Tuple ForgeIndex = new Tuple(SafeIndex.Item2, SafeIndex.Item2 + ForgeSlots); + public static readonly Tuple TrashIndex = new Tuple(SafeIndex.Item2, SafeIndex.Item2 + TrashSlots); + public static readonly Tuple ForgeIndex = new Tuple(TrashIndex.Item2, TrashIndex.Item2 + ForgeSlots); [JsonProperty("netID")] private int _netId; diff --git a/TShockAPI/PlayerData.cs b/TShockAPI/PlayerData.cs index 9cd7c97b..44711bad 100644 --- a/TShockAPI/PlayerData.cs +++ b/TShockAPI/PlayerData.cs @@ -164,16 +164,17 @@ namespace TShockAPI var index = i - NetItem.SafeIndex.Item1; this.inventory[i] = (NetItem)safe[index]; } - else if (i < NetItem.ForgeIndex.Item2) + else if (i < NetItem.TrashIndex.Item2) { //179-219 - var index = i - NetItem.ForgeIndex.Item1; - this.inventory[i] = (NetItem)forge[index]; + this.inventory[i] = (NetItem)trash; } else { //220 - this.inventory[i] = (NetItem)trash; + var index = i - NetItem.ForgeIndex.Item1; + this.inventory[i] = (NetItem)forge[index]; + } } } @@ -226,7 +227,7 @@ namespace TShockAPI for (int i = 0; i < NetItem.MaxInventory; i++) { - if (i < NetItem.InventorySlots) + if (i < NetItem.InventoryIndex.Item2) { //0-58 player.TPlayer.inventory[i].netDefaults(this.inventory[i].NetId); @@ -237,10 +238,10 @@ namespace TShockAPI player.TPlayer.inventory[i].prefix = this.inventory[i].PrefixId; } } - else if (i < NetItem.InventorySlots + NetItem.ArmorSlots) + else if (i < NetItem.ArmorIndex.Item2) { //59-78 - var index = i - NetItem.InventorySlots; + var index = i - NetItem.ArmorIndex.Item1; player.TPlayer.armor[index].netDefaults(this.inventory[i].NetId); if (player.TPlayer.armor[index].netID != 0) @@ -249,10 +250,10 @@ namespace TShockAPI player.TPlayer.armor[index].prefix = (byte)this.inventory[i].PrefixId; } } - else if (i < NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots) + else if (i < NetItem.DyeIndex.Item2) { //79-88 - var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots); + var index = i - NetItem.DyeIndex.Item1; player.TPlayer.dye[index].netDefaults(this.inventory[i].NetId); if (player.TPlayer.dye[index].netID != 0) @@ -261,11 +262,10 @@ namespace TShockAPI player.TPlayer.dye[index].prefix = (byte)this.inventory[i].PrefixId; } } - else if (i < - NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots) + else if (i < NetItem.MiscEquipIndex.Item2) { //89-93 - var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots); + var index = i - NetItem.MiscEquipIndex.Item1; player.TPlayer.miscEquips[index].netDefaults(this.inventory[i].NetId); if (player.TPlayer.miscEquips[index].netID != 0) @@ -274,13 +274,10 @@ namespace TShockAPI player.TPlayer.miscEquips[index].prefix = (byte)this.inventory[i].PrefixId; } } - else if (i < - NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots - + NetItem.MiscDyeSlots) + else if (i < NetItem.MiscDyeIndex.Item2) { //93-98 - var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots - + NetItem.MiscEquipSlots); + var index = i - NetItem.MiscDyeIndex.Item1; player.TPlayer.miscDyes[index].netDefaults(this.inventory[i].NetId); if (player.TPlayer.miscDyes[index].netID != 0) @@ -289,13 +286,10 @@ namespace TShockAPI player.TPlayer.miscDyes[index].prefix = (byte)this.inventory[i].PrefixId; } } - else if (i < - NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots + - NetItem.MiscDyeSlots + NetItem.PiggySlots) + else if (i < NetItem.PiggyIndex.Item2) { //98-138 - var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots - + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots); + var index = i - NetItem.PiggyIndex.Item1; player.TPlayer.bank.item[index].netDefaults(this.inventory[i].NetId); if (player.TPlayer.bank.item[index].netID != 0) @@ -304,12 +298,10 @@ namespace TShockAPI player.TPlayer.bank.item[index].prefix = (byte)this.inventory[i].PrefixId; } } - else if (i < - NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots + - NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots) + else if (i < NetItem.SafeIndex.Item2) { - var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots - + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots); + //138-178 + var index = i - NetItem.SafeIndex.Item1; player.TPlayer.bank2.item[index].netDefaults(this.inventory[i].NetId); if (player.TPlayer.bank2.item[index].netID != 0) @@ -318,22 +310,10 @@ namespace TShockAPI player.TPlayer.bank2.item[index].prefix = (byte)this.inventory[i].PrefixId; } } - else if (i < - NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots + - NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots + NetItem.ForgeSlots) - { - var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots - + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots); - player.TPlayer.bank3.item[index].netDefaults(this.inventory[i].NetId); - - if (player.TPlayer.bank3.item[index].netID != 0) - { - player.TPlayer.bank3.item[index].stack = this.inventory[i].Stack; - player.TPlayer.bank3.item[index].prefix = (byte)this.inventory[i].PrefixId; - } - } - else + else if (i < NetItem.TrashIndex.Item2) { + //179-219 + var index = i - NetItem.TrashIndex.Item1; player.TPlayer.trashItem.netDefaults(this.inventory[i].NetId); if (player.TPlayer.trashItem.netID != 0) @@ -342,6 +322,19 @@ namespace TShockAPI player.TPlayer.trashItem.prefix = (byte)this.inventory[i].PrefixId; } } + else + { + //220 + var index = i - NetItem.ForgeIndex.Item1; + player.TPlayer.bank3.item[index].netDefaults(this.inventory[i].NetId); + + if (player.TPlayer.bank3.item[index].netID != 0) + { + player.TPlayer.bank3.item[index].stack = this.inventory[i].Stack; + player.TPlayer.bank3.item[index].Prefix((byte)this.inventory[i].PrefixId); + } + + } } float slot = 0f; @@ -380,13 +373,13 @@ namespace TShockAPI 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); 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); slot++; } - NetMessage.SendData(5, -1, -1, Main.player[player.Index].trashItem.name, player.Index, slot, (float)Main.player[player.Index].trashItem.prefix); NetMessage.SendData(4, -1, -1, player.Name, player.Index, 0f, 0f, 0f, 0); NetMessage.SendData(42, -1, -1, "", player.Index, 0f, 0f, 0f, 0); @@ -428,13 +421,14 @@ namespace TShockAPI 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); 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); 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(4, player.Index, -1, player.Name, player.Index, 0f, 0f, 0f, 0); NetMessage.SendData(42, player.Index, -1, "", player.Index, 0f, 0f, 0f, 0); From 95c5129fa9ad309e5367ad2abf19c01c28f2d285 Mon Sep 17 00:00:00 2001 From: DogooFalchion Date: Wed, 21 Dec 2016 20:43:09 -0500 Subject: [PATCH 2/3] More SSC cleanup. --- TShockAPI/TShock.cs | 83 ++++++++++++++++++++------------------------- 1 file changed, 36 insertions(+), 47 deletions(-) diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 493ec01a..c13bcff2 100644 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -1951,6 +1951,7 @@ namespace TShockAPI /// bool - True if the player has a hacked inventory. public static bool HackedInventory(TSPlayer player) { + //TODO: Update this to the new logic in PlayerData. bool check = false; Item[] inventory = player.TPlayer.inventory; @@ -1962,10 +1963,9 @@ namespace TShockAPI Item[] safe = player.TPlayer.bank2.item; Item[] forge = player.TPlayer.bank3.item; Item trash = player.TPlayer.trashItem; - for (int i = 0; i < NetItem.MaxInventory; i++) { - if (i < NetItem.InventorySlots) + if (i < NetItem.InventoryIndex.Item2) { //0-58 Item item = new Item(); @@ -1983,11 +1983,11 @@ namespace TShockAPI } } } - else if (i < NetItem.InventorySlots + NetItem.ArmorSlots) + else if (i < NetItem.ArmorIndex.Item2) { //59-78 + var index = i - NetItem.ArmorIndex.Item1; Item item = new Item(); - var index = i - NetItem.InventorySlots; if (armor[index] != null && armor[index].netID != 0) { item.netDefaults(armor[index].netID); @@ -2002,11 +2002,11 @@ namespace TShockAPI } } } - else if (i < NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots) + else if (i < NetItem.DyeIndex.Item2) { //79-88 + var index = i - NetItem.DyeIndex.Item1; Item item = new Item(); - var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots); if (dye[index] != null && dye[index].netID != 0) { item.netDefaults(dye[index].netID); @@ -2021,12 +2021,11 @@ namespace TShockAPI } } } - else if (i < - NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots) + else if (i < NetItem.MiscEquipIndex.Item2) { //89-93 + var index = i - NetItem.MiscEquipIndex.Item1; Item item = new Item(); - var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots); if (miscEquips[index] != null && miscEquips[index].netID != 0) { item.netDefaults(miscEquips[index].netID); @@ -2041,14 +2040,11 @@ namespace TShockAPI } } } - else if (i < - NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots - + NetItem.MiscDyeSlots) + else if (i < NetItem.MiscDyeIndex.Item2) { //93-98 + var index = i - NetItem.MiscDyeIndex.Item1; Item item = new Item(); - var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots - + NetItem.MiscEquipSlots); if (miscDyes[index] != null && miscDyes[index].netID != 0) { item.netDefaults(miscDyes[index].netID); @@ -2063,14 +2059,11 @@ namespace TShockAPI } } } - else if (i < - NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots + - NetItem.MiscDyeSlots + NetItem.PiggySlots) + else if (i < NetItem.PiggyIndex.Item2) { //98-138 + var index = i - NetItem.PiggyIndex.Item1; Item item = new Item(); - var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots - + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots); if (piggy[index] != null && piggy[index].netID != 0) { item.netDefaults(piggy[index].netID); @@ -2086,14 +2079,11 @@ namespace TShockAPI } } } - else if (i < - NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots + - NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots) + else if (i < NetItem.SafeIndex.Item2) { //138-178 + var index = i - NetItem.SafeIndex.Item1; Item item = new Item(); - var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots - + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots); if (safe[index] != null && safe[index].netID != 0) { item.netDefaults(safe[index].netID); @@ -2109,31 +2099,9 @@ namespace TShockAPI } } } - else if (i < - NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots + - NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots + NetItem.ForgeSlots) + else if (i < NetItem.TrashIndex.Item2) { //179-219 - Item item = new Item(); - var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots - + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots); - if (forge[index] != null && forge[index].netID != 0) - { - item.netDefaults(forge[index].netID); - item.Prefix(forge[index].prefix); - item.AffixName(); - - if (forge[index].stack > item.maxStack) - { - check = true; - player.SendMessage( - String.Format("Stack cheat detected. Remove Defender's Forge item {0} ({1}) and then rejoin", item.name, forge[index].stack), - Color.Cyan); - } - } - } - else - { Item item = new Item(); if (trash != null && trash.netID != 0) { @@ -2150,6 +2118,27 @@ namespace TShockAPI } } } + else + { + //220 + var index = i - NetItem.ForgeIndex.Item1; + Item item = new Item(); + if (forge[index] != null && forge[index].netID != 0) + { + item.netDefaults(forge[index].netID); + item.Prefix(forge[index].prefix); + item.AffixName(); + + if (forge[index].stack > item.maxStack) + { + check = true; + player.SendMessage( + String.Format("Stack cheat detected. Remove Defender's Forge item {0} ({1}) and then rejoin", item.name, forge[index].stack), + Color.Cyan); + } + } + + } } return check; From 84a84bdf05b7e0f61eb54b547895113743d0642b Mon Sep 17 00:00:00 2001 From: DogooFalchion Date: Wed, 21 Dec 2016 20:44:42 -0500 Subject: [PATCH 3/3] Remove todo reminder. --- TShockAPI/TShock.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index c13bcff2..fcd30a65 100644 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -1951,7 +1951,6 @@ namespace TShockAPI /// bool - True if the player has a hacked inventory. public static bool HackedInventory(TSPlayer player) { - //TODO: Update this to the new logic in PlayerData. bool check = false; Item[] inventory = player.TPlayer.inventory;