diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index 5c5d8649..253036b8 100644
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -24,7 +24,6 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
-using TShockAPI.PluginUpdater;
using Terraria;
using TShockAPI.DB;
@@ -1259,7 +1258,6 @@ namespace TShockAPI
{
args.Player.SendInfoMessage("Starting plugin update process:");
args.Player.SendInfoMessage("This may take a while, do not turn off the server!");
- new PluginUpdaterThread(args.Player);
}
private static void ManageRest(CommandArgs args)
@@ -2900,13 +2898,13 @@ namespace TShockAPI
// worth the effort as chances are very low that overwriting the wire for a few
// nanoseconds will cause much trouble.
Tile tile = Main.tile[boundaryPoint.X, boundaryPoint.Y];
- bool oldWireState = tile.wire;
- tile.wire = true;
+ bool oldWireState = tile.wire();
+ tile.wire(true);
try {
args.Player.SendTileSquare(boundaryPoint.X, boundaryPoint.Y, 1);
} finally {
- tile.wire = oldWireState;
+ tile.wire(oldWireState);
}
}
}
@@ -3829,7 +3827,7 @@ namespace TShockAPI
case "tree":
for (int i = x - 1; i < x + 2; i++)
{
- Main.tile[i, y].active = true;
+ Main.tile[i, y].active(true);
Main.tile[i, y].type = 2;
Main.tile[i, y].wall = 0;
}
@@ -3840,20 +3838,20 @@ namespace TShockAPI
case "epictree":
for (int i = x - 1; i < x + 2; i++)
{
- Main.tile[i, y].active = true;
+ Main.tile[i, y].active(true);
Main.tile[i, y].type = 2;
Main.tile[i, y].wall = 0;
}
Main.tile[x, y - 1].wall = 0;
Main.tile[x, y - 1].liquid = 0;
- Main.tile[x, y - 1].active = true;
+ Main.tile[x, y - 1].active(true);
WorldGen.GrowEpicTree(x, y);
name = "Epic Tree";
break;
case "mushroom":
for (int i = x - 1; i < x + 2; i++)
{
- Main.tile[i, y].active = true;
+ Main.tile[i, y].active(true);
Main.tile[i, y].type = 70;
Main.tile[i, y].wall = 0;
}
@@ -3867,7 +3865,7 @@ namespace TShockAPI
name = "Cactus";
break;
case "herb":
- Main.tile[x, y].active = true;
+ Main.tile[x, y].active(true);
Main.tile[x, y].frameX = 36;
Main.tile[x, y].type = 83;
WorldGen.GrowAlch(x, y);
diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs
index 0b128ba9..98afa385 100644
--- a/TShockAPI/GetDataHandlers.cs
+++ b/TShockAPI/GetDataHandlers.cs
@@ -499,7 +499,7 @@ namespace TShockAPI
{
for (int j = num3; j < num4; j++)
{
- if (Main.tile[i, j] != null && Main.tile[i, j].active && Main.tileSolid[(int)Main.tile[i, j].type] && !Main.tileSolidTop[(int)Main.tile[i, j].type] &&(((int)Main.tile[i,j].type !=53) && ((int)Main.tile[i,j].type !=112) && ((int)Main.tile[i,j].type !=116) && ((int)Main.tile[i,j].type !=123)) && !Main.tile[i,j].lava)
+ if (Main.tile[i, j] != null && Main.tile[i, j].active() && Main.tileSolid[(int)Main.tile[i, j].type] && !Main.tileSolidTop[(int)Main.tile[i, j].type] &&(((int)Main.tile[i,j].type !=53) && ((int)Main.tile[i,j].type !=112) && ((int)Main.tile[i,j].type !=116) && ((int)Main.tile[i,j].type !=123)) && !Main.tile[i,j].lava())
{
Vector2 vector;
vector.X = (float)(i * 16);
@@ -1143,33 +1143,33 @@ namespace TShockAPI
{PacketTypes.PlayerInfo, HandlePlayerInfo},
{PacketTypes.PlayerUpdate, HandlePlayerUpdate},
{PacketTypes.Tile, HandleTile},
- {PacketTypes.TileSendSquare, HandleSendTileSquare},
+ /*{PacketTypes.TileSendSquare, HandleSendTileSquare},
{PacketTypes.ProjectileNew, HandleProjectileNew},
{PacketTypes.TogglePvp, HandleTogglePvp},
{PacketTypes.PlayerTeam, HandlePlayerTeam},
{PacketTypes.TileKill, HandleTileKill},
{PacketTypes.PlayerKillMe, HandlePlayerKillMe},
- {PacketTypes.LiquidSet, HandleLiquidSet},
+ {PacketTypes.LiquidSet, HandleLiquidSet},*/
{PacketTypes.PlayerSpawn, HandleSpawn},
- {PacketTypes.ChestGetContents, HandleChestOpen},
+ /*{PacketTypes.ChestGetContents, HandleChestOpen},
{PacketTypes.ChestItem, HandleChestItem},
- {PacketTypes.SignNew, HandleSign},
+ {PacketTypes.SignNew, HandleSign},*/
{PacketTypes.PlayerSlot, HandlePlayerSlot},
{PacketTypes.TileGetSection, HandleGetSection},
- {PacketTypes.UpdateNPCHome, UpdateNPCHome},
+ /*{PacketTypes.UpdateNPCHome, UpdateNPCHome},
{PacketTypes.PlayerAddBuff, HandlePlayerBuff},
- {PacketTypes.ItemDrop, HandleItemDrop},
+ {PacketTypes.ItemDrop, HandleItemDrop},*/
{PacketTypes.PlayerHp, HandlePlayerHp},
- {PacketTypes.PlayerMana, HandlePlayerMana},
+ /*{PacketTypes.PlayerMana, HandlePlayerMana},
{PacketTypes.PlayerDamage, HandlePlayerDamage},
{PacketTypes.NpcStrike, HandleNpcStrike},
{PacketTypes.NpcSpecial, HandleSpecial},
{PacketTypes.PlayerAnimation, HandlePlayerAnimation},
{PacketTypes.PlayerBuff, HandlePlayerBuffUpdate},
- {PacketTypes.PasswordSend, HandlePassword},
+ {PacketTypes.PasswordSend, HandlePassword},*/
{PacketTypes.ContinueConnecting2, HandleConnecting},
- {PacketTypes.ProjectileDestroy, HandleProjectileKill},
- {PacketTypes.SpawnBossorInvasion, HandleSpawnBoss}
+ /*{PacketTypes.ProjectileDestroy, HandleProjectileKill},
+ {PacketTypes.SpawnBossorInvasion, HandleSpawnBoss}*/
};
}
@@ -1333,13 +1333,13 @@ namespace TShockAPI
if (user != null && !TShock.Config.DisableLoginBeforeJoin)
{
args.Player.RequiresPassword = true;
- NetMessage.SendData((int) PacketTypes.PasswordRequired, args.Player.Index);
+ //NetMessage.SendData((int) PacketTypes.PasswordRequired, args.Player.Index);
return true;
}
else if (!string.IsNullOrEmpty(TShock.Config.ServerPassword))
{
args.Player.RequiresPassword = true;
- NetMessage.SendData((int) PacketTypes.PasswordRequired, args.Player.Index);
+ //NetMessage.SendData((int) PacketTypes.PasswordRequired, args.Player.Index);
return true;
}
@@ -1462,7 +1462,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, "", 0, 0, Main.sunModY, Main.moonModY);
if (TShock.Config.EnableGeoIP && TShock.Geo != null)
{
@@ -1905,7 +1905,7 @@ namespace TShockAPI
args.Player.TilePlaceThreshold++;
var coords = new Vector2(tileX, tileY);
if (!args.Player.TilesCreated.ContainsKey(coords))
- args.Player.TilesCreated.Add(coords, Main.tile[tileX, tileY].Data);
+ args.Player.TilesCreated.Add(coords, Main.tile[tileX, tileY]);
}
if ((type == 0 || type == 4 || type == 2) && Main.tileSolid[Main.tile[tileX, tileY].type] &&
@@ -1914,13 +1914,13 @@ namespace TShockAPI
args.Player.TileKillThreshold++;
var coords = new Vector2(tileX, tileY);
if (!args.Player.TilesDestroyed.ContainsKey(coords))
- args.Player.TilesDestroyed.Add(coords, Main.tile[tileX, tileY].Data);
+ args.Player.TilesDestroyed.Add(coords, Main.tile[tileX, tileY]);
}
return false;
}
- private static bool HandleTogglePvp(GetDataHandlerArgs args)
+ /*private static bool HandleTogglePvp(GetDataHandlerArgs args)
{
byte id = args.Data.ReadInt8();
bool pvp = args.Data.ReadBoolean();
@@ -1959,7 +1959,7 @@ namespace TShockAPI
NetMessage.SendData((int) PacketTypes.TogglePvp, -1, -1, "", args.Player.Index);
return true;
- }
+ }*/
private static bool HandlePlayerTeam(GetDataHandlerArgs args)
{
@@ -1975,7 +1975,7 @@ namespace TShockAPI
args.TPlayer.team = team;
- NetMessage.SendData((int)PacketTypes.PlayerTeam, -1, -1, "", args.Player.Index);
+ //NetMessage.SendData((int)PacketTypes.PlayerTeam, -1, -1, "", args.Player.Index);
return true;
}
@@ -2502,7 +2502,7 @@ namespace TShockAPI
if (TShock.CheckIgnores(args.Player))
{
- args.Player.SendData(PacketTypes.ChestItem, "", id, slot);
+ //args.Player.SendData(PacketTypes.ChestItem, "", id, slot);
return true;
}
@@ -2537,19 +2537,19 @@ namespace TShockAPI
if (TShock.CheckTilePermission(args.Player, x, y))
{
- args.Player.SendData(PacketTypes.SignNew, "", id);
+ //args.Player.SendData(PacketTypes.SignNew, "", id);
return true;
}
if (TShock.CheckRangePermission(args.Player, x, y))
{
- args.Player.SendData(PacketTypes.SignNew, "", id);
+ //args.Player.SendData(PacketTypes.SignNew, "", id);
return true;
}
return false;
}
- private static bool UpdateNPCHome(GetDataHandlerArgs args)
+ /*private static bool UpdateNPCHome(GetDataHandlerArgs args)
{
var id = args.Data.ReadInt16();
var x = args.Data.ReadInt16();
@@ -2581,11 +2581,11 @@ namespace TShockAPI
args.Player.SendData(PacketTypes.UpdateNPCHome, "", id, Main.npc[id].homeTileX, Main.npc[id].homeTileY,
Convert.ToByte(Main.npc[id].homeless));
return true;
- }*/
+ }*//*
return false;
- }
+ }*/
- private static bool HandlePlayerBuff(GetDataHandlerArgs args)
+ /*private static bool HandlePlayerBuff(GetDataHandlerArgs args)
{
var id = args.Data.ReadInt8();
var type = args.Data.ReadInt8();
@@ -2622,9 +2622,9 @@ namespace TShockAPI
args.Player.SendData(PacketTypes.PlayerBuff, "", id);
return true;
- }
+ }*/
- private static bool HandleItemDrop(GetDataHandlerArgs args)
+ /*private static bool HandleItemDrop(GetDataHandlerArgs args)
{
var id = args.Data.ReadInt16();
var pos = new Vector2(args.Data.ReadSingle(), args.Data.ReadSingle());
@@ -2674,7 +2674,7 @@ namespace TShockAPI
}
return false;
- }
+ }*/
private static bool HandlePlayerDamage(GetDataHandlerArgs args)
{
@@ -2757,20 +2757,20 @@ namespace TShockAPI
if (dmg > TShock.Config.MaxDamage && !args.Player.Group.HasPermission(Permissions.ignoredamagecap))
{
args.Player.Disable(String.Format("NPC damage exceeded {0}.", TShock.Config.MaxDamage ) );
- args.Player.SendData(PacketTypes.NpcUpdate, "", id);
+ //args.Player.SendData(PacketTypes.NpcUpdate, "", id);
return true;
}
if (TShock.CheckIgnores(args.Player))
{
- args.Player.SendData(PacketTypes.NpcUpdate, "", id);
+ //args.Player.SendData(PacketTypes.NpcUpdate, "", id);
return true;
}
if (Main.npc[id].townNPC && !args.Player.Group.HasPermission(Permissions.movenpc))
{
args.Player.SendMessage( "You don't have permission to move this NPC.", Color.Yellow);
- args.Player.SendData(PacketTypes.NpcUpdate, "", id);
+ //args.Player.SendData(PacketTypes.NpcUpdate, "", id);
return true;
}
@@ -2778,13 +2778,13 @@ namespace TShockAPI
TShock.CheckRangePermission(args.Player, (int) (Main.npc[id].position.X/16f), (int) (Main.npc[id].position.Y/16f),
128))
{
- args.Player.SendData(PacketTypes.NpcUpdate, "", id);
+ //args.Player.SendData(PacketTypes.NpcUpdate, "", id);
return true;
}
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000)
{
- args.Player.SendData(PacketTypes.NpcUpdate, "", id);
+ //args.Player.SendData(PacketTypes.NpcUpdate, "", id);
return true;
}
@@ -2817,13 +2817,13 @@ namespace TShockAPI
if (TShock.CheckIgnores(args.Player))
{
- args.Player.SendData(PacketTypes.PlayerAnimation, "", args.Player.Index);
+ //args.Player.SendData(PacketTypes.PlayerAnimation, "", args.Player.Index);
return true;
}
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000)
{
- args.Player.SendData(PacketTypes.PlayerAnimation, "", args.Player.Index);
+ //args.Player.SendData(PacketTypes.PlayerAnimation, "", args.Player.Index);
return true;
}
@@ -2860,7 +2860,7 @@ namespace TShockAPI
args.TPlayer.buffTime[i] = 0;
}
}
- NetMessage.SendData((int) PacketTypes.PlayerBuff, -1, args.Player.Index, "", args.Player.Index);
+ //NetMessage.SendData((int) PacketTypes.PlayerBuff, -1, args.Player.Index, "", args.Player.Index);
return true;
}
diff --git a/TShockAPI/Net/ProjectileRemoveMsg.cs b/TShockAPI/Net/ProjectileRemoveMsg.cs
index d8775313..ea76e54d 100644
--- a/TShockAPI/Net/ProjectileRemoveMsg.cs
+++ b/TShockAPI/Net/ProjectileRemoveMsg.cs
@@ -25,7 +25,8 @@ namespace TShockAPI.Net
{
public override PacketTypes ID
{
- get { return PacketTypes.ProjectileNew; }
+ get{ return 0; }
+ //PacketTypes.ProjectileNew; }
}
public short Index { get; set; }
diff --git a/TShockAPI/PacketBufferer.cs b/TShockAPI/PacketBufferer.cs
index d18ac47f..ebab27d1 100644
--- a/TShockAPI/PacketBufferer.cs
+++ b/TShockAPI/PacketBufferer.cs
@@ -22,8 +22,8 @@ using System.ComponentModel;
using System.IO;
using System.Net.Sockets;
using System.Text;
-using Hooks;
using Terraria;
+using TerrariaApi.Server;
namespace TShockAPI
{
@@ -34,6 +34,8 @@ namespace TShockAPI
///
public int BytesPerUpdate { get; set; }
+ private readonly TShock plugin;
+
private PacketBuffer[] buffers = new PacketBuffer[Netplay.serverSock.Length];
private int[] Bytes = new int[52];
@@ -45,8 +47,9 @@ namespace TShockAPI
Command flush;
#endif
- public PacketBufferer()
+ public PacketBufferer(TShock p)
{
+ plugin = p;
BytesPerUpdate = 0xFFFF;
for (int i = 0; i < buffers.Length; i++)
buffers[i] = new PacketBuffer();
@@ -58,9 +61,9 @@ namespace TShockAPI
Commands.ChatCommands.Add(flush);
#endif
- NetHooks.SendBytes += ServerHooks_SendBytes;
- ServerHooks.SocketReset += ServerHooks_SocketReset;
- GameHooks.PostUpdate += GameHooks_Update;
+ ServerApi.Hooks.NetSendBytes.Register(plugin, ServerHooks_SendBytes);
+ ServerApi.Hooks.ServerSocketReset.Register(plugin, ServerHooks_SocketReset);
+ ServerApi.Hooks.GamePostUpdate.Register(plugin, GameHooks_Update);
}
~PacketBufferer()
@@ -82,9 +85,9 @@ namespace TShockAPI
Commands.ChatCommands.Remove(dump);
Commands.ChatCommands.Remove(flush);
#endif
- NetHooks.SendBytes -= ServerHooks_SendBytes;
- ServerHooks.SocketReset -= ServerHooks_SocketReset;
- GameHooks.PostUpdate -= GameHooks_Update;
+ ServerApi.Hooks.NetSendBytes.Deregister(plugin, ServerHooks_SendBytes);
+ ServerApi.Hooks.ServerSocketReset.Deregister(plugin, ServerHooks_SocketReset);
+ ServerApi.Hooks.GamePostUpdate.Deregister(plugin, GameHooks_Update);
}
}
@@ -107,7 +110,7 @@ namespace TShockAPI
Compressed = new int[52];
}
- private void GameHooks_Update()
+ private void GameHooks_Update(EventArgs args)
{
FlushAll();
}
@@ -148,9 +151,9 @@ namespace TShockAPI
}
- private void ServerHooks_SocketReset(ServerSock socket)
+ private void ServerHooks_SocketReset(SocketResetEventArgs args)
{
- buffers[socket.whoAmI] = new PacketBuffer();
+ buffers[args.Socket.whoAmI] = new PacketBuffer();
}
public bool SendBytes(ServerSock socket, byte[] buffer)
@@ -217,10 +220,10 @@ namespace TShockAPI
return false;
}
- private void ServerHooks_SendBytes(ServerSock socket, byte[] buffer, int offset, int count, HandledEventArgs e)
+ private void ServerHooks_SendBytes(SendBytesEventArgs args)
{
- e.Handled = true;
- BufferBytes(socket, buffer, offset, count);
+ args.Handled = true;
+ BufferBytes(args.Socket, args.Buffer, args.Offset, args.Count);
}
#if DEBUG_NET
diff --git a/TShockAPI/PluginUpdater/PluginUpdaterThread.cs b/TShockAPI/PluginUpdater/PluginUpdaterThread.cs
deleted file mode 100644
index b77a1370..00000000
--- a/TShockAPI/PluginUpdater/PluginUpdaterThread.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-TShock, a server mod for Terraria
-Copyright (C) 2011-2013 Nyx Studios (fka. The TShock Team)
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see .
-*/
-using System;
-using System.IO;
-using System.Threading;
-using Terraria;
-
-namespace TShockAPI.PluginUpdater
-{
- class PluginUpdaterThread
- {
- private TSPlayer invoker;
- public PluginUpdaterThread(TSPlayer player)
- {
- invoker = player;
- PluginVersionCheck.PluginUpdate += PluginUpdate;
- HandleUpdate();
- }
-
- private void HandleUpdate()
- {
- foreach(PluginContainer cont in ProgramServer.Plugins)
- new Thread(PluginVersionCheck.CheckPlugin).Start(cont.Plugin);
- }
-
- private int Updates = 0;
- private void PluginUpdate(UpdateArgs args)
- {
- Updates++;
- if(args.Success && String.IsNullOrEmpty(args.Error))
- {
- invoker.SendSuccessMessage(String.Format("{0} was downloaded successfully.", args.Plugin.Name));
- }
- else if(args.Success)
- {
- invoker.SendSuccessMessage(String.Format("{0} was skipped. Reason: {1}", args.Plugin.Name, args.Error));
- }
- else
- {
- invoker.SendSuccessMessage(String.Format("{0} failed to downloaded. Error: {1}", args.Plugin.Name, args.Error));
- }
-
- if(Updates >= Terraria.ProgramServer.Plugins.Count)
- {
- PluginVersionCheck.PluginUpdate -= PluginUpdate;
-
- invoker.SendSuccessMessage("All plugins have been downloaded. Now copying them to the plugin folder...");
-
- string folder = Path.Combine(TShock.SavePath, "UpdatedPlugins");
- string dest = Path.Combine(TShock.SavePath, "..", "ServerPlugins");
-
- foreach (string dir in Directory.GetDirectories(folder, "*", System.IO.SearchOption.AllDirectories))
- {
- string new_folder = dest + dir.Substring(folder.Length);
- if (!Directory.Exists(new_folder))
- Directory.CreateDirectory(new_folder);
- }
-
- foreach (string file_name in Directory.GetFiles(folder, "*.*", System.IO.SearchOption.AllDirectories))
- {
- TSPlayer.Server.SendSuccessMessage(String.Format("Copied {0}", file_name));
- File.Copy(file_name, dest + file_name.Substring(folder.Length), true);
- }
-
-
- Directory.Delete(folder, true);
-
- invoker.SendSuccessMessage("All plugins have been processed. Restart the server to have access to the new plugins.");
- }
- }
- }
-}
diff --git a/TShockAPI/PluginUpdater/PluginVersionCheck.cs b/TShockAPI/PluginUpdater/PluginVersionCheck.cs
deleted file mode 100644
index 61858af8..00000000
--- a/TShockAPI/PluginUpdater/PluginVersionCheck.cs
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
-TShock, a server mod for Terraria
-Copyright (C) 2011-2013 Nyx Studios (fka. The TShock Team)
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see .
-*/
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Net;
-using JsonLoader;
-using Newtonsoft.Json;
-
-namespace TShockAPI.PluginUpdater
-{
- public class PluginVersionCheck
- {
- public delegate void PluginUpdateD(UpdateArgs e);
- public static event PluginUpdateD PluginUpdate;
- public static void OnPluginUpdate(UpdateArgs args)
- {
- if (PluginUpdate == null)
- {
- return;
- }
-
- PluginUpdate(args);
- }
-
- public static void CheckPlugin(object p)
- {
- TerrariaPlugin plugin = (TerrariaPlugin)p;
- UpdateArgs args = new UpdateArgs {Plugin = plugin, Success = true, Error = ""};
- List files = new List();
-
- try
- {
- if (!String.IsNullOrEmpty(plugin.UpdateURL))
- {
- var request = HttpWebRequest.Create(plugin.UpdateURL);
- VersionInfo vi;
-
- request.Timeout = 5000;
- using (var response = request.GetResponse())
- {
- using (var reader = new StreamReader(response.GetResponseStream()))
- {
- vi = JsonConvert.DeserializeObject(reader.ReadToEnd());
- }
- }
-
- System.Version v = System.Version.Parse((vi.version.ToString()));
-
- if (!v.Equals(plugin.Version))
- {
- DownloadPackage pkg;
- request = HttpWebRequest.Create(vi.url);
-
- request.Timeout = 5000;
- using (var response = request.GetResponse())
- {
- using (var reader = new StreamReader(response.GetResponseStream()))
- {
- pkg = JsonConvert.DeserializeObject(reader.ReadToEnd());
- }
- }
-
- foreach (PluginFile f in pkg.files)
- {
- using (WebClient Client = new WebClient())
- {
- string dir = Path.Combine(TShock.SavePath, "UpdatedPlugins");
- if (!Directory.Exists(dir))
- Directory.CreateDirectory(dir);
-
- Client.DownloadFile(f.url,
- Path.Combine(dir, f.destination));
-
- files.Add(Path.Combine(dir, f.destination));
- }
- }
- }
- else
- {
- args.Error = "Plugin is up to date.";
- }
- }
- else
- {
- args.Error = "Plugin has no updater recorded.";
- }
- }
- catch(Exception e)
- {
- args.Success = false;
- args.Error = e.Message;
- if(files.Count > 0)
- {
- foreach(string s in files)
- {
- File.Delete(s);
- }
- }
- }
-
- OnPluginUpdate(args);
- }
- }
-
- public class UpdateArgs
- {
- public TerrariaPlugin Plugin { get; set; }
- public bool Success { get; set; }
- public string Error { get; set; }
- }
-}
diff --git a/TShockAPI/PluginUpdater/VersionInfo.cs b/TShockAPI/PluginUpdater/VersionInfo.cs
deleted file mode 100644
index 4dd061b3..00000000
--- a/TShockAPI/PluginUpdater/VersionInfo.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-TShock, a server mod for Terraria
-Copyright (C) 2011-2013 Nyx Studios (fka. The TShock Team)
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see .
-*/
-using System;
-using System.Collections.Generic;
-
-namespace JsonLoader
-{
- class VersionInfo
- {
- public Version version;
- public string url;
- }
-
- public class Version
- {
- public int Major;
- public int Minor;
- public int Build;
- public int Revision;
- public int MajorRevision;
- public int MinorRevision;
-
- public Version()
- {
- SetVersion(0,0,0,0);
- }
-
- public Version(int m)
- {
- SetVersion(m, 0, 0, 0);
- }
-
- public Version(int ma, int mi)
- {
- SetVersion(ma, mi, 0, 0);
- }
-
- public Version(int ma, int mi, int b)
- {
- SetVersion(ma, mi, b, 0);
- }
-
- public Version(int ma, int mi, int b, int r)
- {
- SetVersion(ma, mi, b, r);
- }
-
- private void SetVersion(int ma, int mi, int b, int r)
- {
- Major = ma;
- Minor = mi;
- Build = b;
- Revision = r;
- }
-
- public string ToString()
- {
- return String.Format("{0}.{1}.{2}.{3}", Major, Minor, Build, Revision);
- }
- }
-
- class DownloadPackage
- {
- public List files;
- }
-
- class PluginFile
- {
- public string url;
- public string destination = "";
- }
-}
diff --git a/TShockAPI/SaveManager.cs b/TShockAPI/SaveManager.cs
index 7e0b0b57..5d5e444c 100644
--- a/TShockAPI/SaveManager.cs
+++ b/TShockAPI/SaveManager.cs
@@ -20,6 +20,7 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Threading;
using Terraria;
+using TerrariaApi.Server;
namespace TShockAPI
{
@@ -45,7 +46,7 @@ namespace TShockAPI
///
/// SaveWorld event handler which notifies users that the server may lag
///
- public void OnSaveWorld(bool resettime = false, HandledEventArgs e = null)
+ public void OnSaveWorld(WorldSaveEventArgs args)
{
// Protect against internal errors causing save failures
// These can be caused by an unexpected error such as a bad or out of date plugin
@@ -120,7 +121,7 @@ namespace TShockAPI
{
if (task.direct)
{
- OnSaveWorld();
+ OnSaveWorld(new WorldSaveEventArgs());
WorldGen.realsaveWorld(task.resetTime);
}
else
diff --git a/TShockAPI/TSPlayer.cs b/TShockAPI/TSPlayer.cs
index 0e1449d4..257a0cd9 100644
--- a/TShockAPI/TSPlayer.cs
+++ b/TShockAPI/TSPlayer.cs
@@ -61,12 +61,12 @@ namespace TShockAPI
///
/// A queue of tiles destroyed by the player for reverting.
///
- public Dictionary TilesDestroyed { get; protected set; }
+ public Dictionary TilesDestroyed { get; protected set; }
///
/// A queue of tiles placed by the player for reverting.
///
- public Dictionary TilesCreated { get; protected set; }
+ public Dictionary TilesCreated { get; protected set; }
public int FirstMaxHP { get; set; }
@@ -405,8 +405,8 @@ namespace TShockAPI
public TSPlayer(int index)
{
- TilesDestroyed = new Dictionary();
- TilesCreated = new Dictionary();
+ TilesDestroyed = new Dictionary();
+ TilesCreated = new Dictionary();
Index = index;
Group = Group.DefaultGroup;
IceTiles = new List();
@@ -415,8 +415,8 @@ namespace TShockAPI
protected TSPlayer(String playerName)
{
- TilesDestroyed = new Dictionary();
- TilesCreated = new Dictionary();
+ TilesDestroyed = new Dictionary();
+ TilesCreated = new Dictionary();
Index = -1;
FakePlayer = new Player {name = playerName, whoAmi = -1};
Group = Group.DefaultGroup;
@@ -567,7 +567,7 @@ namespace TShockAPI
m_y=Main.maxTilesY - size;
}
- SendData(PacketTypes.TileSendSquare, "", size, m_x, m_y);
+ //SendData(PacketTypes.TileSendSquare, "", size, m_x, m_y);
return true;
}
catch (IndexOutOfRangeException)
@@ -604,8 +604,8 @@ namespace TShockAPI
Main.item[itemid].stack = stack;
Main.item[itemid].owner = Index;
Main.item[itemid].prefix = (byte) prefix;
- NetMessage.SendData((int) PacketTypes.ItemDrop, -1, -1, "", itemid, 0f, 0f, 0f);
- NetMessage.SendData((int) PacketTypes.ItemOwner, -1, -1, "", itemid, 0f, 0f, 0f);
+ //NetMessage.SendData((int) PacketTypes.ItemDrop, -1, -1, "", itemid, 0f, 0f, 0f);
+ //NetMessage.SendData((int) PacketTypes.ItemOwner, -1, -1, "", itemid, 0f, 0f, 0f);
}
public virtual void SendInfoMessage(string msg)
@@ -671,14 +671,14 @@ namespace TShockAPI
public virtual void DamagePlayer(int damage)
{
- NetMessage.SendData((int) PacketTypes.PlayerDamage, -1, -1, "", Index, ((new Random()).Next(-1, 1)), damage,
- (float) 0);
+ //NetMessage.SendData((int) PacketTypes.PlayerDamage, -1, -1, "", Index, ((new Random()).Next(-1, 1)), damage,
+ // (float) 0);
}
public virtual void SetTeam(int team)
{
Main.player[Index].team = team;
- SendData(PacketTypes.PlayerTeam, "", Index);
+ //SendData(PacketTypes.PlayerTeam, "", Index);
}
public virtual void Disable(string reason = "")
@@ -705,7 +705,7 @@ namespace TShockAPI
SendMessage("You are now being annoyed.", Color.Red);
while ((DateTime.UtcNow - launch).TotalSeconds < time2 && startname == Name)
{
- SendData(PacketTypes.NpcSpecial, number: Index, number2: 2f);
+ //SendData(PacketTypes.NpcSpecial, number: Index, number2: 2f);
Thread.Sleep(50);
}
}
@@ -715,7 +715,7 @@ namespace TShockAPI
if ((DateTime.UtcNow - LastThreat).TotalMilliseconds < 5000 && !bypass)
return;
- SendData(PacketTypes.PlayerAddBuff, number: Index, number2: type, number3: time);
+ //SendData(PacketTypes.PlayerAddBuff, number: Index, number2: type, number3: time);
}
//Todo: Separate this into a few functions. SendTo, SendToAll, etc
@@ -881,7 +881,7 @@ namespace TShockAPI
{
Main.dayTime = dayTime;
Main.time = time;
- NetMessage.SendData((int) PacketTypes.TimeSet, -1, -1, "", 0, 0, Main.sunModY, Main.moonModY);
+ //NetMessage.SendData((int) PacketTypes.TimeSet, -1, -1, "", 0, 0, Main.sunModY, Main.moonModY);
NetMessage.syncPlayers();
}
@@ -907,15 +907,15 @@ namespace TShockAPI
Main.rand = new Random();
Main.npc[npcid].StrikeNPC(damage, knockBack, hitDirection);
- NetMessage.SendData((int) PacketTypes.NpcStrike, -1, -1, "", npcid, damage, knockBack, hitDirection);
+ //NetMessage.SendData((int) PacketTypes.NpcStrike, -1, -1, "", npcid, damage, knockBack, hitDirection);
}
- public void RevertTiles(Dictionary tiles)
+ public void RevertTiles(Dictionary tiles)
{
// Update Main.Tile first so that when tile sqaure is sent it is correct
- foreach (KeyValuePair entry in tiles)
+ foreach (KeyValuePair entry in tiles)
{
- Main.tile[(int) entry.Key.X, (int) entry.Key.Y].Data = entry.Value;
+ Main.tile[(int) entry.Key.X, (int) entry.Key.Y] = entry.Value;
}
// Send all players updated tile sqaures
foreach (Vector2 coords in tiles.Keys)
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index b7ae6362..e5922ba4 100644
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -27,19 +27,19 @@ using System.IO;
using System.Linq;
using System.Net;
using System.Reflection;
-using Hooks;
using MaxMind;
using Mono.Data.Sqlite;
using MySql.Data.MySqlClient;
using Newtonsoft.Json;
using Rests;
using Terraria;
+using TerrariaApi.Server;
using TShockAPI.DB;
using TShockAPI.Net;
namespace TShockAPI
{
- [APIVersion(1, 13)]
+ [ApiVersion(1, 14)]
public class TShock : TerrariaPlugin
{
public static readonly Version VersionNum = Assembly.GetExecutingAssembly().GetName().Version;
@@ -231,25 +231,25 @@ namespace TShockAPI
Log.ConsoleInfo(string.Format("|> Version {0} ({1}) now running.", Version, VersionCodename));
- GameHooks.PostInitialize += OnPostInit;
- GameHooks.Update += OnUpdate;
- GameHooks.HardUpdate += OnHardUpdate;
- GameHooks.StatueSpawn += OnStatueSpawn;
- ServerHooks.Connect += OnConnect;
- ServerHooks.Join += OnJoin;
- ServerHooks.Leave += OnLeave;
- ServerHooks.Chat += OnChat;
- ServerHooks.Command += ServerHooks_OnCommand;
- NetHooks.GetData += OnGetData;
- NetHooks.SendData += NetHooks_SendData;
- NetHooks.GreetPlayer += OnGreetPlayer;
- NpcHooks.StrikeNpc += NpcHooks_OnStrikeNpc;
- NpcHooks.SetDefaultsInt += OnNpcSetDefaults;
- ProjectileHooks.SetDefaults += OnProjectileSetDefaults;
- WorldHooks.StartHardMode += OnStartHardMode;
- WorldHooks.SaveWorld += SaveManager.Instance.OnSaveWorld;
- WorldHooks.ChristmasCheck += OnXmasCheck;
- NetHooks.NameCollision += NetHooks_NameCollision;
+ ServerApi.Hooks.GamePostInitialize.Register(this, OnPostInit);
+ ServerApi.Hooks.GameUpdate.Register(this, OnUpdate);
+ ServerApi.Hooks.GameHardmodeTileUpdate.Register(this, OnHardUpdate);
+ ServerApi.Hooks.GameStatueSpawn.Register(this, OnStatueSpawn);
+ ServerApi.Hooks.ServerConnect.Register(this, OnConnect);
+ ServerApi.Hooks.ServerJoin.Register(this, OnJoin);
+ ServerApi.Hooks.ServerLeave.Register(this, OnLeave);
+ ServerApi.Hooks.ServerChat.Register(this, OnChat);
+ ServerApi.Hooks.ServerCommand.Register(this, ServerHooks_OnCommand);
+ ServerApi.Hooks.NetGetData.Register(this, OnGetData);
+ ServerApi.Hooks.NetSendData.Register(this, NetHooks_SendData);
+ ServerApi.Hooks.NetGreetPlayer.Register(this, OnGreetPlayer);
+ ServerApi.Hooks.NpcStrike.Register(this, NpcHooks_OnStrikeNpc);
+ ServerApi.Hooks.NpcSetDefaultsInt.Register(this, OnNpcSetDefaults);
+ ServerApi.Hooks.ProjectileSetDefaults.Register(this, OnProjectileSetDefaults);
+ ServerApi.Hooks.WorldStartHardMode.Register(this, OnStartHardMode);
+ ServerApi.Hooks.WorldSave.Register(this, SaveManager.Instance.OnSaveWorld);
+ ServerApi.Hooks.WorldChristmasCheck.Register(this, OnXmasCheck);
+ ServerApi.Hooks.NetNameCollision.Register(this, NetHooks_NameCollision);
TShockAPI.Hooks.PlayerHooks.PlayerPostLogin += OnPlayerLogin;
GetDataHandlers.InitGetDataHandler();
@@ -260,7 +260,7 @@ namespace TShockAPI
RestApi.Start();
if (Config.BufferPackets)
- PacketBuffer = new PacketBufferer();
+ PacketBuffer = new PacketBufferer(this);
Log.ConsoleInfo("AutoSave " + (Config.AutoSave ? "Enabled" : "Disabled"));
Log.ConsoleInfo("Backups " + (Backups.Interval > 0 ? "Enabled" : "Disabled"));
@@ -306,25 +306,26 @@ namespace TShockAPI
}
SaveManager.Instance.Dispose();
- GameHooks.PostInitialize -= OnPostInit;
- GameHooks.Update -= OnUpdate;
- GameHooks.HardUpdate -= OnHardUpdate;
- GameHooks.StatueSpawn -= OnStatueSpawn;
- ServerHooks.Connect -= OnConnect;
- ServerHooks.Join -= OnJoin;
- ServerHooks.Leave -= OnLeave;
- ServerHooks.Chat -= OnChat;
- ServerHooks.Command -= ServerHooks_OnCommand;
- NetHooks.GetData -= OnGetData;
- NetHooks.SendData -= NetHooks_SendData;
- NetHooks.GreetPlayer -= OnGreetPlayer;
- NpcHooks.StrikeNpc -= NpcHooks_OnStrikeNpc;
- NpcHooks.SetDefaultsInt -= OnNpcSetDefaults;
- ProjectileHooks.SetDefaults -= OnProjectileSetDefaults;
- WorldHooks.StartHardMode -= OnStartHardMode;
- WorldHooks.SaveWorld -= SaveManager.Instance.OnSaveWorld;
- WorldHooks.ChristmasCheck -= OnXmasCheck;
- NetHooks.NameCollision -= NetHooks_NameCollision;
+
+ ServerApi.Hooks.GamePostInitialize.Deregister(this, OnPostInit);
+ ServerApi.Hooks.GameUpdate.Deregister(this, OnUpdate);
+ ServerApi.Hooks.GameHardmodeTileUpdate.Deregister(this, OnHardUpdate);
+ ServerApi.Hooks.GameStatueSpawn.Deregister(this, OnStatueSpawn);
+ ServerApi.Hooks.ServerConnect.Deregister(this, OnConnect);
+ ServerApi.Hooks.ServerJoin.Deregister(this, OnJoin);
+ ServerApi.Hooks.ServerLeave.Deregister(this, OnLeave);
+ ServerApi.Hooks.ServerChat.Deregister(this, OnChat);
+ ServerApi.Hooks.ServerCommand.Deregister(this, ServerHooks_OnCommand);
+ ServerApi.Hooks.NetGetData.Deregister(this, OnGetData);
+ ServerApi.Hooks.NetSendData.Deregister(this, NetHooks_SendData);
+ ServerApi.Hooks.NetGreetPlayer.Deregister(this, OnGreetPlayer);
+ ServerApi.Hooks.NpcStrike.Deregister(this, NpcHooks_OnStrikeNpc);
+ ServerApi.Hooks.NpcSetDefaultsInt.Deregister(this, OnNpcSetDefaults);
+ ServerApi.Hooks.ProjectileSetDefaults.Deregister(this, OnProjectileSetDefaults);
+ ServerApi.Hooks.WorldStartHardMode.Deregister(this, OnStartHardMode);
+ ServerApi.Hooks.WorldSave.Deregister(this, SaveManager.Instance.OnSaveWorld);
+ ServerApi.Hooks.WorldChristmasCheck.Deregister(this, OnXmasCheck);
+ ServerApi.Hooks.NetNameCollision.Deregister(this, NetHooks_NameCollision);
TShockAPI.Hooks.PlayerHooks.PlayerPostLogin -= OnPlayerLogin;
if (File.Exists(Path.Combine(SavePath, "tshock.pid")))
@@ -362,34 +363,34 @@ namespace TShockAPI
Users.UpdateLogin(u);
}
- private void NetHooks_NameCollision(int who, string name, HandledEventArgs e)
+ private void NetHooks_NameCollision(NameCollisionEventArgs args)
{
- string ip = TShock.Utils.GetRealIP(Netplay.serverSock[who].tcpClient.Client.RemoteEndPoint.ToString());
+ string ip = TShock.Utils.GetRealIP(Netplay.serverSock[args.Who].tcpClient.Client.RemoteEndPoint.ToString());
foreach (TSPlayer ply in TShock.Players)
{
if (ply == null)
{
continue;
}
- if (ply.Name == name && ply.Index != who)
+ if (ply.Name == args.Name && ply.Index != args.Who)
{
if (ply.IP == ip)
{
if (ply.State < 2)
{
Utils.ForceKick(ply, "Name collision and this client has no world data.", true, false);
- e.Handled = true;
+ args.Handled = true;
return;
}
else
{
- e.Handled = false;
+ args.Handled = false;
return;
}
}
}
}
- e.Handled = false;
+ args.Handled = false;
return;
}
@@ -533,7 +534,7 @@ namespace TShockAPI
public static int AuthToken = -1;
- private void OnPostInit()
+ private void OnPostInit(EventArgs args)
{
SetConsoleTitle();
if (!File.Exists(Path.Combine(SavePath, "auth.lck")) && !File.Exists(Path.Combine(SavePath, "authcode.txt")))
@@ -597,7 +598,7 @@ namespace TShockAPI
private DateTime LastCheck = DateTime.UtcNow;
private DateTime LastSave = DateTime.UtcNow;
- private void OnUpdate()
+ private void OnUpdate(EventArgs args)
{
UpdateManager.UpdateProcedureCheck();
if (Backups.IsBackupTime)
@@ -737,7 +738,7 @@ namespace TShockAPI
Config.MaxSlots, Netplay.serverListenIP, Netplay.serverPort, Version);
}
- private void OnHardUpdate( HardUpdateEventArgs args )
+ private void OnHardUpdate(HardmodeTileUpdateEventArgs args)
{
if (args.Handled)
return;
@@ -767,14 +768,14 @@ namespace TShockAPI
}
}
- private void OnConnect(int ply, HandledEventArgs handler)
+ private void OnConnect(ConnectEventArgs args)
{
- var player = new TSPlayer(ply);
+ var player = new TSPlayer(args.Who);
if (Utils.ActivePlayers() + 1 > Config.MaxSlots + Config.ReservedSlots)
{
Utils.ForceKick(player, Config.ServerFullNoReservedReason, true, false);
- handler.Handled = true;
+ args.Handled = true;
return;
}
@@ -790,7 +791,7 @@ namespace TShockAPI
DateTime exp;
string duration = DateTime.TryParse(ban.Expiration, out exp) ? String.Format("until {0}", exp.ToString("G")) : "forever";
Utils.ForceKick(player, string.Format("You are banned {0}: {1}", duration, ban.Reason), true, false);
- handler.Handled = true;
+ args.Handled = true;
return;
}
}
@@ -798,7 +799,7 @@ namespace TShockAPI
if (!FileTools.OnWhitelist(player.IP))
{
Utils.ForceKick(player, Config.WhitelistKickReason, true, false);
- handler.Handled = true;
+ args.Handled = true;
return;
}
@@ -811,20 +812,20 @@ namespace TShockAPI
if (Config.KickProxyUsers)
{
Utils.ForceKick(player, "Proxies are not allowed.", true, false);
- handler.Handled = true;
+ args.Handled = true;
return;
}
}
}
- Players[ply] = player;
+ Players[args.Who] = player;
}
- private void OnJoin(int ply, HandledEventArgs handler)
+ private void OnJoin(JoinEventArgs args)
{
- var player = Players[ply];
+ var player = Players[args.Who];
if (player == null)
{
- handler.Handled = true;
+ args.Handled = true;
return;
}
@@ -848,16 +849,16 @@ namespace TShockAPI
DateTime exp;
string duration = DateTime.TryParse(ban.Expiration, out exp) ? String.Format("until {0}", exp.ToString("G")) : "forever";
Utils.ForceKick(player, string.Format("You are banned {0}: {1}", duration, ban.Reason), true, false);
- handler.Handled = true;
+ args.Handled = true;
}
}
}
- private void OnLeave(int ply)
+ private void OnLeave(LeaveEventArgs args)
{
- var tsplr = Players[ply];
- Players[ply] = null;
+ var tsplr = Players[args.Who];
+ Players[args.Who] = null;
if (tsplr != null && tsplr.ReceivedInfo)
{
@@ -880,15 +881,15 @@ namespace TShockAPI
}
}
- private void OnChat(messageBuffer msg, int ply, string text, HandledEventArgs e)
+ private void OnChat(ServerChatEventArgs args)
{
- if (e.Handled)
+ if (args.Handled)
return;
- var tsplr = Players[msg.whoAmI];
+ var tsplr = Players[args.Who];
if (tsplr == null)
{
- e.Handled = true;
+ args.Handled = true;
return;
}
@@ -898,11 +899,11 @@ namespace TShockAPI
return;
}*/
- if (text.StartsWith("/"))
+ if (args.Text.StartsWith("/"))
{
try
{
- e.Handled = Commands.HandleCommand(tsplr, text);
+ args.Handled = Commands.HandleCommand(tsplr, args.Text);
}
catch (Exception ex)
{
@@ -913,18 +914,18 @@ namespace TShockAPI
else if (!tsplr.mute && !TShock.Config.EnableChatAboveHeads)
{
Utils.Broadcast(
- String.Format(Config.ChatFormat, tsplr.Group.Name, tsplr.Group.Prefix, tsplr.Name, tsplr.Group.Suffix, text),
+ String.Format(Config.ChatFormat, tsplr.Group.Name, tsplr.Group.Prefix, tsplr.Name, tsplr.Group.Suffix, args.Text),
tsplr.Group.R, tsplr.Group.G, tsplr.Group.B);
- e.Handled = true;
+ args.Handled = true;
} else if (!tsplr.mute && TShock.Config.EnableChatAboveHeads)
{
- Utils.Broadcast(ply, String.Format(Config.ChatAboveHeadsFormat, tsplr.Group.Name, tsplr.Group.Prefix, tsplr.Name, tsplr.Group.Suffix, text), tsplr.Group.R, tsplr.Group.G, tsplr.Group.B);
- e.Handled = true;
+ Utils.Broadcast(args.Who, String.Format(Config.ChatAboveHeadsFormat, tsplr.Group.Name, tsplr.Group.Prefix, tsplr.Name, tsplr.Group.Suffix, args.Text), tsplr.Group.R, tsplr.Group.G, tsplr.Group.B);
+ args.Handled = true;
}
else if (tsplr.mute)
{
tsplr.SendErrorMessage("You are muted!");
- e.Handled = true;
+ args.Handled = true;
}
}
@@ -933,9 +934,9 @@ namespace TShockAPI
///
///
///
- private void ServerHooks_OnCommand(string text, HandledEventArgs e)
+ private void ServerHooks_OnCommand(CommandEventArgs args)
{
- if (e.Handled)
+ if (args.Handled)
return;
// Damn you ThreadStatic and Redigit
@@ -948,7 +949,7 @@ namespace TShockAPI
WorldGen.genRand = new Random();
}
- if (text.StartsWith("playing") || text.StartsWith("/playing"))
+ if (args.Command.StartsWith("playing") || args.Command.StartsWith("/playing"))
{
int count = 0;
foreach (TSPlayer player in Players)
@@ -962,20 +963,20 @@ namespace TShockAPI
}
TSPlayer.Server.SendInfoMessage(string.Format("{0} players connected.", count));
}
- else if (text == "autosave")
+ else if (args.Command == "autosave")
{
Main.autoSave = Config.AutoSave = !Config.AutoSave;
Log.ConsoleInfo("AutoSave " + (Config.AutoSave ? "Enabled" : "Disabled"));
}
- else if (text.StartsWith("/"))
+ else if (args.Command.StartsWith("/"))
{
- Commands.HandleCommand(TSPlayer.Server, text);
+ Commands.HandleCommand(TSPlayer.Server, args.Command);
}
else
{
- Commands.HandleCommand(TSPlayer.Server, "/" + text);
+ Commands.HandleCommand(TSPlayer.Server, "/" + args.Command);
}
- e.Handled = true;
+ args.Handled = true;
}
private void OnGetData(GetDataEventArgs e)
@@ -1000,7 +1001,7 @@ namespace TShockAPI
return;
}
- if (player.RequiresPassword && type != PacketTypes.PasswordSend)
+ if (player.RequiresPassword/* && type != PacketTypes.PasswordSend*/)
{
e.Handled = true;
return;
@@ -1027,12 +1028,12 @@ namespace TShockAPI
}
}
- private void OnGreetPlayer(int who, HandledEventArgs e)
+ private void OnGreetPlayer(GreetPlayerEventArgs args)
{
- var player = Players[who];
+ var player = Players[args.Who];
if (player == null)
{
- e.Handled = true;
+ args.Handled = true;
return;
}
player.LoginMS= DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
@@ -1075,7 +1076,7 @@ namespace TShockAPI
player.Teleport((int) pos.X, (int) pos.Y + 3);
}}
- e.Handled = true;
+ args.Handled = true;
}
private void NpcHooks_OnStrikeNpc(NpcStrikeEventArgs e)
@@ -1152,7 +1153,7 @@ namespace TShockAPI
private void NetHooks_SendData(SendDataEventArgs e)
{
- if (e.MsgID == PacketTypes.Disconnect)
+ if (e.MsgId == PacketTypes.Disconnect)
{
Action senddisconnect = (sock, str) =>
{
@@ -1182,7 +1183,7 @@ namespace TShockAPI
}
e.Handled = true;
}
- if (e.MsgID == PacketTypes.WorldInfo)
+ if (e.MsgId == PacketTypes.WorldInfo)
{
if (e.remoteClient == -1) return;
var player = Players[e.remoteClient];
diff --git a/TShockAPI/TShockAPI.csproj b/TShockAPI/TShockAPI.csproj
index 880e7c76..6fb68f1c 100644
--- a/TShockAPI/TShockAPI.csproj
+++ b/TShockAPI/TShockAPI.csproj
@@ -79,9 +79,6 @@
-
-
-
diff --git a/TShockAPI/Utils.cs b/TShockAPI/Utils.cs
index 4e3fdf1d..1f301b3f 100644
--- a/TShockAPI/Utils.cs
+++ b/TShockAPI/Utils.cs
@@ -329,7 +329,7 @@ namespace TShockAPI
/// The state of the tile
private bool TileClear(int tileX, int tileY)
{
- return !Main.tile[tileX, tileY].active;
+ return !Main.tile[tileX, tileY].active();
}
///
diff --git a/TerrariaServerBins/TerrariaServer.exe b/TerrariaServerBins/TerrariaServer.exe
index c9081b0e..aef187af 100644
Binary files a/TerrariaServerBins/TerrariaServer.exe and b/TerrariaServerBins/TerrariaServer.exe differ