This is the first commit in a pattern that I'd like to follow. The concept is that we specifically create handlers for things that are "illegal per se." That is, there are no possible situations (in the current protocol) where a packet of this type is received from a client. In this case, I moved the emoji handler out of the Handler just for emoji, since it seemed like an obvious case. The rule of thumb is simple: if something is illegal per se, there should be no possible way in the vanilla client to achieve this result. If a player sends this combination of packets they *must* be hacking. Not that there is a 99.9% chance they're hacking, but that there is a 100% unambiguous chance that they're hacking. Something is illegal per se if it can only be created by a hacked client. If there's a crashing bug that a normal player can do with a complex series of vanilla events, that is not illegal per se. The goal of this namespace and class of handlers is to handle exactly one type of protocol violation, and remove the packet accordingly. If it is ever reported that the packet can be sent from a vanilla client, the check must be removed as it is no longer a per se violation of the protocol.
243 lines
11 KiB
XML
243 lines
11 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<PropertyGroup>
|
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
<ProjectGuid>{49606449-072B-4CF5-8088-AA49DA586694}</ProjectGuid>
|
|
<OutputType>Library</OutputType>
|
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
<RootNamespace>TShockAPI</RootNamespace>
|
|
<AssemblyName>TShockAPI</AssemblyName>
|
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
|
<FileAlignment>512</FileAlignment>
|
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
|
<PublishUrl>publish\</PublishUrl>
|
|
<Install>true</Install>
|
|
<InstallFrom>Disk</InstallFrom>
|
|
<UpdateEnabled>false</UpdateEnabled>
|
|
<UpdateMode>Foreground</UpdateMode>
|
|
<UpdateInterval>7</UpdateInterval>
|
|
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
|
<UpdatePeriodically>false</UpdatePeriodically>
|
|
<UpdateRequired>false</UpdateRequired>
|
|
<MapFileExtensions>true</MapFileExtensions>
|
|
<ApplicationRevision>0</ApplicationRevision>
|
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
|
<UseApplicationTrust>false</UseApplicationTrust>
|
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
|
<TargetFrameworkProfile />
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
<DebugSymbols>true</DebugSymbols>
|
|
<DebugType>full</DebugType>
|
|
<Optimize>false</Optimize>
|
|
<OutputPath>bin\Debug\</OutputPath>
|
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<WarningLevel>4</WarningLevel>
|
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
|
<DocumentationFile>bin\Debug\TShockAPI.XML</DocumentationFile>
|
|
<PlatformTarget>x86</PlatformTarget>
|
|
<Prefer32Bit>false</Prefer32Bit>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
<DebugType>pdbonly</DebugType>
|
|
<Optimize>true</Optimize>
|
|
<OutputPath>bin\Release\</OutputPath>
|
|
<DefineConstants>TRACE;COMPAT_SIGS</DefineConstants>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<WarningLevel>4</WarningLevel>
|
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
|
<DocumentationFile>bin\Release\TShockAPI.XML</DocumentationFile>
|
|
<PlatformTarget>x86</PlatformTarget>
|
|
<Prefer32Bit>false</Prefer32Bit>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<Reference Include="BCrypt.Net, Version=0.1.4141.31969, Culture=neutral, PublicKeyToken=f3bc8f8c31beeb49, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\BCrypt.Net.0.1.0\lib\net35\BCrypt.Net.dll</HintPath>
|
|
<Private>True</Private>
|
|
</Reference>
|
|
<Reference Include="HttpServer">
|
|
<HintPath>..\prebuilts\HttpServer.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="Mono.Data.Sqlite">
|
|
<HintPath>..\prebuilts\Mono.Data.Sqlite.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll</HintPath>
|
|
<Private>True</Private>
|
|
</Reference>
|
|
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="OTAPI">
|
|
<SpecificVersion>False</SpecificVersion>
|
|
<HintPath Condition="Exists('..\TerrariaServerAPI\TerrariaServerAPI\bin\$(ConfigurationName)\OTAPI.dll')">..\TerrariaServerAPI\TerrariaServerAPI\bin\$(ConfigurationName)\OTAPI.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="System" />
|
|
<Reference Include="System.Data" />
|
|
<Reference Include="System.Net.Http" />
|
|
<Reference Include="System.Web" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Compile Include="BackupManager.cs" />
|
|
<Compile Include="CLI\CommandLineParser.cs" />
|
|
<Compile Include="CLI\FlagSet.cs" />
|
|
<Compile Include="Configuration\ConfigFile.cs" />
|
|
<Compile Include="Configuration\IConfigFile.cs" />
|
|
<Compile Include="Configuration\TShockConfig.cs" />
|
|
<Compile Include="DB\ProjectileManager.cs" />
|
|
<Compile Include="DB\RegionManager.cs" />
|
|
<Compile Include="DB\ResearchDatastore.cs" />
|
|
<Compile Include="DB\TileManager.cs" />
|
|
<Compile Include="Extensions\ExceptionExt.cs" />
|
|
<Compile Include="Handlers\DisplayDollItemSyncHandler.cs" />
|
|
<Compile Include="Handlers\IPacketHandler.cs" />
|
|
<Compile Include="Handlers\NetModules\AmbienceHandler.cs" />
|
|
<Compile Include="Handlers\NetModules\BestiaryHandler.cs" />
|
|
<Compile Include="Handlers\NetModules\CreativePowerHandler.cs" />
|
|
<Compile Include="Handlers\NetModules\CreativeUnlocksHandler.cs" />
|
|
<Compile Include="Handlers\NetModules\INetModuleHandler.cs" />
|
|
<Compile Include="Handlers\NetModules\LiquidHandler.cs" />
|
|
<Compile Include="Handlers\NetModules\NetModulePacketHandler.cs" />
|
|
<Compile Include="Handlers\NetModules\PylonHandler.cs" />
|
|
<Compile Include="Handlers\EmojiHandler.cs" />
|
|
<Compile Include="Handlers\LandGolfBallInCupHandler.cs" />
|
|
<Compile Include="Handlers\RequestTileEntityInteractionHandler.cs" />
|
|
<Compile Include="Handlers\SendTileRectHandler.cs" />
|
|
<Compile Include="Handlers\SyncTilePickingHandler.cs" />
|
|
<Compile Include="Handlers\IllegalPerSe\EmojiPlayerMismatch.cs" />
|
|
<Compile Include="Hooks\AccountHooks.cs" />
|
|
<Compile Include="Hooks\GeneralHooks.cs" />
|
|
<Compile Include="Hooks\PlayerHooks.cs" />
|
|
<Compile Include="Hooks\RegionHooks.cs" />
|
|
<Compile Include="ILog.cs" />
|
|
<Compile Include="Localization\EnglishLanguage.cs" />
|
|
<Compile Include="Models\PlayerUpdate\ControlSet.cs" />
|
|
<Compile Include="Models\PlayerUpdate\MiscDataSet1.cs" />
|
|
<Compile Include="Models\PlayerUpdate\MiscDataSet2.cs" />
|
|
<Compile Include="Models\PlayerUpdate\MiscDataSet3.cs" />
|
|
<Compile Include="Models\Projectiles\NewProjectileData.cs" />
|
|
<Compile Include="NetItem.cs" />
|
|
<Compile Include="PlayerData.cs" />
|
|
<Compile Include="RegionHandler.cs" />
|
|
<Compile Include="Sockets\LinuxTcpSocket.cs" />
|
|
<Compile Include="SqlLog.cs" />
|
|
<Compile Include="TextLog.cs" />
|
|
<Compile Include="PaginationTools.cs" />
|
|
<Compile Include="Rest\RestPermissions.cs" />
|
|
<Compile Include="SaveManager.cs" />
|
|
<Compile Include="DB\BanManager.cs" />
|
|
<Compile Include="DB\CharacterManager.cs" />
|
|
<Compile Include="DB\IQueryBuilder.cs" />
|
|
<Compile Include="DB\ItemManager.cs" />
|
|
<Compile Include="DB\SqlColumn.cs" />
|
|
<Compile Include="DB\SqlTable.cs" />
|
|
<Compile Include="DB\SqlValue.cs" />
|
|
<Compile Include="Extensions\DbExt.cs" />
|
|
<Compile Include="DB\GroupManager.cs" />
|
|
<Compile Include="DB\UserManager.cs" />
|
|
<Compile Include="Extensions\RandomExt.cs" />
|
|
<Compile Include="Extensions\StringExt.cs" />
|
|
<Compile Include="GeoIPCountry.cs" />
|
|
<Compile Include="HandlerList.cs" />
|
|
<Compile Include="IPackable.cs" />
|
|
<Compile Include="Commands.cs" />
|
|
<Compile Include="ConfigFile.cs" />
|
|
<Compile Include="FileTools.cs" />
|
|
<Compile Include="GetDataHandlers.cs" />
|
|
<Compile Include="Group.cs" />
|
|
<Compile Include="Extensions\LinqExt.cs" />
|
|
<Compile Include="Net\BaseMsg.cs" />
|
|
<Compile Include="Net\DisconnectMsg.cs" />
|
|
<Compile Include="Net\NetTile.cs" />
|
|
<Compile Include="Net\ProjectileRemoveMsg.cs" />
|
|
<Compile Include="Net\SpawnMsg.cs" />
|
|
<Compile Include="Net\WorldInfoMsg.cs" />
|
|
<Compile Include="Permissions.cs" />
|
|
<Compile Include="DB\RememberedPosManager.cs" />
|
|
<Compile Include="Bouncer.cs" />
|
|
<Compile Include="ItemBans.cs" />
|
|
<Compile Include="Resources.Designer.cs">
|
|
<AutoGen>True</AutoGen>
|
|
<DesignTime>True</DesignTime>
|
|
<DependentUpon>Resources.resx</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="Rest\Rest.cs" />
|
|
<Compile Include="Rest\RestCommand.cs" />
|
|
<Compile Include="Rest\RestManager.cs" />
|
|
<Compile Include="Rest\RestObject.cs" />
|
|
<Compile Include="Rest\RestVerbs.cs" />
|
|
<Compile Include="Rest\SecureRest.cs" />
|
|
<Compile Include="Configuration\ServerSideConfig.cs" />
|
|
<Compile Include="TSServerPlayer.cs" />
|
|
<Compile Include="Utils.cs" />
|
|
<Compile Include="TShock.cs" />
|
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
<Compile Include="TSPlayer.cs" />
|
|
<Compile Include="UpdateManager.cs" />
|
|
<Compile Include="DB\WarpsManager.cs" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<None Include="app.config" />
|
|
<None Include="packages.config" />
|
|
<None Include="TShockAPI.licenseheader" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<EmbeddedResource Include="Resources.resx">
|
|
<Generator>ResXFileCodeGenerator</Generator>
|
|
<SubType>Designer</SubType>
|
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
|
</EmbeddedResource>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<BootstrapperPackage Include=".NETFramework,Version=v4.0">
|
|
<Visible>False</Visible>
|
|
<ProductName>Microsoft .NET Framework 4 %28x86 and x64%29</ProductName>
|
|
<Install>true</Install>
|
|
</BootstrapperPackage>
|
|
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
|
<Visible>False</Visible>
|
|
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
|
|
<Install>false</Install>
|
|
</BootstrapperPackage>
|
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
|
<Visible>False</Visible>
|
|
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
|
<Install>false</Install>
|
|
</BootstrapperPackage>
|
|
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
|
|
<Visible>False</Visible>
|
|
<ProductName>Windows Installer 3.1</ProductName>
|
|
<Install>true</Install>
|
|
</BootstrapperPackage>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\TerrariaServerAPI\TerrariaServerAPI\TerrariaServerAPI.csproj">
|
|
<Project>{6877506e-adc6-4142-98a6-79e4fa02855a}</Project>
|
|
<Name>TerrariaServerAPI</Name>
|
|
</ProjectReference>
|
|
</ItemGroup>
|
|
<ItemGroup />
|
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
|
<PropertyGroup>
|
|
<PreBuildEvent>
|
|
</PreBuildEvent>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<PostBuildEvent>
|
|
</PostBuildEvent>
|
|
</PropertyGroup>
|
|
<ProjectExtensions>
|
|
<VisualStudio>
|
|
<UserProperties BuildVersion_IncrementBeforeBuild="False" BuildVersion_StartDate="2011/6/17" BuildVersion_BuildVersioningStyle="None.None.None.MonthAndDayStamp" BuildVersion_BuildAction="Both" BuildVersion_UpdateFileVersion="True" BuildVersion_UpdateAssemblyVersion="True" />
|
|
</VisualStudio>
|
|
</ProjectExtensions>
|
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
|
Other similar extension points exist, see Microsoft.Common.targets.
|
|
<Target Name="BeforeBuild">
|
|
</Target>
|
|
<Target Name="AfterBuild">
|
|
</Target>
|
|
-->
|
|
</Project>
|