diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index ffbd6611..14d268f3 100644 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -1,10 +1,17 @@ -using System; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; using System.IO; -using System.Net; -using Microsoft.Xna.Framework; +using System.Net; +using Microsoft.Xna.Framework; using Terraria; using TerrariaAPI; using TerrariaAPI.Hooks; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using System.Net; +using TShockAPI; namespace TShockAPI { @@ -45,8 +52,9 @@ namespace TShockAPI get { return "The administration modification of the future."; } } - public TShock(Main game) - : base(game) + public TShock(Main game) : base (game) + public TShock(Main game) + : base(game) { } @@ -80,7 +88,8 @@ namespace TShockAPI * Hooks: * */ - private void NpcHooks_OnStrikeNpc(NpcStrikeEventArgs e) + void NpcHooks_OnStrikeNpc(NpcStrikeEventArgs e) + private void NpcHooks_OnStrikeNpc(NpcStrikeEventArgs e) { if (ConfigurationManager.infiniteInvasion) { @@ -92,7 +101,8 @@ namespace TShockAPI } } - private void OnPreGetData(byte id, messageBuffer msg, int idx, int length, HandledEventArgs e) + void OnPreGetData(byte id, messageBuffer msg, int idx, int length, HandledEventArgs e) + private void OnPreGetData(byte id, messageBuffer msg, int idx, int length, HandledEventArgs e) { if (Main.netMode != 2) { return; } if (id == 0x1e && ConfigurationManager.permaPvp) @@ -101,7 +111,8 @@ namespace TShockAPI } } - private void GetData(GetDataEventArgs e) + void GetData(GetDataEventArgs e) + private void GetData(GetDataEventArgs e) { if (Main.netMode != 2) { return; } if (e.MsgID == 17) @@ -129,7 +140,8 @@ namespace TShockAPI } } - private void OnGreetPlayer(int who, HandledEventArgs e) + void OnGreetPlayer(int who, HandledEventArgs e) + private void OnGreetPlayer(int who, HandledEventArgs e) { if (Main.netMode != 2) { return; } int plr = who; //legacy support @@ -151,11 +163,14 @@ namespace TShockAPI e.Handled = true; } - private void OnChat(int ply, string msg, HandledEventArgs handler) - { - if (Main.netMode != 2) { return; } - int x = (int)Main.player[ply].position.X; - int y = (int)Main.player[ply].position.Y; + void OnChat(int ply, string msg, HandledEventArgs handler) + private void OnChat(int ply, string msg, HandledEventArgs handler) + { + if (Main.netMode != 2) { return; } + int x = (int) Main.player[ply].position.X; + int y = (int) Main.player[ply].position.Y; + int x = (int)Main.player[ply].position.X; + int y = (int)Main.player[ply].position.Y; if (Tools.IsAdmin(ply)) { @@ -225,7 +240,8 @@ namespace TShockAPI //Main.UpdateT(); NetMessage.SendData(18, -1, -1, "", 0, 0, Main.sunModY, Main.moonModY); NetMessage.syncPlayers(); - handler.Handled = true; + handler.Handled = true; + handler.Handled = true; } if (msg == "/eater") { @@ -282,7 +298,8 @@ namespace TShockAPI if (msg.Length > 3 && msg.Substring(0, 3) == "/tp") { string player = msg.Remove(0, 3).Trim(); - if (Tools.FindPlayer(player) != -1 && player != "") + if (!(Tools.FindPlayer(player) == -1) && !(player == "")) + if (Tools.FindPlayer(player) != -1 && player != "") { Teleport(ply, Main.player[Tools.FindPlayer(player)].position.X, Main.player[Tools.FindPlayer(player)].position.Y); Tools.SendMessage(ply, "Teleported to " + player); @@ -292,7 +309,8 @@ namespace TShockAPI if (msg.Length > 7 && msg.Substring(0, 7) == "/tphere") { string player = msg.Remove(0, 7).Trim(); - if (Tools.FindPlayer(player) != -1 && player != "") + if (!(Tools.FindPlayer(player) == -1) && !(player == "")) + if (Tools.FindPlayer(player) != -1 && player != "") { Teleport(Tools.FindPlayer(player), Main.player[ply].position.X, Main.player[ply].position.Y); Tools.SendMessage(Tools.FindPlayer(player), "You were teleported to " + Tools.FindPlayer(ply) + "."); @@ -300,6 +318,20 @@ namespace TShockAPI handler.Handled = true; } } + if (msg.Length > 9 && msg.Substring(0,9) == "/spawnmob") + { + string args = msg.Remove(0, 9).Trim(); + int type = 0; + if (int.TryParse(args, out type)) + { + if (type >= 1 && type <= 43) + { + var npcid = NPC.NewNPC(x, y, type, 0); + Tools.Broadcast("NPC " + type.ToString() + " spawned with ID " + npcid.ToString()); + handler.Handled = true; + } + } + } } if (msg == "/help") { @@ -312,7 +344,9 @@ namespace TShockAPI } } - private void OnJoin(int ply, AllowEventArgs handler) + + void OnJoin(int ply, AllowEventArgs handler) + private void OnJoin(int ply, AllowEventArgs handler) { if (Main.netMode != 2) { return; } string ip = Tools.GetRealIP((Convert.ToString(Netplay.serverSock[ply].tcpClient.Client.RemoteEndPoint))); @@ -326,20 +360,25 @@ namespace TShockAPI } } - private void OnLoadContent(Microsoft.Xna.Framework.Content.ContentManager obj) + void OnLoadContent(Microsoft.Xna.Framework.Content.ContentManager obj) + private void OnLoadContent(Microsoft.Xna.Framework.Content.ContentManager obj) { + } - private void OnPreInit() + void OnPreInit() + private void OnPreInit() { FileTools.SetupConfig(); } - private void OnPostInit() + void OnPostInit() + private void OnPostInit() { } - private void OnUpdate(GameTime time) + void OnUpdate(GameTime time) + private void OnUpdate(GameTime time) { if (Main.netMode != 2) { return; } for (uint i = 0; i < Main.maxPlayers; i++) @@ -396,15 +435,29 @@ namespace TShockAPI } } + + public static void Teleport(int ply, int x, int y) + { + Main.player[ply].velocity = new Vector2(0, 0); + NetMessage.SendData(0x0d, -1, -1, "", ply); + Main.player[ply].position.X = x; + Main.player[ply].position.Y = y - 0x2a; + NetMessage.SendData(0x0d, -1, -1, "", ply); + } + + public static void Teleport(int ply, float x, float y) { - int oldx = Main.player[ply].SpawnX; - int oldy = Main.player[ply].SpawnY; - Main.player[ply].SpawnX = (int)(x / 16); - Main.player[ply].SpawnY = (int)((y - 0x2a) / 16); - NetMessage.SendData(0xC, -1, -1, "", ply); - Main.player[ply].SpawnX = oldx; - Main.player[ply].SpawnY = oldy; + Main.player[ply].position.X = x; + Main.player[ply].position.Y = y - 0x2a; + NetMessage.SendData(0x0d, -1, -1, "", ply); + int oldx = Main.player[ply].SpawnX; + int oldy = Main.player[ply].SpawnY; + Main.player[ply].SpawnX = (int)(x / 16); + Main.player[ply].SpawnY = (int)((y - 0x2a) / 16); + NetMessage.SendData(0xC, -1, -1, "", ply); + Main.player[ply].SpawnX = oldx; + Main.player[ply].SpawnY = oldy; } public static void StartInvasion() @@ -458,6 +511,7 @@ namespace TShockAPI Tools.Broadcast(ConfigurationManager.killCount + " copies of Call of Duty smashed."); break; } + } } }