From 3099f5d18c9ade1a8789f8b41bbb162ba7ce35b7 Mon Sep 17 00:00:00 2001 From: Enerdy Date: Sat, 4 Jul 2015 22:06:27 +0100 Subject: [PATCH] Fix WorldInfo packet, window title now correctly displays the IP Address of the Network Interface the server is being hosted on. --- TShockAPI/GetDataHandlers.cs | 10 +++---- TShockAPI/Net/WorldInfoMsg.cs | 49 +++++++++++++++++++++++++++++++++++ TShockAPI/TShock.cs | 17 +++++++++++- 3 files changed, 70 insertions(+), 6 deletions(-) diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index 40cf2214..5a223384 100755 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -1606,7 +1606,7 @@ namespace TShockAPI return true; } - NetMessage.SendData((int) PacketTypes.TimeSet, -1, -1, "", 0, 0, Main.sunModY, Main.moonModY); + NetMessage.SendData((int) PacketTypes.TimeSet, -1, -1, "", Main.dayTime ? 1 : 0, (int)Main.time, Main.sunModY, Main.moonModY); return false; } @@ -2212,10 +2212,10 @@ namespace TShockAPI private static bool HandlePlayerUpdate(GetDataHandlerArgs args) { - var plr = args.Data.ReadInt8(); - var control = (BitsByte)args.Data.ReadInt8(); - var pulley = (BitsByte)args.Data.ReadInt8(); - var item = args.Data.ReadInt8(); + byte plr = args.Data.ReadInt8(); + BitsByte control = args.Data.ReadInt8(); + BitsByte pulley = args.Data.ReadInt8(); + byte item = args.Data.ReadInt8(); var pos = new Vector2(args.Data.ReadSingle(), args.Data.ReadSingle()); var vel = Vector2.Zero; if(pulley[2]) diff --git a/TShockAPI/Net/WorldInfoMsg.cs b/TShockAPI/Net/WorldInfoMsg.cs index e4763bb6..5f2d83a1 100644 --- a/TShockAPI/Net/WorldInfoMsg.cs +++ b/TShockAPI/Net/WorldInfoMsg.cs @@ -52,6 +52,32 @@ namespace TShockAPI.Net SnowMoon = 128 } + [Flags] + public enum BossFlags3 : byte + { + None = 0, + ExpertMode = 1, + FastForwardTime = 2, + SlimeRain = 4, + DownedKingSlime = 8, + DownedQueenBee = 16, + DownedFishron = 32, + DownedMartians = 64, + DownedAncientCultist = 128 + } + + [Flags] + public enum BossFlags4 : byte + { + None = 0, + DownedMoonLord = 1, + DownedHalloweenKing = 2, + DownedHalloweenTree = 4, + DownedChristmasIceQueen = 8, + DownedChristmasSantank = 16, + DownedChristmasTree = 32 + } + public class WorldInfoMsg : BaseMsg { public int Time { get; set; } @@ -96,6 +122,8 @@ namespace TShockAPI.Net public byte NumberOfClouds { get; set; } public BossFlags BossFlags { get; set; } public BossFlags2 BossFlags2 { get; set; } + public BossFlags3 BossFlags3 { get; set; } + public BossFlags4 BossFlags4 { get; set; } public float Rain { get; set; } public string WorldName { get; set; } @@ -171,6 +199,27 @@ namespace TShockAPI.Net (BossFlags2 & BossFlags2.PumpkinMoon) == BossFlags2.PumpkinMoon, (BossFlags2 & BossFlags2.SnowMoon) == BossFlags2.SnowMoon); writer.Write(bosses2); + + BitsByte bosses3 = new BitsByte((BossFlags3 & BossFlags3.ExpertMode) == BossFlags3.ExpertMode, + (BossFlags3 & BossFlags3.FastForwardTime) == BossFlags3.FastForwardTime, + (BossFlags3 & BossFlags3.SlimeRain) == BossFlags3.SlimeRain, + (BossFlags3 & BossFlags3.DownedKingSlime) == BossFlags3.DownedKingSlime, + (BossFlags3 & BossFlags3.DownedQueenBee) == BossFlags3.DownedQueenBee, + (BossFlags3 & BossFlags3.DownedFishron) == BossFlags3.DownedFishron, + (BossFlags3 & BossFlags3.DownedMartians) == BossFlags3.DownedMartians, + (BossFlags3 & BossFlags3.DownedAncientCultist) == BossFlags3.DownedAncientCultist); + writer.Write(bosses3); + + BitsByte bosses4 = new BitsByte((BossFlags4 & BossFlags4.DownedMoonLord) == BossFlags4.DownedMoonLord, + (BossFlags4 & BossFlags4.DownedHalloweenKing) == BossFlags4.DownedHalloweenKing, + (BossFlags4 & BossFlags4.DownedHalloweenTree) == BossFlags4.DownedHalloweenTree, + (BossFlags4 & BossFlags4.DownedChristmasIceQueen) == BossFlags4.DownedChristmasIceQueen, + (BossFlags4 & BossFlags4.DownedChristmasSantank) == BossFlags4.DownedChristmasSantank, + (BossFlags4 & BossFlags4.DownedChristmasTree) == BossFlags4.DownedChristmasTree); + writer.Write(bosses4); + + writer.Write((sbyte)Main.invasionType); + writer.Write(Main.LobbyId); } } } \ No newline at end of file diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 1f34fa08..da8af602 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -919,7 +919,7 @@ namespace TShockAPI Console.Title = string.Format("{0}{1}/{2} @ {3}:{4} (TShock for Terraria v{5})", !string.IsNullOrWhiteSpace(Config.ServerName) ? Config.ServerName + " - " : "", empty ? 0 : Utils.ActivePlayers(), - Config.MaxSlots, Netplay.ServerIPText, Netplay.ListenPort, Version); + Config.MaxSlots, Netplay.ServerIP.MapToIPv4().ToString(), Netplay.ListenPort, Version); } /// OnHardUpdate - Fired when a hardmode tile update event happens. @@ -1475,6 +1475,21 @@ namespace TShockAPI (WorldGen.crimson ? BossFlags2.Crimson : BossFlags2.None) | (Main.pumpkinMoon ? BossFlags2.PumpkinMoon : BossFlags2.None) | (Main.snowMoon ? BossFlags2.SnowMoon : BossFlags2.None), + BossFlags3 = (Main.expertMode ? BossFlags3.ExpertMode : BossFlags3.None) | + (Main.fastForwardTime ? BossFlags3.FastForwardTime : BossFlags3.None) | + (Main.slimeRain ? BossFlags3.SlimeRain : BossFlags3.None) | + (NPC.downedSlimeKing ? BossFlags3.DownedKingSlime : BossFlags3.None) | + (NPC.downedQueenBee ? BossFlags3.DownedQueenBee : BossFlags3.None) | + (NPC.downedFishron ? BossFlags3.DownedFishron : BossFlags3.None) | + (NPC.downedMartians ? BossFlags3.DownedMartians : BossFlags3.None) | + (NPC.downedAncientCultist ? BossFlags3.DownedAncientCultist : BossFlags3.None), + BossFlags4 = (NPC.downedMoonlord ? BossFlags4.DownedMoonLord : BossFlags4.None) | + (NPC.downedHalloweenKing ? BossFlags4.DownedHalloweenKing : BossFlags4.None) | + (NPC.downedHalloweenTree ? BossFlags4.DownedHalloweenTree : BossFlags4.None) | + (NPC.downedChristmasIceQueen ? BossFlags4.DownedChristmasIceQueen : BossFlags4.None) | + (NPC.downedChristmasSantank ? BossFlags4.DownedChristmasSantank : BossFlags4.None) | + (NPC.downedChristmasTree ? BossFlags4.DownedChristmasTree : BossFlags4.None), + Rain = Main.maxRaining, WorldName = TShock.Config.UseServerName ? TShock.Config.ServerName : Main.worldName };