diff --git a/HealingPlugin.cs b/HealingPlugin.cs index 234fa2d..0cd117d 100644 --- a/HealingPlugin.cs +++ b/HealingPlugin.cs @@ -4,6 +4,7 @@ using TShockAPI; using TShockAPI.Hooks; using TerrariaApi.Server; using TerrariaHealingPlugin.Mappings; +using TerrariaHealingPlugin.Models; namespace TerrariaHealingPlugin; @@ -17,7 +18,7 @@ public class HealingPlugin : TerrariaPlugin private DateTime _lastHealCheck = DateTime.UtcNow; private DateTime _lastBuffCheck = DateTime.UtcNow; - private List _players = new List(); + private List _players = new List(); private HealingMappings _healingItemMappings = new HealingMappings(); private EquipMappings _equipMappings = new EquipMappings(); @@ -98,8 +99,9 @@ public class HealingPlugin : TerrariaPlugin short slot = args.Slot; short newStack = args.Stack; short itemType = args.Type; - var isHealingItem = IsHealingItem(itemType); - var isItemConsumed = IsItemBeingConsumed(player, slot, newStack); + + bool isHealingItem = IsHealingItem(itemType); + bool isItemConsumed = IsItemBeingConsumed(player, slot, newStack); if (isHealingItem && isItemConsumed) { @@ -110,9 +112,9 @@ public class HealingPlugin : TerrariaPlugin player.Heal(enhancedHeal); player.SendSuccessMessage($"Enhanced healing! Restored {enhancedHeal} HP (x{multiplier} multiplier)"); - - args.Handled = true; } + + args.Handled = true; } private bool IsHealingItem(int itemType) @@ -132,8 +134,27 @@ public class HealingPlugin : TerrariaPlugin private bool IsItemBeingConsumed(TSPlayer player, int slot, short newStack) { - var item = player.TPlayer.inventory[slot]; - return item.stack > newStack; + Terraria.Item item = player.TPlayer.inventory[slot]; + bool isMouse = slot != 58; // is slot 58 the mouse? + bool isNewStackLessThanOld = item.stack > newStack; + bool isUseAction = player.TPlayer.ConsumeItem(item.netID); + + Console.WriteLine($"Is the slot the mouse slot?: {!isMouse}"); + Console.WriteLine($"Is the new stack of items less than the item stack?: {isNewStackLessThanOld}"); + Console.WriteLine($"Is the action consuming an item?: {isUseAction}"); + // return isMouse && isNewStackLessThanOld && isUseAction; + + if (isNewStackLessThanOld && isUseAction) + { + return true; + } + + if (slot < 58 && isNewStackLessThanOld) + { + return true; + } + + return false; } private void OnSendNetData(SendDataEventArgs args) @@ -182,8 +203,9 @@ public class HealingPlugin : TerrariaPlugin var player = TShock.Players[args.Who]; if (player != null) { - _players.Add(new Player(player)); + _players.Add(new ServerPlayer(player)); TShock.Log.Info($"Player {player.Name} joined with IP: {player.IP}"); + player.SendSuccessMessage($"Welcome {player.Name} to Sneefaria! Enjoy the regen buff!", Colors.RarityOrange); } } } diff --git a/Player.cs b/Models/ServerPlayer.cs similarity index 69% rename from Player.cs rename to Models/ServerPlayer.cs index ca74ab2..1db8a1f 100644 --- a/Player.cs +++ b/Models/ServerPlayer.cs @@ -1,15 +1,15 @@ using Terraria.ID; using TShockAPI; -namespace TerrariaHealingPlugin +namespace TerrariaHealingPlugin.Models { - public class Player + public class ServerPlayer { public TSPlayer player { get; set; } public int healAmount { get; set; } = 0; public int healItem { get; set; } = ItemID.None; - public Player(TSPlayer player) + public ServerPlayer(TSPlayer player) { this.player = player; }