From aa099f7f1b0414c7fccbef6c3954a9bc62e30986 Mon Sep 17 00:00:00 2001 From: Tim Potze Date: Wed, 29 Apr 2026 23:08:36 +0200 Subject: [PATCH 01/15] moved legacy source to src/legacy --- .../legacy/Directory.Build.props | 17 +++++++++++++---- .../Callbacks/CallbackParameterBooleanTests.cs | 0 .../Callbacks/CallbackParameterIntTests.cs | 0 .../Callbacks/CallbackParameterSingleTests.cs | 0 .../Callbacks/CallbackTests.cs | 0 .../CoreLogGameModeBuilderExtensionsTests.cs | 0 .../EncodingGameModeBuilderExtensionsTests.cs | 0 .../GameModeClientHelperTests.cs | 0 .../HostedGameModeClientTests.cs | 0 .../Hosting/InteropTests.cs | 0 ...soleOutputGameModeBuilderExtensionsTests.cs | 0 .../SampSharp.Core.UnitTests.csproj | 0 .../TestHelpers/ApiScope.cs | 0 .../TestHelpers/GameModeClientScope.cs | 0 .../TestHelpers/InteropStructs.cs | 0 .../SampSharp.Core/AssemblyAttributes.cs | 0 .../SampSharp.Core/Callbacks/Callback.cs | 0 .../Callbacks/CallbackAttribute.cs | 0 .../Callbacks/CallbackParameterBoolean.cs | 0 .../Callbacks/CallbackParameterBooleanArray.cs | 0 .../Callbacks/CallbackParameterInt.cs | 0 .../Callbacks/CallbackParameterIntArray.cs | 0 .../Callbacks/CallbackParameterSingle.cs | 0 .../Callbacks/CallbackParameterSingleArray.cs | 0 .../Callbacks/CallbackParameterString.cs | 0 .../Callbacks/CallbackRegistrationException.cs | 0 .../Callbacks/ICallbackArrayParameter.cs | 0 .../Callbacks/ICallbackParameter.cs | 0 .../Callbacks/ParameterLengthAttribute.cs | 0 .../CodePages/CodePageEncoding.cs | 0 .../SampSharp.Core/CodePages/data/8859-1.dat | Bin .../SampSharp.Core/CodePages/data/8859-10.dat | Bin .../SampSharp.Core/CodePages/data/8859-11.dat | Bin .../SampSharp.Core/CodePages/data/8859-13.dat | Bin .../SampSharp.Core/CodePages/data/8859-14.dat | Bin .../SampSharp.Core/CodePages/data/8859-15.dat | Bin .../SampSharp.Core/CodePages/data/8859-16.dat | Bin .../SampSharp.Core/CodePages/data/8859-2.dat | Bin .../SampSharp.Core/CodePages/data/8859-3.dat | Bin .../SampSharp.Core/CodePages/data/8859-4.dat | Bin .../SampSharp.Core/CodePages/data/8859-5.dat | Bin .../SampSharp.Core/CodePages/data/8859-6.dat | Bin .../SampSharp.Core/CodePages/data/8859-7.dat | Bin .../SampSharp.Core/CodePages/data/8859-8.dat | Bin .../SampSharp.Core/CodePages/data/8859-9.dat | Bin .../SampSharp.Core/CodePages/data/cp1250.dat | Bin .../SampSharp.Core/CodePages/data/cp1251.dat | Bin .../SampSharp.Core/CodePages/data/cp1252.dat | Bin .../SampSharp.Core/CodePages/data/cp1253.dat | Bin .../SampSharp.Core/CodePages/data/cp1254.dat | Bin .../SampSharp.Core/CodePages/data/cp1255.dat | Bin .../SampSharp.Core/CodePages/data/cp1256.dat | Bin .../SampSharp.Core/CodePages/data/cp1257.dat | Bin .../SampSharp.Core/CodePages/data/cp1258.dat | Bin .../SampSharp.Core/CodePages/data/cp437.dat | Bin .../SampSharp.Core/CodePages/data/cp737.dat | Bin .../SampSharp.Core/CodePages/data/cp775.dat | Bin .../SampSharp.Core/CodePages/data/cp850.dat | Bin .../SampSharp.Core/CodePages/data/cp852.dat | Bin .../SampSharp.Core/CodePages/data/cp855.dat | Bin .../SampSharp.Core/CodePages/data/cp857.dat | Bin .../SampSharp.Core/CodePages/data/cp860.dat | Bin .../SampSharp.Core/CodePages/data/cp861.dat | Bin .../SampSharp.Core/CodePages/data/cp862.dat | Bin .../SampSharp.Core/CodePages/data/cp863.dat | Bin .../SampSharp.Core/CodePages/data/cp864.dat | Bin .../SampSharp.Core/CodePages/data/cp865.dat | Bin .../SampSharp.Core/CodePages/data/cp866.dat | Bin .../SampSharp.Core/CodePages/data/cp869.dat | Bin .../SampSharp.Core/CodePages/data/cp874.dat | Bin .../SampSharp.Core/CodePages/data/cp932.dat | Bin .../SampSharp.Core/CodePages/data/cp936.dat | Bin .../SampSharp.Core/CodePages/data/cp949.dat | Bin .../SampSharp.Core/CodePages/data/cp950.dat | Bin .../CoreLogGameModeBuilderExtensions.cs | 0 .../EncodingGameModeBuilderExtensions.cs | 0 .../SampSharp.Core/GameModeBuilder.cs | 0 .../SampSharp.Core/GameModeBuilderException.cs | 0 .../SampSharp.Core/GameModeClientException.cs | 0 .../SampSharp.Core/GameModeClientExtensions.cs | 0 .../GameModeNotRunningException.cs | 0 .../SampSharp.Core/GameModeRunnerFactory.cs | 0 .../SampSharp.Core/GameModeRunnerRun.cs | 0 .../SampSharp.Core/HostedGameModeClient.cs | 0 src/{ => legacy}/SampSharp.Core/Hosting/Amx.cs | 0 .../SampSharp.Core/Hosting/AmxCell.cs | 0 .../SampSharp.Core/Hosting/AmxError.cs | 0 .../SampSharp.Core/Hosting/AmxExport.cs | 0 .../SampSharp.Core/Hosting/Interop.cs | 0 .../SampSharp.Core/Hosting/PluginData.cs | 0 .../SampSharp.Core/Hosting/SampSharpApi.cs | 0 .../SampSharp.Core/IGameModeClient.cs | 0 .../SampSharp.Core/IGameModeProvider.cs | 0 .../SampSharp.Core/IGameModeRunner.cs | 0 .../SampSharp.Core/ISynchronizationProvider.cs | 0 .../SampSharp.Core/InternalStorage.cs | 0 .../SampSharp.Core/Logging/CoreLog.cs | 0 .../SampSharp.Core/Logging/CoreLogLevel.cs | 0 .../Natives/IlGeneratorExtensions.cs | 0 .../Natives/NativeIlGenContext.cs | 0 .../SampSharp.Core/Natives/NativeIlGenParam.cs | 0 .../Natives/NativeObjectProxyFactoryImpl.cs | 0 .../NativeObjects/INativeObjectProxyFactory.cs | 0 .../NativeObjects/NativeMethodAttribute.cs | 0 .../NativeNotImplementedException.cs | 0 .../NativeObjectIdentifiersAttribute.cs | 0 .../NativeObjects/NativeObjectProxyFactory.cs | 0 .../NativeObjects/NativeObjectSingleton`1.cs | 0 .../NativeObjects/NativePropertyAttribute.cs | 0 .../Natives/NativeParameterType.cs | 0 .../SampSharp.Core/Natives/NativeUtils.cs | 0 .../SampSharp.Core/Natives/ValueConverter.cs | 0 .../SampSharp.Core/Natives/VarArgsState.cs | 0 .../RconFixGameModeBuilderExtensions.cs | 0 ...ctConsoleOutputGameModeBuilderExtensions.cs | 0 .../SampSharp.Core/SampSharp.Core.csproj | 0 .../SampSharp.Core.csproj.DotSettings | 0 .../SampSharp.Core/ServerLogWriter.cs | 0 .../Threading/MainThreadTaskAwaiter.cs | 0 .../SampSharpSynchronizationContext.cs | 0 .../Threading/SyncToMainThreadTask.cs | 0 .../SampSharp.Core/Threading/TaskHelper.cs | 0 .../UnhandledExceptionEventArgs.cs | 0 .../legacy/SampSharp.Documentation.shfbproj | 14 +++++++------- .../legacy/SampSharp.Documentation.sln | 0 .../Annotations/Annotations.cs | 0 .../SampSharp.Entities/Components/Component.cs | 0 .../Components/NativeComponent.cs | 0 .../SampSharp.Entities/EcsBuilder.cs | 0 .../EcsBuilderEventExtensions.cs | 0 .../SampSharp.Entities/EcsBuilderExtensions.cs | 0 .../EcsBuilderUseMiddlewareExtensions.cs | 0 .../SampSharp.Entities/EcsManager.cs | 0 .../Entities/EntityCreationException.cs | 0 .../Entities/EntityExtensions.cs | 0 .../SampSharp.Entities/Entities/EntityId.cs | 0 .../Entities/EntityManager.cs | 0 .../Entities/EntityNotFoundException.cs | 0 .../Entities/EntityTypeAttribute.cs | 0 .../Entities/EntityTypeRegistry.cs | 0 .../Entities/IEntityManager.cs | 0 .../Entities/InvalidEntityArgumentException.cs | 0 .../Events/EventAttribute.cs | 0 .../SampSharp.Entities/Events/EventContext.cs | 0 .../Events/EventContextImpl.cs | 0 .../SampSharp.Entities/Events/EventDelegate.cs | 0 .../SampSharp.Entities/Events/EventHelper.cs | 0 .../Events/EventScopeMiddleware.cs | 0 .../SampSharp.Entities/Events/EventService.cs | 0 .../Events/EventSignatureException.cs | 0 .../SampSharp.Entities/Events/IEventService.cs | 0 .../GameModeBuilderExtensions.cs | 0 .../SampSharp.Entities/IEcsBuilder.cs | 0 .../SampSharp.Entities/IStartup.cs | 0 .../SampSharp.Entities/Natives/INativeProxy.cs | 0 .../SampSharp.Entities/Natives/NativeProxy.cs | 0 .../SAMP/Commands/CommandInfo.cs | 0 .../SAMP/Commands/CommandParameterAttribute.cs | 0 .../SAMP/Commands/CommandParameterInfo.cs | 0 .../SAMP/Commands/CommandServiceBase.cs | 0 .../SAMP/Commands/ICommandMethodInfo.cs | 0 .../SAMP/Commands/IPlayerCommandService.cs | 0 .../SAMP/Commands/IRconCommandService.cs | 0 .../SAMP/Commands/InvokeResponse.cs | 0 .../SAMP/Commands/InvokeResult.cs | 0 .../SAMP/Commands/Parsers/DoubleParser.cs | 0 .../SAMP/Commands/Parsers/EntityParser.cs | 0 .../SAMP/Commands/Parsers/EnumParser.cs | 0 .../SAMP/Commands/Parsers/FloatParser.cs | 0 .../Parsers/ICommandParameterParser.cs | 0 .../SAMP/Commands/Parsers/IntParser.cs | 0 .../SAMP/Commands/Parsers/PlayerParser.cs | 0 .../SAMP/Commands/Parsers/StringParser.cs | 0 .../SAMP/Commands/Parsers/WordParser.cs | 0 .../SAMP/Commands/PlayerCommandAttribute.cs | 0 .../PlayerCommandProcessingMiddleware.cs | 0 .../SAMP/Commands/PlayerCommandService.cs | 0 .../SAMP/Commands/RconCommandAttribute.cs | 0 .../RconCommandProcessingMiddleware.cs | 0 .../SAMP/Commands/RconCommandService.cs | 0 .../SAMP/Components/Actor.cs | 0 .../SAMP/Components/GangZone.cs | 0 .../SAMP/Components/GlobalObject.cs | 0 .../SampSharp.Entities/SAMP/Components/Menu.cs | 0 .../SAMP/Components/Pickup.cs | 0 .../SAMP/Components/Player.cs | 0 .../SAMP/Components/PlayerObject.cs | 0 .../SAMP/Components/PlayerTextDraw.cs | 0 .../SAMP/Components/PlayerTextLabel.cs | 0 .../SAMP/Components/TextDraw.cs | 0 .../SAMP/Components/TextLabel.cs | 0 .../SAMP/Components/Vehicle.cs | 0 .../SampSharp.Entities/SAMP/Data/Color.cs | 0 .../SAMP/Data/ColorFormat.cs | 0 .../SampSharp.Entities/SAMP/Data/Matrix.cs | 0 .../SampSharp.Entities/SAMP/Data/Quaternion.cs | 0 .../SAMP/Data/SampEntities.cs | 0 .../SampSharp.Entities/SAMP/Data/SampLimits.cs | 0 .../SampSharp.Entities/SAMP/Data/Vector2.cs | 0 .../SampSharp.Entities/SAMP/Data/Vector3.cs | 0 .../SampSharp.Entities/SAMP/Data/Vector4.cs | 0 .../SAMP/Definitions/BodyPart.cs | 0 .../SAMP/Definitions/Bone.cs | 0 .../SAMP/Definitions/BulletHitType.cs | 0 .../SAMP/Definitions/CameraCut.cs | 0 .../SAMP/Definitions/CameraMode.cs | 0 .../SAMP/Definitions/CarModType.cs | 0 .../SAMP/Definitions/CheckpointType.cs | 0 .../SAMP/Definitions/ConnectionStatus.cs | 0 .../SAMP/Definitions/DialogStyle.cs | 0 .../SAMP/Definitions/DisconnectReason.cs | 0 .../SAMP/Definitions/EditObjectResponse.cs | 0 .../SAMP/Definitions/EnterExit.cs | 0 .../SAMP/Definitions/ExplosionType.cs | 0 .../SAMP/Definitions/FightStyle.cs | 0 .../SAMP/Definitions/Keys.cs | 0 .../SAMP/Definitions/MapIcon.cs | 0 .../SAMP/Definitions/MapIconType.cs | 0 .../SAMP/Definitions/ObjectMaterialSize.cs | 0 .../Definitions/ObjectMaterialTextAlign.cs | 0 .../SAMP/Definitions/ObjectType.cs | 0 .../SAMP/Definitions/PickupType.cs | 0 .../SAMP/Definitions/PlayerClickSource.cs | 0 .../SAMP/Definitions/PlayerMarkersMode.cs | 0 .../SAMP/Definitions/PlayerRecordingType.cs | 0 .../SAMP/Definitions/PlayerState.cs | 0 .../SAMP/Definitions/ServerVarType.cs | 0 .../SAMP/Definitions/ShopName.cs | 0 .../SAMP/Definitions/SpecialAction.cs | 0 .../SAMP/Definitions/SpectateMode.cs | 0 .../SAMP/Definitions/TextDrawAlignment.cs | 0 .../SAMP/Definitions/TextDrawFont.cs | 0 .../SAMP/Definitions/VehicleCategory.cs | 0 .../SAMP/Definitions/VehicleColor.cs | 0 .../SAMP/Definitions/VehicleModelInfoType.cs | 0 .../SAMP/Definitions/VehicleModelType.cs | 0 .../SAMP/Definitions/VehicleParameterValue.cs | 0 .../SAMP/Definitions/Weapon.cs | 0 .../SAMP/Definitions/WeaponSkill.cs | 0 .../SAMP/Definitions/WeaponState.cs | 0 .../SAMP/Dialogs/DialogResponse.cs | 0 .../SAMP/Dialogs/DialogResult.cs | 0 .../SAMP/Dialogs/DialogRowCollection.cs | 0 .../SAMP/Dialogs/DialogService.cs | 0 .../SAMP/Dialogs/DialogSystem.cs | 0 .../SampSharp.Entities/SAMP/Dialogs/IDialog.cs | 0 .../SAMP/Dialogs/IDialogRow.cs | 0 .../SAMP/Dialogs/IDialogService.cs | 0 .../SAMP/Dialogs/InputDialog.cs | 0 .../SAMP/Dialogs/InputDialogResponse.cs | 0 .../SAMP/Dialogs/ListDialog.cs | 0 .../SAMP/Dialogs/ListDialogResponse.cs | 0 .../SAMP/Dialogs/ListDialogRow.cs | 0 .../SAMP/Dialogs/ListDialogRowCollection.cs | 0 .../SAMP/Dialogs/MessageDialog.cs | 0 .../SAMP/Dialogs/MessageDialogResponse.cs | 0 .../SAMP/Dialogs/TablistDialog.cs | 0 .../SAMP/Dialogs/TablistDialogResponse.cs | 0 .../SAMP/Dialogs/TablistDialogRow.cs | 0 .../SAMP/Dialogs/TablistDialogRowCollection.cs | 0 .../SAMP/Dialogs/VisibleDialog.cs | 0 .../SampSharp.Entities/SAMP/MathHelper.cs | 0 .../ArgumentsOverrideEventContext.cs | 0 .../SAMP/Middleware/EntityMiddleware.cs | 0 .../Middleware/PlayerClickMapMiddleware.cs | 0 .../SAMP/Middleware/PlayerConnectMiddleware.cs | 0 .../Middleware/PlayerDisconnectMiddleware.cs | 0 .../PlayerEditAttachedObjectMiddleware.cs | 0 .../Middleware/PlayerEditObjectMiddleware.cs | 0 .../SAMP/Middleware/PlayerObjectMiddleware.cs | 0 .../Middleware/PlayerSelectObjectMiddleware.cs | 0 .../Middleware/PlayerTextDrawMiddleware.cs | 0 .../Middleware/PlayerWeaponShotMiddleware.cs | 0 .../SAMP/Middleware/TextDrawClickMiddleware.cs | 0 .../UnoccupiedVehicleUpdateMiddleware.cs | 0 .../NativeComponents/BaseNativeComponent.cs | 0 .../SAMP/NativeComponents/NativeActor.cs | 0 .../SAMP/NativeComponents/NativeGangZone.cs | 0 .../SAMP/NativeComponents/NativeMenu.cs | 0 .../SAMP/NativeComponents/NativeObject.cs | 0 .../SAMP/NativeComponents/NativePickup.cs | 0 .../SAMP/NativeComponents/NativePlayer.cs | 0 .../NativeComponents/NativePlayerObject.cs | 0 .../NativeComponents/NativePlayerTextDraw.cs | 0 .../NativeComponents/NativePlayerTextLabel.cs | 0 .../SAMP/NativeComponents/NativeTextDraw.cs | 0 .../SAMP/NativeComponents/NativeTextLabel.cs | 0 .../SAMP/NativeComponents/NativeVehicle.cs | 0 .../SAMP/PlayerExtensions.cs | 0 .../SAMP/SampEcsBuilderExtensions.cs | 0 .../SAMP/SampLimitException.cs | 0 .../SAMP/Services/IServerService.cs | 0 .../SAMP/Services/IVehicleInfoService.cs | 0 .../SAMP/Services/IWorldService.cs | 0 .../SAMP/Services/ServerService.cs | 0 .../SAMP/Services/ServerServiceNative.cs | 0 .../SAMP/Services/VehicleInfoService.cs | 0 .../SAMP/Services/VehicleInfoServiceNative.cs | 0 .../SAMP/Services/WorldService.cs | 0 .../SAMP/Services/WorldServiceNative.cs | 0 .../SAMP/VariableCollection.cs | 0 .../SampSharp.Entities.csproj | 0 .../SampSharp.Entities.csproj.DotSettings | 0 .../ServiceCollectionExtensions.cs | 0 .../SampSharp.Entities/Systems/ISystem.cs | 0 .../Systems/ISystemRegistry.cs | 0 .../Systems/ITickingSystem.cs | 0 .../Systems/SystemRegistry.cs | 0 .../Systems/SystemRegistryException.cs | 0 .../Systems/SystemTypeWrapper.cs | 0 .../SampSharp.Entities/Timers/ITimerService.cs | 0 .../Timers/TimerAttribute.cs | 0 .../SampSharp.Entities/Timers/TimerInfo.cs | 0 .../Timers/TimerReference.cs | 0 .../Timers/TimerServiceExtensions.cs | 0 .../SampSharp.Entities/Timers/TimerSystem.cs | 0 .../Utilities/AssemblyScanner.cs | 0 .../Utilities/IRecyclable.cs | 0 .../Utilities/MethodInvoker.cs | 0 .../Utilities/MethodInvokerFactory.cs | 0 .../Utilities/MethodParameterSource.cs | 0 .../Utilities/RecyclePool.cs | 0 .../SampSharp.GameMode/BaseMode.Internal.cs | 0 .../SampSharp.GameMode/BaseMode.callbacks.cs | 0 .../SampSharp.GameMode/BaseMode.cs | 0 .../SampSharp.GameMode/BaseMode.events.cs | 0 .../SampSharp.GameMode/BaseMode.functions.cs | 0 .../Controllers/ActorController.cs | 0 .../Controllers/BasePlayerController.cs | 0 .../Controllers/BaseVehicleController.cs | 0 .../Controllers/CommandController.cs | 0 .../Controllers/ControllerAttribute.cs | 0 .../Controllers/ControllerCollection.cs | 0 .../Controllers/DialogController.cs | 0 .../Controllers/GangZoneController.cs | 0 .../Controllers/GlobalObjectController.cs | 0 .../Controllers/IController.cs | 0 .../Controllers/IEventListener.cs | 0 .../Controllers/IGameServiceProvider.cs | 0 .../Controllers/ITypeProvider.cs | 0 .../Controllers/MenuController.cs | 0 .../Controllers/PickupController.cs | 0 .../Controllers/PlayerObjectController.cs | 0 .../Controllers/PlayerTextDrawController.cs | 0 .../Controllers/PlayerTextLabelController.cs | 0 .../Controllers/TextDrawController.cs | 0 .../Controllers/TextLabelController.cs | 0 .../Controllers/TimerController.cs | 0 .../SampSharp.GameMode/Definitions/BodyPart.cs | 0 .../SampSharp.GameMode/Definitions/Bone.cs | 0 .../Definitions/BulletHitType.cs | 0 .../Definitions/CameraCut.cs | 0 .../Definitions/CameraMode.cs | 0 .../Definitions/CarModType.cs | 0 .../Definitions/CheckpointType.cs | 0 .../Definitions/ConnectionStatus.cs | 0 .../Definitions/DialogButton.cs | 0 .../Definitions/DialogStyle.cs | 0 .../Definitions/DisconnectReason.cs | 0 .../Definitions/EditObjectResponse.cs | 0 .../Definitions/EnterExit.cs | 0 .../Definitions/ExplosionType.cs | 0 .../Definitions/FightStyle.cs | 0 .../SampSharp.GameMode/Definitions/Keys.cs | 0 .../SampSharp.GameMode/Definitions/MapIcon.cs | 0 .../Definitions/MapIconType.cs | 0 .../Definitions/ObjectMaterialSize.cs | 0 .../Definitions/ObjectMaterialTextAlign.cs | 0 .../Definitions/ObjectType.cs | 0 .../Definitions/PickupType.cs | 0 .../Definitions/PlayerClickSource.cs | 0 .../Definitions/PlayerMarkersMode.cs | 0 .../Definitions/PlayerRecordingType.cs | 0 .../Definitions/PlayerState.cs | 0 .../Definitions/ServerVarType.cs | 0 .../SampSharp.GameMode/Definitions/ShopName.cs | 0 .../Definitions/SpecialAction.cs | 0 .../Definitions/SpectateMode.cs | 0 .../Definitions/TextDrawAlignment.cs | 0 .../Definitions/TextDrawFont.cs | 0 .../Definitions/VehicleCategory.cs | 0 .../Definitions/VehicleColor.cs | 0 .../Definitions/VehicleModelInfoType.cs | 0 .../Definitions/VehicleModelType.cs | 0 .../Definitions/VehicleParameterValue.cs | 0 .../SampSharp.GameMode/Definitions/Weapon.cs | 0 .../Definitions/WeaponSkill.cs | 0 .../Definitions/WeaponState.cs | 0 .../Display/Dialog.Internal.cs | 0 .../SampSharp.GameMode/Display/Dialog.cs | 0 .../SampSharp.GameMode/Display/InputDialog.cs | 0 .../SampSharp.GameMode/Display/ListDialog.cs | 0 .../SampSharp.GameMode/Display/ListDialog`1.cs | 0 .../Display/Menu.Internal.cs | 0 .../SampSharp.GameMode/Display/Menu.cs | 0 .../SampSharp.GameMode/Display/MenuColumn.cs | 0 .../SampSharp.GameMode/Display/MenuRow.cs | 0 .../Display/MessageDialog.cs | 0 .../Display/PlayerTextDraw.Internal.cs | 0 .../Display/PlayerTextDraw.cs | 0 .../Display/TablistDialog.cs | 0 .../Display/TextDraw.Internal.cs | 0 .../SampSharp.GameMode/Display/TextDraw.cs | 0 .../Events/CancelableEventArgs.cs | 0 .../Events/ClickPlayerEventArgs.cs | 0 .../Events/ClickPlayerTextDrawEventArgs.cs | 0 .../Events/ClickTextDrawEventArgs.cs | 0 .../Events/CommandTextEventArgs.cs | 0 .../Events/ConnectionEventArgs.cs | 0 .../Events/DamageEventArgs.cs | 0 .../Events/DeathEventArgs.cs | 0 .../Events/DialogResponseEventArgs.cs | 0 .../Events/DialogResponseEventArgs`1.cs | 0 .../Events/DisconnectEventArgs.cs | 0 .../Events/EditAttachedObjectEventArgs.cs | 0 .../Events/EditGlobalObjectEventArgs.cs | 0 .../Events/EditPlayerObjectEventArgs.cs | 0 .../Events/EnterModShopEventArgs.cs | 0 .../Events/EnterVehicleEventArgs.cs | 0 .../Events/InteriorChangedEventArgs.cs | 0 .../Events/KeyStateChangedEventArgs.cs | 0 .../Events/MenuRowEventArgs.cs | 0 .../Events/PickUpPickupEventArgs.cs | 0 .../Events/PlayerEventArgs.cs | 0 .../Events/PlayerUpdateEventArgs.cs | 0 .../Events/PlayerVehicleEventArgs.cs | 0 .../Events/PositionEventArgs.cs | 0 .../SampSharp.GameMode/Events/RconEventArgs.cs | 0 .../Events/RconLoginAttemptEventArgs.cs | 0 .../Events/RequestClassEventArgs.cs | 0 .../Events/RequestSpawnEventArgs.cs | 0 .../Events/SelectGlobalObjectEventArgs.cs | 0 .../Events/SirenStateEventArgs.cs | 0 .../Events/SpawnEventArgs.cs | 0 .../Events/StateEventArgs.cs | 0 .../SampSharp.GameMode/Events/TextEventArgs.cs | 0 .../Events/TrailerEventArgs.cs | 0 .../Events/UnoccupiedVehicleEventArgs.cs | 0 .../Events/VehicleModEventArgs.cs | 0 .../Events/VehiclePaintjobEventArgs.cs | 0 .../Events/VehicleResprayedEventArgs.cs | 0 .../Events/WeaponShotEventArgs.cs | 0 .../SampSharp.GameMode/Extension.cs | 0 .../Factories/BaseVehicleFactory.Internal.cs | 0 .../Factories/BaseVehicleFactory.cs | 0 .../Factories/IVehicleFactory.cs | 0 .../GameModeServiceContainer.cs | 0 .../SampSharp.GameMode/Helpers/MathHelper.cs | 0 .../Helpers/NullableHelper.cs | 0 .../Helpers/VehicleParameterValueHelper.cs | 0 .../SampSharp.GameMode/IExtension.cs | 0 .../SampSharp.GameMode/IService.cs | 0 src/{ => legacy}/SampSharp.GameMode/Matrix.cs | 0 .../PlayerDisconnectedException.cs | 0 .../Pools/IdentifiedOwnedPool`1.cs | 0 .../Pools/IdentifiedPool`1.cs | 0 .../Pools/PoolContainer`1.cs | 0 .../SampSharp.GameMode/Pools/Pool`1.cs | 0 .../Pools/PooledTypeAttribute.cs | 0 .../SampSharp.GameMode/Quaternion.cs | 0 .../SampSharp.GameMode/SAMP/Color.cs | 0 .../SampSharp.GameMode/SAMP/ColorFormat.cs | 0 .../SampSharp.GameMode/SAMP/ColorValue.cs | 0 .../SAMP/Commands/CommandAttribute.cs | 0 .../SAMP/Commands/CommandCallableResponse.cs | 0 .../SAMP/Commands/CommandGroupAttribute.cs | 0 .../SAMP/Commands/CommandPath.cs | 0 .../SAMP/Commands/CommandsManager.cs | 0 .../SAMP/Commands/DefaultCommand.cs | 0 .../SAMP/Commands/DefaultHelpCommand.cs | 0 .../SAMP/Commands/ICommand.cs | 0 .../SAMP/Commands/ICommandsManager.cs | 0 .../SAMP/Commands/NullableParam.cs | 0 .../SAMP/Commands/ParameterTypes/EnumType.cs | 0 .../SAMP/Commands/ParameterTypes/FloatType.cs | 0 .../ParameterTypes/ICommandParameterType.cs | 0 .../Commands/ParameterTypes/IntegerType.cs | 0 .../ParameterTypes/NullableEnumType.cs | 0 .../SAMP/Commands/ParameterTypes/PlayerType.cs | 0 .../SAMP/Commands/ParameterTypes/TextType.cs | 0 .../Commands/ParameterTypes/VehicleType.cs | 0 .../SAMP/Commands/ParameterTypes/WordType.cs | 0 .../Parameters/CommandParameterInfo.cs | 0 .../Commands/Parameters/ParameterAttribute.cs | 0 .../PermissionCheckers/AdminChecker.cs | 0 .../PermissionCheckers/IPermissionChecker.cs | 0 .../PermissionCheckers/SilentAdminChecker.cs | 0 .../SAMP/KeyChangeHandlerSet.cs | 0 .../SampSharp.GameMode/SAMP/KeyHandlerSet.cs | 0 .../SAMP/PVarCollection.Internal.cs | 0 .../SampSharp.GameMode/SAMP/PVarCollection.cs | 0 .../SAMP/PriorityKeyHandler.cs | 0 .../SAMP/SVarCollection.Internal.cs | 0 .../SampSharp.GameMode/SAMP/SVarCollection.cs | 0 .../SampSharp.GameMode/SAMP/Server.Internal.cs | 0 .../SampSharp.GameMode/SAMP/Server.cs | 0 .../SampSharp.GameMode/SAMP/ServerConfig.cs | 0 .../SampSharp.GameMode/SAMP/Timer.cs | 0 .../SampSharp.GameMode.csproj | 0 .../SampSharpExtensionAttribute.cs | 0 src/{ => legacy}/SampSharp.GameMode/Service.cs | 0 .../Tools/ASyncPlayerWaiter.cs | 0 .../SampSharp.GameMode/Tools/ASyncWaiter`2.cs | 0 .../SampSharp.GameMode/Tools/Disposable.cs | 0 .../SampSharp.GameMode/Tools/KeyUtils.cs | 0 src/{ => legacy}/SampSharp.GameMode/Vector2.cs | 0 src/{ => legacy}/SampSharp.GameMode/Vector3.cs | 0 src/{ => legacy}/SampSharp.GameMode/Vector4.cs | 0 .../SampSharp.GameMode/World/Actor.Internal.cs | 0 .../SampSharp.GameMode/World/Actor.cs | 0 .../World/BasePlayer.Internal.cs | 0 .../SampSharp.GameMode/World/BasePlayer.cs | 0 .../World/BaseVehicle.Internal.cs | 0 .../SampSharp.GameMode/World/BaseVehicle.cs | 0 .../World/GangZone.Internal.cs | 0 .../SampSharp.GameMode/World/GangZone.cs | 0 .../World/GlobalObject.Internal.cs | 0 .../SampSharp.GameMode/World/GlobalObject.cs | 0 .../SampSharp.GameMode/World/IGameObject.cs | 0 .../SampSharp.GameMode/World/IIDentifiable.cs | 0 .../SampSharp.GameMode/World/IOwnable.cs | 0 .../SampSharp.GameMode/World/IWorldObject.cs | 0 .../World/Pickup.Internal.cs | 0 .../SampSharp.GameMode/World/Pickup.cs | 0 .../World/PlayerObject.Internal.cs | 0 .../SampSharp.GameMode/World/PlayerObject.cs | 0 .../World/PlayerTextLabel.Internal.cs | 0 .../World/PlayerTextLabel.cs | 0 .../World/TextLabel.Internal.cs | 0 .../SampSharp.GameMode/World/TextLabel.cs | 0 .../World/VehicleModelInfo.Internal.cs | 0 .../World/VehicleModelInfo.cs | 0 .../legacy/SampSharp.Plugin.sln | 2 +- SampSharp.sln => src/legacy/SampSharp.sln | 15 +++++++-------- .../legacy/SampSharp.sln.DotSettings | 0 src/{ => legacy}/SampSharp/SampSharp.def | 0 src/{ => legacy}/SampSharp/SampSharp.vcxproj | 8 ++++---- .../SampSharp/SampSharp.vcxproj.filters | 0 src/{ => legacy}/SampSharp/config.cpp | 0 src/{ => legacy}/SampSharp/config.h | 0 src/{ => legacy}/SampSharp/config_cfg.cpp | 0 src/{ => legacy}/SampSharp/config_cfg.h | 0 .../SampSharp/config_composite.cpp | 0 src/{ => legacy}/SampSharp/config_composite.h | 0 src/{ => legacy}/SampSharp/config_omp.cpp | 0 src/{ => legacy}/SampSharp/config_omp.h | 0 src/{ => legacy}/SampSharp/config_win.cpp | 0 src/{ => legacy}/SampSharp/config_win.h | 0 src/{ => legacy}/SampSharp/coreclr_app.cpp | 0 src/{ => legacy}/SampSharp/coreclr_app.h | 0 .../SampSharp/includes/coreclr/coreclrhost.h | 0 .../SampSharp/includes/coreclr/mscoree.h | 0 .../SampSharp/includes/json/json.hpp | 0 .../SampSharp/includes/sampgdk/sampgdk.c | 0 .../SampSharp/includes/sampgdk/sampgdk.h | 0 .../SampSharp/includes/sdk/amx/amx.h | 0 .../SampSharp/includes/sdk/amx/getch.h | 0 .../SampSharp/includes/sdk/amx/sclinux.h | 0 .../SampSharp/includes/sdk/amxplugin.cpp | 0 .../SampSharp/includes/sdk/plugin.h | 0 .../SampSharp/includes/sdk/plugincommon.h | 0 src/{ => legacy}/SampSharp/interop.cpp | 0 src/{ => legacy}/SampSharp/interop.h | 0 src/{ => legacy}/SampSharp/locator.cpp | 0 src/{ => legacy}/SampSharp/locator.h | 0 src/{ => legacy}/SampSharp/logging.cpp | 0 src/{ => legacy}/SampSharp/logging.h | 0 src/{ => legacy}/SampSharp/main.cpp | 0 src/{ => legacy}/SampSharp/nethost.h | 0 src/{ => legacy}/SampSharp/nethost_coreclr.cpp | 0 src/{ => legacy}/SampSharp/nethost_coreclr.h | 0 src/{ => legacy}/SampSharp/platforms.h | 0 src/{ => legacy}/SampSharp/strutil.cpp | 0 src/{ => legacy}/SampSharp/strutil.h | 0 src/{ => legacy}/SampSharp/testing.cpp | 0 src/{ => legacy}/SampSharp/testing.h | 0 src/{ => legacy}/SampSharp/version.h | 0 .../Components/TestComponent.cs | 0 .../Components/UnusedComponent.cs | 0 src/{ => legacy}/TestMode.Entities/Program.cs | 0 .../Properties/launchSettings.json | 0 .../TestMode.Entities/Services/FunnyService.cs | 0 .../Services/IFunnyService.cs | 0 .../Services/IScopedFunnyService.cs | 0 .../Services/IVehicleRepository.cs | 0 .../Services/VehicleRepository.cs | 0 .../Systems/BasicCommandsSystem.cs | 0 .../Systems/IssueTests/Issue326Timers.cs | 0 .../Issue333ReproIndexOutOfBoundsError.cs | 0 .../IssueTests/Issue353ReproEntityIdError.cs | 0 .../IssueTests/Issue363ReproServerCrash.cs | 0 .../IssueTests/Issue419VehicleHealthOnGmx.cs | 0 .../Issue450DialogClosingCausesError.cs | 0 .../Systems/Tests/SystemActorTest.cs | 0 .../Systems/Tests/SystemCheckpointTest.cs | 0 .../Systems/Tests/SystemDiTest.cs | 0 .../Systems/Tests/SystemDialogsTest.cs | 0 .../Tests/SystemEntityComponentsTest.cs | 0 .../Systems/Tests/SystemMenuTest.cs | 0 .../Systems/Tests/SystemObjectTest.cs | 0 .../Systems/Tests/SystemPlayerCommandTest.cs | 0 .../Systems/Tests/SystemRconCommandTest.cs | 0 .../Tests/SystemSynchronizationContextTest.cs | 0 .../Systems/Tests/SystemTextLabelTest.cs | 0 .../Systems/Tests/SystemTextdrawTest.cs | 0 .../Systems/Tests/SystemTicking.cs | 0 .../Systems/Tests/SystemVehicleInfoTest.cs | 0 ...SystemVehicleRotationQuaternionErrorTest.cs | 0 .../Systems/Tests/SystemVehicleTest.cs | 0 .../Systems/Tests/SystemZoneTest.cs | 0 .../TestMode.Entities/TestMode.Entities.csproj | 0 .../TestMode.Entities/TestStartup.cs | 0 .../TestMode.GameMode/BenchmarkCommands.cs | 0 .../TestMode.GameMode/Commands/Commands.cs | 0 .../Commands/DialogCommands.cs | 0 src/{ => legacy}/TestMode.GameMode/GameMode.cs | 0 src/{ => legacy}/TestMode.GameMode/Player.cs | 0 src/{ => legacy}/TestMode.GameMode/Program.cs | 0 .../Properties/launchSettings.json | 0 .../TestMode.GameMode/TestMode.GameMode.csproj | 0 src/{ => legacy}/TestMode.GameMode/Vehicle.cs | 0 src/{ => legacy}/pawn/_rconfix.amx | Bin src/{ => legacy}/pawn/_rconfix.pwn | 0 src/{ => legacy}/pawn/empty.amx | Bin src/{ => legacy}/pawn/empty.pwn | 0 625 files changed, 32 insertions(+), 24 deletions(-) rename Directory.Build.props => src/legacy/Directory.Build.props (82%) rename src/{ => legacy}/SampSharp.Core.UnitTests/Callbacks/CallbackParameterBooleanTests.cs (100%) rename src/{ => legacy}/SampSharp.Core.UnitTests/Callbacks/CallbackParameterIntTests.cs (100%) rename src/{ => legacy}/SampSharp.Core.UnitTests/Callbacks/CallbackParameterSingleTests.cs (100%) rename src/{ => legacy}/SampSharp.Core.UnitTests/Callbacks/CallbackTests.cs (100%) rename src/{ => legacy}/SampSharp.Core.UnitTests/CoreLogGameModeBuilderExtensionsTests.cs (100%) rename src/{ => legacy}/SampSharp.Core.UnitTests/EncodingGameModeBuilderExtensionsTests.cs (100%) rename src/{ => legacy}/SampSharp.Core.UnitTests/GameModeClientHelperTests.cs (100%) rename src/{ => legacy}/SampSharp.Core.UnitTests/HostedGameModeClientTests.cs (100%) rename src/{ => legacy}/SampSharp.Core.UnitTests/Hosting/InteropTests.cs (100%) rename src/{ => legacy}/SampSharp.Core.UnitTests/RedirectConsoleOutputGameModeBuilderExtensionsTests.cs (100%) rename src/{ => legacy}/SampSharp.Core.UnitTests/SampSharp.Core.UnitTests.csproj (100%) rename src/{ => legacy}/SampSharp.Core.UnitTests/TestHelpers/ApiScope.cs (100%) rename src/{ => legacy}/SampSharp.Core.UnitTests/TestHelpers/GameModeClientScope.cs (100%) rename src/{ => legacy}/SampSharp.Core.UnitTests/TestHelpers/InteropStructs.cs (100%) rename src/{ => legacy}/SampSharp.Core/AssemblyAttributes.cs (100%) rename src/{ => legacy}/SampSharp.Core/Callbacks/Callback.cs (100%) rename src/{ => legacy}/SampSharp.Core/Callbacks/CallbackAttribute.cs (100%) rename src/{ => legacy}/SampSharp.Core/Callbacks/CallbackParameterBoolean.cs (100%) rename src/{ => legacy}/SampSharp.Core/Callbacks/CallbackParameterBooleanArray.cs (100%) rename src/{ => legacy}/SampSharp.Core/Callbacks/CallbackParameterInt.cs (100%) rename src/{ => legacy}/SampSharp.Core/Callbacks/CallbackParameterIntArray.cs (100%) rename src/{ => legacy}/SampSharp.Core/Callbacks/CallbackParameterSingle.cs (100%) rename src/{ => legacy}/SampSharp.Core/Callbacks/CallbackParameterSingleArray.cs (100%) rename src/{ => legacy}/SampSharp.Core/Callbacks/CallbackParameterString.cs (100%) rename src/{ => legacy}/SampSharp.Core/Callbacks/CallbackRegistrationException.cs (100%) rename src/{ => legacy}/SampSharp.Core/Callbacks/ICallbackArrayParameter.cs (100%) rename src/{ => legacy}/SampSharp.Core/Callbacks/ICallbackParameter.cs (100%) rename src/{ => legacy}/SampSharp.Core/Callbacks/ParameterLengthAttribute.cs (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/CodePageEncoding.cs (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-1.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-10.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-11.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-13.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-14.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-15.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-16.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-2.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-3.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-4.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-5.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-6.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-7.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-8.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/8859-9.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp1250.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp1251.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp1252.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp1253.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp1254.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp1255.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp1256.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp1257.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp1258.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp437.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp737.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp775.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp850.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp852.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp855.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp857.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp860.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp861.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp862.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp863.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp864.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp865.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp866.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp869.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp874.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp932.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp936.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp949.dat (100%) rename src/{ => legacy}/SampSharp.Core/CodePages/data/cp950.dat (100%) rename src/{ => legacy}/SampSharp.Core/CoreLogGameModeBuilderExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Core/EncodingGameModeBuilderExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Core/GameModeBuilder.cs (100%) rename src/{ => legacy}/SampSharp.Core/GameModeBuilderException.cs (100%) rename src/{ => legacy}/SampSharp.Core/GameModeClientException.cs (100%) rename src/{ => legacy}/SampSharp.Core/GameModeClientExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Core/GameModeNotRunningException.cs (100%) rename src/{ => legacy}/SampSharp.Core/GameModeRunnerFactory.cs (100%) rename src/{ => legacy}/SampSharp.Core/GameModeRunnerRun.cs (100%) rename src/{ => legacy}/SampSharp.Core/HostedGameModeClient.cs (100%) rename src/{ => legacy}/SampSharp.Core/Hosting/Amx.cs (100%) rename src/{ => legacy}/SampSharp.Core/Hosting/AmxCell.cs (100%) rename src/{ => legacy}/SampSharp.Core/Hosting/AmxError.cs (100%) rename src/{ => legacy}/SampSharp.Core/Hosting/AmxExport.cs (100%) rename src/{ => legacy}/SampSharp.Core/Hosting/Interop.cs (100%) rename src/{ => legacy}/SampSharp.Core/Hosting/PluginData.cs (100%) rename src/{ => legacy}/SampSharp.Core/Hosting/SampSharpApi.cs (100%) rename src/{ => legacy}/SampSharp.Core/IGameModeClient.cs (100%) rename src/{ => legacy}/SampSharp.Core/IGameModeProvider.cs (100%) rename src/{ => legacy}/SampSharp.Core/IGameModeRunner.cs (100%) rename src/{ => legacy}/SampSharp.Core/ISynchronizationProvider.cs (100%) rename src/{ => legacy}/SampSharp.Core/InternalStorage.cs (100%) rename src/{ => legacy}/SampSharp.Core/Logging/CoreLog.cs (100%) rename src/{ => legacy}/SampSharp.Core/Logging/CoreLogLevel.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/IlGeneratorExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/NativeIlGenContext.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/NativeIlGenParam.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/NativeObjectProxyFactoryImpl.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/NativeObjects/INativeObjectProxyFactory.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/NativeObjects/NativeMethodAttribute.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/NativeObjects/NativeNotImplementedException.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/NativeObjects/NativeObjectIdentifiersAttribute.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/NativeObjects/NativeObjectProxyFactory.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/NativeObjects/NativeObjectSingleton`1.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/NativeObjects/NativePropertyAttribute.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/NativeParameterType.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/NativeUtils.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/ValueConverter.cs (100%) rename src/{ => legacy}/SampSharp.Core/Natives/VarArgsState.cs (100%) rename src/{ => legacy}/SampSharp.Core/RconFixGameModeBuilderExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Core/RedirectConsoleOutputGameModeBuilderExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Core/SampSharp.Core.csproj (100%) rename src/{ => legacy}/SampSharp.Core/SampSharp.Core.csproj.DotSettings (100%) rename src/{ => legacy}/SampSharp.Core/ServerLogWriter.cs (100%) rename src/{ => legacy}/SampSharp.Core/Threading/MainThreadTaskAwaiter.cs (100%) rename src/{ => legacy}/SampSharp.Core/Threading/SampSharpSynchronizationContext.cs (100%) rename src/{ => legacy}/SampSharp.Core/Threading/SyncToMainThreadTask.cs (100%) rename src/{ => legacy}/SampSharp.Core/Threading/TaskHelper.cs (100%) rename src/{ => legacy}/SampSharp.Core/UnhandledExceptionEventArgs.cs (100%) rename SampSharp.Documentation.shfbproj => src/legacy/SampSharp.Documentation.shfbproj (89%) rename SampSharp.Documentation.sln => src/legacy/SampSharp.Documentation.sln (100%) rename src/{ => legacy}/SampSharp.Entities/Annotations/Annotations.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Components/Component.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Components/NativeComponent.cs (100%) rename src/{ => legacy}/SampSharp.Entities/EcsBuilder.cs (100%) rename src/{ => legacy}/SampSharp.Entities/EcsBuilderEventExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Entities/EcsBuilderExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Entities/EcsBuilderUseMiddlewareExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Entities/EcsManager.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Entities/EntityCreationException.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Entities/EntityExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Entities/EntityId.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Entities/EntityManager.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Entities/EntityNotFoundException.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Entities/EntityTypeAttribute.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Entities/EntityTypeRegistry.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Entities/IEntityManager.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Entities/InvalidEntityArgumentException.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Events/EventAttribute.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Events/EventContext.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Events/EventContextImpl.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Events/EventDelegate.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Events/EventHelper.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Events/EventScopeMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Events/EventService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Events/EventSignatureException.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Events/IEventService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/GameModeBuilderExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Entities/IEcsBuilder.cs (100%) rename src/{ => legacy}/SampSharp.Entities/IStartup.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Natives/INativeProxy.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Natives/NativeProxy.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/CommandInfo.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/CommandParameterAttribute.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/CommandParameterInfo.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/CommandServiceBase.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/ICommandMethodInfo.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/IPlayerCommandService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/IRconCommandService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/InvokeResponse.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/InvokeResult.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/Parsers/DoubleParser.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/Parsers/EntityParser.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/Parsers/EnumParser.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/Parsers/FloatParser.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/Parsers/ICommandParameterParser.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/Parsers/IntParser.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/Parsers/PlayerParser.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/Parsers/StringParser.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/Parsers/WordParser.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/PlayerCommandAttribute.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/PlayerCommandProcessingMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/PlayerCommandService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/RconCommandAttribute.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/RconCommandProcessingMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Commands/RconCommandService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Components/Actor.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Components/GangZone.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Components/GlobalObject.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Components/Menu.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Components/Pickup.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Components/Player.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Components/PlayerObject.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Components/PlayerTextDraw.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Components/PlayerTextLabel.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Components/TextDraw.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Components/TextLabel.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Components/Vehicle.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Data/Color.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Data/ColorFormat.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Data/Matrix.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Data/Quaternion.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Data/SampEntities.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Data/SampLimits.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Data/Vector2.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Data/Vector3.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Data/Vector4.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/BodyPart.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/Bone.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/BulletHitType.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/CameraCut.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/CameraMode.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/CarModType.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/CheckpointType.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/ConnectionStatus.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/DialogStyle.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/DisconnectReason.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/EditObjectResponse.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/EnterExit.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/ExplosionType.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/FightStyle.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/Keys.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/MapIcon.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/MapIconType.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/ObjectMaterialSize.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/ObjectMaterialTextAlign.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/ObjectType.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/PickupType.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/PlayerClickSource.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/PlayerMarkersMode.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/PlayerRecordingType.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/PlayerState.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/ServerVarType.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/ShopName.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/SpecialAction.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/SpectateMode.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/TextDrawAlignment.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/TextDrawFont.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/VehicleCategory.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/VehicleColor.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/VehicleModelInfoType.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/VehicleModelType.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/VehicleParameterValue.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/Weapon.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/WeaponSkill.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Definitions/WeaponState.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/DialogResponse.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/DialogResult.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/DialogRowCollection.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/DialogService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/DialogSystem.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/IDialog.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/IDialogRow.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/IDialogService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/InputDialog.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/InputDialogResponse.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/ListDialog.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/ListDialogResponse.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/ListDialogRow.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/ListDialogRowCollection.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/MessageDialog.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/MessageDialogResponse.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/TablistDialog.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/TablistDialogResponse.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/TablistDialogRow.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/TablistDialogRowCollection.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Dialogs/VisibleDialog.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/MathHelper.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Middleware/ArgumentsOverrideEventContext.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Middleware/EntityMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Middleware/PlayerClickMapMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Middleware/PlayerConnectMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Middleware/PlayerDisconnectMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Middleware/PlayerEditAttachedObjectMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Middleware/PlayerEditObjectMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Middleware/PlayerObjectMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Middleware/PlayerSelectObjectMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Middleware/PlayerTextDrawMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Middleware/PlayerWeaponShotMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Middleware/TextDrawClickMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Middleware/UnoccupiedVehicleUpdateMiddleware.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/NativeComponents/BaseNativeComponent.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/NativeComponents/NativeActor.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/NativeComponents/NativeGangZone.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/NativeComponents/NativeMenu.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/NativeComponents/NativeObject.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/NativeComponents/NativePickup.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/NativeComponents/NativePlayer.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/NativeComponents/NativePlayerObject.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/NativeComponents/NativePlayerTextDraw.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/NativeComponents/NativePlayerTextLabel.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/NativeComponents/NativeTextDraw.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/NativeComponents/NativeTextLabel.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/NativeComponents/NativeVehicle.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/PlayerExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/SampEcsBuilderExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/SampLimitException.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Services/IServerService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Services/IVehicleInfoService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Services/IWorldService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Services/ServerService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Services/ServerServiceNative.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Services/VehicleInfoService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Services/VehicleInfoServiceNative.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Services/WorldService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/Services/WorldServiceNative.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SAMP/VariableCollection.cs (100%) rename src/{ => legacy}/SampSharp.Entities/SampSharp.Entities.csproj (100%) rename src/{ => legacy}/SampSharp.Entities/SampSharp.Entities.csproj.DotSettings (100%) rename src/{ => legacy}/SampSharp.Entities/ServiceCollectionExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Systems/ISystem.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Systems/ISystemRegistry.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Systems/ITickingSystem.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Systems/SystemRegistry.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Systems/SystemRegistryException.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Systems/SystemTypeWrapper.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Timers/ITimerService.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Timers/TimerAttribute.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Timers/TimerInfo.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Timers/TimerReference.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Timers/TimerServiceExtensions.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Timers/TimerSystem.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Utilities/AssemblyScanner.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Utilities/IRecyclable.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Utilities/MethodInvoker.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Utilities/MethodInvokerFactory.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Utilities/MethodParameterSource.cs (100%) rename src/{ => legacy}/SampSharp.Entities/Utilities/RecyclePool.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/BaseMode.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/BaseMode.callbacks.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/BaseMode.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/BaseMode.events.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/BaseMode.functions.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/ActorController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/BasePlayerController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/BaseVehicleController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/CommandController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/ControllerAttribute.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/ControllerCollection.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/DialogController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/GangZoneController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/GlobalObjectController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/IController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/IEventListener.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/IGameServiceProvider.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/ITypeProvider.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/MenuController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/PickupController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/PlayerObjectController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/PlayerTextDrawController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/PlayerTextLabelController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/TextDrawController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/TextLabelController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Controllers/TimerController.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/BodyPart.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/Bone.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/BulletHitType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/CameraCut.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/CameraMode.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/CarModType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/CheckpointType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/ConnectionStatus.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/DialogButton.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/DialogStyle.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/DisconnectReason.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/EditObjectResponse.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/EnterExit.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/ExplosionType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/FightStyle.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/Keys.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/MapIcon.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/MapIconType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/ObjectMaterialSize.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/ObjectMaterialTextAlign.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/ObjectType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/PickupType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/PlayerClickSource.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/PlayerMarkersMode.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/PlayerRecordingType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/PlayerState.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/ServerVarType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/ShopName.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/SpecialAction.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/SpectateMode.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/TextDrawAlignment.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/TextDrawFont.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/VehicleCategory.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/VehicleColor.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/VehicleModelInfoType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/VehicleModelType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/VehicleParameterValue.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/Weapon.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/WeaponSkill.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Definitions/WeaponState.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/Dialog.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/Dialog.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/InputDialog.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/ListDialog.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/ListDialog`1.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/Menu.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/Menu.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/MenuColumn.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/MenuRow.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/MessageDialog.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/PlayerTextDraw.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/PlayerTextDraw.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/TablistDialog.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/TextDraw.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Display/TextDraw.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/CancelableEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/ClickPlayerEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/ClickPlayerTextDrawEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/ClickTextDrawEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/CommandTextEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/ConnectionEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/DamageEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/DeathEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/DialogResponseEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/DialogResponseEventArgs`1.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/DisconnectEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/EditAttachedObjectEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/EditGlobalObjectEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/EditPlayerObjectEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/EnterModShopEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/EnterVehicleEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/InteriorChangedEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/KeyStateChangedEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/MenuRowEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/PickUpPickupEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/PlayerEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/PlayerUpdateEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/PlayerVehicleEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/PositionEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/RconEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/RconLoginAttemptEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/RequestClassEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/RequestSpawnEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/SelectGlobalObjectEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/SirenStateEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/SpawnEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/StateEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/TextEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/TrailerEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/UnoccupiedVehicleEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/VehicleModEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/VehiclePaintjobEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/VehicleResprayedEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Events/WeaponShotEventArgs.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Extension.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Factories/BaseVehicleFactory.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Factories/BaseVehicleFactory.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Factories/IVehicleFactory.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/GameModeServiceContainer.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Helpers/MathHelper.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Helpers/NullableHelper.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Helpers/VehicleParameterValueHelper.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/IExtension.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/IService.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Matrix.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/PlayerDisconnectedException.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Pools/IdentifiedOwnedPool`1.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Pools/IdentifiedPool`1.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Pools/PoolContainer`1.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Pools/Pool`1.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Pools/PooledTypeAttribute.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Quaternion.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Color.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/ColorFormat.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/ColorValue.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/CommandAttribute.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/CommandCallableResponse.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/CommandGroupAttribute.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/CommandPath.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/CommandsManager.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/DefaultCommand.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/DefaultHelpCommand.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/ICommand.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/ICommandsManager.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/NullableParam.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/ParameterTypes/EnumType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/ParameterTypes/FloatType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/ParameterTypes/ICommandParameterType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/ParameterTypes/IntegerType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/ParameterTypes/NullableEnumType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/ParameterTypes/PlayerType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/ParameterTypes/TextType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/ParameterTypes/VehicleType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/ParameterTypes/WordType.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/Parameters/CommandParameterInfo.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/Parameters/ParameterAttribute.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/AdminChecker.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/IPermissionChecker.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/SilentAdminChecker.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/KeyChangeHandlerSet.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/KeyHandlerSet.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/PVarCollection.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/PVarCollection.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/PriorityKeyHandler.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/SVarCollection.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/SVarCollection.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Server.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Server.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/ServerConfig.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SAMP/Timer.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/SampSharp.GameMode.csproj (100%) rename src/{ => legacy}/SampSharp.GameMode/SampSharpExtensionAttribute.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Service.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Tools/ASyncPlayerWaiter.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Tools/ASyncWaiter`2.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Tools/Disposable.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Tools/KeyUtils.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Vector2.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Vector3.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/Vector4.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/Actor.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/Actor.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/BasePlayer.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/BasePlayer.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/BaseVehicle.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/BaseVehicle.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/GangZone.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/GangZone.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/GlobalObject.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/GlobalObject.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/IGameObject.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/IIDentifiable.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/IOwnable.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/IWorldObject.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/Pickup.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/Pickup.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/PlayerObject.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/PlayerObject.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/PlayerTextLabel.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/PlayerTextLabel.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/TextLabel.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/TextLabel.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/VehicleModelInfo.Internal.cs (100%) rename src/{ => legacy}/SampSharp.GameMode/World/VehicleModelInfo.cs (100%) rename SampSharp.Plugin.sln => src/legacy/SampSharp.Plugin.sln (94%) rename SampSharp.sln => src/legacy/SampSharp.sln (91%) rename SampSharp.sln.DotSettings => src/legacy/SampSharp.sln.DotSettings (100%) rename src/{ => legacy}/SampSharp/SampSharp.def (100%) rename src/{ => legacy}/SampSharp/SampSharp.vcxproj (96%) rename src/{ => legacy}/SampSharp/SampSharp.vcxproj.filters (100%) rename src/{ => legacy}/SampSharp/config.cpp (100%) rename src/{ => legacy}/SampSharp/config.h (100%) rename src/{ => legacy}/SampSharp/config_cfg.cpp (100%) rename src/{ => legacy}/SampSharp/config_cfg.h (100%) rename src/{ => legacy}/SampSharp/config_composite.cpp (100%) rename src/{ => legacy}/SampSharp/config_composite.h (100%) rename src/{ => legacy}/SampSharp/config_omp.cpp (100%) rename src/{ => legacy}/SampSharp/config_omp.h (100%) rename src/{ => legacy}/SampSharp/config_win.cpp (100%) rename src/{ => legacy}/SampSharp/config_win.h (100%) rename src/{ => legacy}/SampSharp/coreclr_app.cpp (100%) rename src/{ => legacy}/SampSharp/coreclr_app.h (100%) rename src/{ => legacy}/SampSharp/includes/coreclr/coreclrhost.h (100%) rename src/{ => legacy}/SampSharp/includes/coreclr/mscoree.h (100%) rename src/{ => legacy}/SampSharp/includes/json/json.hpp (100%) rename src/{ => legacy}/SampSharp/includes/sampgdk/sampgdk.c (100%) rename src/{ => legacy}/SampSharp/includes/sampgdk/sampgdk.h (100%) rename src/{ => legacy}/SampSharp/includes/sdk/amx/amx.h (100%) rename src/{ => legacy}/SampSharp/includes/sdk/amx/getch.h (100%) rename src/{ => legacy}/SampSharp/includes/sdk/amx/sclinux.h (100%) rename src/{ => legacy}/SampSharp/includes/sdk/amxplugin.cpp (100%) rename src/{ => legacy}/SampSharp/includes/sdk/plugin.h (100%) rename src/{ => legacy}/SampSharp/includes/sdk/plugincommon.h (100%) rename src/{ => legacy}/SampSharp/interop.cpp (100%) rename src/{ => legacy}/SampSharp/interop.h (100%) rename src/{ => legacy}/SampSharp/locator.cpp (100%) rename src/{ => legacy}/SampSharp/locator.h (100%) rename src/{ => legacy}/SampSharp/logging.cpp (100%) rename src/{ => legacy}/SampSharp/logging.h (100%) rename src/{ => legacy}/SampSharp/main.cpp (100%) rename src/{ => legacy}/SampSharp/nethost.h (100%) rename src/{ => legacy}/SampSharp/nethost_coreclr.cpp (100%) rename src/{ => legacy}/SampSharp/nethost_coreclr.h (100%) rename src/{ => legacy}/SampSharp/platforms.h (100%) rename src/{ => legacy}/SampSharp/strutil.cpp (100%) rename src/{ => legacy}/SampSharp/strutil.h (100%) rename src/{ => legacy}/SampSharp/testing.cpp (100%) rename src/{ => legacy}/SampSharp/testing.h (100%) rename src/{ => legacy}/SampSharp/version.h (100%) rename src/{ => legacy}/TestMode.Entities/Components/TestComponent.cs (100%) rename src/{ => legacy}/TestMode.Entities/Components/UnusedComponent.cs (100%) rename src/{ => legacy}/TestMode.Entities/Program.cs (100%) rename src/{ => legacy}/TestMode.Entities/Properties/launchSettings.json (100%) rename src/{ => legacy}/TestMode.Entities/Services/FunnyService.cs (100%) rename src/{ => legacy}/TestMode.Entities/Services/IFunnyService.cs (100%) rename src/{ => legacy}/TestMode.Entities/Services/IScopedFunnyService.cs (100%) rename src/{ => legacy}/TestMode.Entities/Services/IVehicleRepository.cs (100%) rename src/{ => legacy}/TestMode.Entities/Services/VehicleRepository.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/BasicCommandsSystem.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/IssueTests/Issue326Timers.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/IssueTests/Issue333ReproIndexOutOfBoundsError.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/IssueTests/Issue353ReproEntityIdError.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/IssueTests/Issue363ReproServerCrash.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/IssueTests/Issue419VehicleHealthOnGmx.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/IssueTests/Issue450DialogClosingCausesError.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemActorTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemCheckpointTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemDiTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemDialogsTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemEntityComponentsTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemMenuTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemObjectTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemPlayerCommandTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemRconCommandTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemSynchronizationContextTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemTextLabelTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemTextdrawTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemTicking.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemVehicleInfoTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemVehicleRotationQuaternionErrorTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemVehicleTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/Systems/Tests/SystemZoneTest.cs (100%) rename src/{ => legacy}/TestMode.Entities/TestMode.Entities.csproj (100%) rename src/{ => legacy}/TestMode.Entities/TestStartup.cs (100%) rename src/{ => legacy}/TestMode.GameMode/BenchmarkCommands.cs (100%) rename src/{ => legacy}/TestMode.GameMode/Commands/Commands.cs (100%) rename src/{ => legacy}/TestMode.GameMode/Commands/DialogCommands.cs (100%) rename src/{ => legacy}/TestMode.GameMode/GameMode.cs (100%) rename src/{ => legacy}/TestMode.GameMode/Player.cs (100%) rename src/{ => legacy}/TestMode.GameMode/Program.cs (100%) rename src/{ => legacy}/TestMode.GameMode/Properties/launchSettings.json (100%) rename src/{ => legacy}/TestMode.GameMode/TestMode.GameMode.csproj (100%) rename src/{ => legacy}/TestMode.GameMode/Vehicle.cs (100%) rename src/{ => legacy}/pawn/_rconfix.amx (100%) rename src/{ => legacy}/pawn/_rconfix.pwn (100%) rename src/{ => legacy}/pawn/empty.amx (100%) rename src/{ => legacy}/pawn/empty.pwn (100%) diff --git a/Directory.Build.props b/src/legacy/Directory.Build.props similarity index 82% rename from Directory.Build.props rename to src/legacy/Directory.Build.props index 9759fae91..98c3c5d6f 100644 --- a/Directory.Build.props +++ b/src/legacy/Directory.Build.props @@ -1,4 +1,7 @@ + + + $(MSBuildProjectName.Contains('.UnitTests')) @@ -11,14 +14,20 @@ false + + + $(MSBuildThisFileDirectory)..\..\build\bin\$(MSBuildProjectName)\ + $(MSBuildThisFileDirectory)..\..\build\obj\$(MSBuildProjectName)\ + $(MSBuildThisFileDirectory)..\..\build\artifacts\packages + + - ..\..\bin\$(MSBuildProjectName)\$(Configuration)\ true true - ..\..\env\gamemode\$(MSBuildProjectName) + $(MSBuildThisFileDirectory)..\..\env\gamemode\$(MSBuildProjectName) @@ -40,7 +49,7 @@ - + @@ -91,4 +100,4 @@ true - \ No newline at end of file + diff --git a/src/SampSharp.Core.UnitTests/Callbacks/CallbackParameterBooleanTests.cs b/src/legacy/SampSharp.Core.UnitTests/Callbacks/CallbackParameterBooleanTests.cs similarity index 100% rename from src/SampSharp.Core.UnitTests/Callbacks/CallbackParameterBooleanTests.cs rename to src/legacy/SampSharp.Core.UnitTests/Callbacks/CallbackParameterBooleanTests.cs diff --git a/src/SampSharp.Core.UnitTests/Callbacks/CallbackParameterIntTests.cs b/src/legacy/SampSharp.Core.UnitTests/Callbacks/CallbackParameterIntTests.cs similarity index 100% rename from src/SampSharp.Core.UnitTests/Callbacks/CallbackParameterIntTests.cs rename to src/legacy/SampSharp.Core.UnitTests/Callbacks/CallbackParameterIntTests.cs diff --git a/src/SampSharp.Core.UnitTests/Callbacks/CallbackParameterSingleTests.cs b/src/legacy/SampSharp.Core.UnitTests/Callbacks/CallbackParameterSingleTests.cs similarity index 100% rename from src/SampSharp.Core.UnitTests/Callbacks/CallbackParameterSingleTests.cs rename to src/legacy/SampSharp.Core.UnitTests/Callbacks/CallbackParameterSingleTests.cs diff --git a/src/SampSharp.Core.UnitTests/Callbacks/CallbackTests.cs b/src/legacy/SampSharp.Core.UnitTests/Callbacks/CallbackTests.cs similarity index 100% rename from src/SampSharp.Core.UnitTests/Callbacks/CallbackTests.cs rename to src/legacy/SampSharp.Core.UnitTests/Callbacks/CallbackTests.cs diff --git a/src/SampSharp.Core.UnitTests/CoreLogGameModeBuilderExtensionsTests.cs b/src/legacy/SampSharp.Core.UnitTests/CoreLogGameModeBuilderExtensionsTests.cs similarity index 100% rename from src/SampSharp.Core.UnitTests/CoreLogGameModeBuilderExtensionsTests.cs rename to src/legacy/SampSharp.Core.UnitTests/CoreLogGameModeBuilderExtensionsTests.cs diff --git a/src/SampSharp.Core.UnitTests/EncodingGameModeBuilderExtensionsTests.cs b/src/legacy/SampSharp.Core.UnitTests/EncodingGameModeBuilderExtensionsTests.cs similarity index 100% rename from src/SampSharp.Core.UnitTests/EncodingGameModeBuilderExtensionsTests.cs rename to src/legacy/SampSharp.Core.UnitTests/EncodingGameModeBuilderExtensionsTests.cs diff --git a/src/SampSharp.Core.UnitTests/GameModeClientHelperTests.cs b/src/legacy/SampSharp.Core.UnitTests/GameModeClientHelperTests.cs similarity index 100% rename from src/SampSharp.Core.UnitTests/GameModeClientHelperTests.cs rename to src/legacy/SampSharp.Core.UnitTests/GameModeClientHelperTests.cs diff --git a/src/SampSharp.Core.UnitTests/HostedGameModeClientTests.cs b/src/legacy/SampSharp.Core.UnitTests/HostedGameModeClientTests.cs similarity index 100% rename from src/SampSharp.Core.UnitTests/HostedGameModeClientTests.cs rename to src/legacy/SampSharp.Core.UnitTests/HostedGameModeClientTests.cs diff --git a/src/SampSharp.Core.UnitTests/Hosting/InteropTests.cs b/src/legacy/SampSharp.Core.UnitTests/Hosting/InteropTests.cs similarity index 100% rename from src/SampSharp.Core.UnitTests/Hosting/InteropTests.cs rename to src/legacy/SampSharp.Core.UnitTests/Hosting/InteropTests.cs diff --git a/src/SampSharp.Core.UnitTests/RedirectConsoleOutputGameModeBuilderExtensionsTests.cs b/src/legacy/SampSharp.Core.UnitTests/RedirectConsoleOutputGameModeBuilderExtensionsTests.cs similarity index 100% rename from src/SampSharp.Core.UnitTests/RedirectConsoleOutputGameModeBuilderExtensionsTests.cs rename to src/legacy/SampSharp.Core.UnitTests/RedirectConsoleOutputGameModeBuilderExtensionsTests.cs diff --git a/src/SampSharp.Core.UnitTests/SampSharp.Core.UnitTests.csproj b/src/legacy/SampSharp.Core.UnitTests/SampSharp.Core.UnitTests.csproj similarity index 100% rename from src/SampSharp.Core.UnitTests/SampSharp.Core.UnitTests.csproj rename to src/legacy/SampSharp.Core.UnitTests/SampSharp.Core.UnitTests.csproj diff --git a/src/SampSharp.Core.UnitTests/TestHelpers/ApiScope.cs b/src/legacy/SampSharp.Core.UnitTests/TestHelpers/ApiScope.cs similarity index 100% rename from src/SampSharp.Core.UnitTests/TestHelpers/ApiScope.cs rename to src/legacy/SampSharp.Core.UnitTests/TestHelpers/ApiScope.cs diff --git a/src/SampSharp.Core.UnitTests/TestHelpers/GameModeClientScope.cs b/src/legacy/SampSharp.Core.UnitTests/TestHelpers/GameModeClientScope.cs similarity index 100% rename from src/SampSharp.Core.UnitTests/TestHelpers/GameModeClientScope.cs rename to src/legacy/SampSharp.Core.UnitTests/TestHelpers/GameModeClientScope.cs diff --git a/src/SampSharp.Core.UnitTests/TestHelpers/InteropStructs.cs b/src/legacy/SampSharp.Core.UnitTests/TestHelpers/InteropStructs.cs similarity index 100% rename from src/SampSharp.Core.UnitTests/TestHelpers/InteropStructs.cs rename to src/legacy/SampSharp.Core.UnitTests/TestHelpers/InteropStructs.cs diff --git a/src/SampSharp.Core/AssemblyAttributes.cs b/src/legacy/SampSharp.Core/AssemblyAttributes.cs similarity index 100% rename from src/SampSharp.Core/AssemblyAttributes.cs rename to src/legacy/SampSharp.Core/AssemblyAttributes.cs diff --git a/src/SampSharp.Core/Callbacks/Callback.cs b/src/legacy/SampSharp.Core/Callbacks/Callback.cs similarity index 100% rename from src/SampSharp.Core/Callbacks/Callback.cs rename to src/legacy/SampSharp.Core/Callbacks/Callback.cs diff --git a/src/SampSharp.Core/Callbacks/CallbackAttribute.cs b/src/legacy/SampSharp.Core/Callbacks/CallbackAttribute.cs similarity index 100% rename from src/SampSharp.Core/Callbacks/CallbackAttribute.cs rename to src/legacy/SampSharp.Core/Callbacks/CallbackAttribute.cs diff --git a/src/SampSharp.Core/Callbacks/CallbackParameterBoolean.cs b/src/legacy/SampSharp.Core/Callbacks/CallbackParameterBoolean.cs similarity index 100% rename from src/SampSharp.Core/Callbacks/CallbackParameterBoolean.cs rename to src/legacy/SampSharp.Core/Callbacks/CallbackParameterBoolean.cs diff --git a/src/SampSharp.Core/Callbacks/CallbackParameterBooleanArray.cs b/src/legacy/SampSharp.Core/Callbacks/CallbackParameterBooleanArray.cs similarity index 100% rename from src/SampSharp.Core/Callbacks/CallbackParameterBooleanArray.cs rename to src/legacy/SampSharp.Core/Callbacks/CallbackParameterBooleanArray.cs diff --git a/src/SampSharp.Core/Callbacks/CallbackParameterInt.cs b/src/legacy/SampSharp.Core/Callbacks/CallbackParameterInt.cs similarity index 100% rename from src/SampSharp.Core/Callbacks/CallbackParameterInt.cs rename to src/legacy/SampSharp.Core/Callbacks/CallbackParameterInt.cs diff --git a/src/SampSharp.Core/Callbacks/CallbackParameterIntArray.cs b/src/legacy/SampSharp.Core/Callbacks/CallbackParameterIntArray.cs similarity index 100% rename from src/SampSharp.Core/Callbacks/CallbackParameterIntArray.cs rename to src/legacy/SampSharp.Core/Callbacks/CallbackParameterIntArray.cs diff --git a/src/SampSharp.Core/Callbacks/CallbackParameterSingle.cs b/src/legacy/SampSharp.Core/Callbacks/CallbackParameterSingle.cs similarity index 100% rename from src/SampSharp.Core/Callbacks/CallbackParameterSingle.cs rename to src/legacy/SampSharp.Core/Callbacks/CallbackParameterSingle.cs diff --git a/src/SampSharp.Core/Callbacks/CallbackParameterSingleArray.cs b/src/legacy/SampSharp.Core/Callbacks/CallbackParameterSingleArray.cs similarity index 100% rename from src/SampSharp.Core/Callbacks/CallbackParameterSingleArray.cs rename to src/legacy/SampSharp.Core/Callbacks/CallbackParameterSingleArray.cs diff --git a/src/SampSharp.Core/Callbacks/CallbackParameterString.cs b/src/legacy/SampSharp.Core/Callbacks/CallbackParameterString.cs similarity index 100% rename from src/SampSharp.Core/Callbacks/CallbackParameterString.cs rename to src/legacy/SampSharp.Core/Callbacks/CallbackParameterString.cs diff --git a/src/SampSharp.Core/Callbacks/CallbackRegistrationException.cs b/src/legacy/SampSharp.Core/Callbacks/CallbackRegistrationException.cs similarity index 100% rename from src/SampSharp.Core/Callbacks/CallbackRegistrationException.cs rename to src/legacy/SampSharp.Core/Callbacks/CallbackRegistrationException.cs diff --git a/src/SampSharp.Core/Callbacks/ICallbackArrayParameter.cs b/src/legacy/SampSharp.Core/Callbacks/ICallbackArrayParameter.cs similarity index 100% rename from src/SampSharp.Core/Callbacks/ICallbackArrayParameter.cs rename to src/legacy/SampSharp.Core/Callbacks/ICallbackArrayParameter.cs diff --git a/src/SampSharp.Core/Callbacks/ICallbackParameter.cs b/src/legacy/SampSharp.Core/Callbacks/ICallbackParameter.cs similarity index 100% rename from src/SampSharp.Core/Callbacks/ICallbackParameter.cs rename to src/legacy/SampSharp.Core/Callbacks/ICallbackParameter.cs diff --git a/src/SampSharp.Core/Callbacks/ParameterLengthAttribute.cs b/src/legacy/SampSharp.Core/Callbacks/ParameterLengthAttribute.cs similarity index 100% rename from src/SampSharp.Core/Callbacks/ParameterLengthAttribute.cs rename to src/legacy/SampSharp.Core/Callbacks/ParameterLengthAttribute.cs diff --git a/src/SampSharp.Core/CodePages/CodePageEncoding.cs b/src/legacy/SampSharp.Core/CodePages/CodePageEncoding.cs similarity index 100% rename from src/SampSharp.Core/CodePages/CodePageEncoding.cs rename to src/legacy/SampSharp.Core/CodePages/CodePageEncoding.cs diff --git a/src/SampSharp.Core/CodePages/data/8859-1.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-1.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-1.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-1.dat diff --git a/src/SampSharp.Core/CodePages/data/8859-10.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-10.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-10.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-10.dat diff --git a/src/SampSharp.Core/CodePages/data/8859-11.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-11.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-11.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-11.dat diff --git a/src/SampSharp.Core/CodePages/data/8859-13.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-13.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-13.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-13.dat diff --git a/src/SampSharp.Core/CodePages/data/8859-14.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-14.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-14.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-14.dat diff --git a/src/SampSharp.Core/CodePages/data/8859-15.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-15.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-15.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-15.dat diff --git a/src/SampSharp.Core/CodePages/data/8859-16.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-16.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-16.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-16.dat diff --git a/src/SampSharp.Core/CodePages/data/8859-2.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-2.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-2.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-2.dat diff --git a/src/SampSharp.Core/CodePages/data/8859-3.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-3.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-3.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-3.dat diff --git a/src/SampSharp.Core/CodePages/data/8859-4.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-4.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-4.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-4.dat diff --git a/src/SampSharp.Core/CodePages/data/8859-5.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-5.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-5.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-5.dat diff --git a/src/SampSharp.Core/CodePages/data/8859-6.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-6.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-6.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-6.dat diff --git a/src/SampSharp.Core/CodePages/data/8859-7.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-7.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-7.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-7.dat diff --git a/src/SampSharp.Core/CodePages/data/8859-8.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-8.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-8.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-8.dat diff --git a/src/SampSharp.Core/CodePages/data/8859-9.dat b/src/legacy/SampSharp.Core/CodePages/data/8859-9.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/8859-9.dat rename to src/legacy/SampSharp.Core/CodePages/data/8859-9.dat diff --git a/src/SampSharp.Core/CodePages/data/cp1250.dat b/src/legacy/SampSharp.Core/CodePages/data/cp1250.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp1250.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp1250.dat diff --git a/src/SampSharp.Core/CodePages/data/cp1251.dat b/src/legacy/SampSharp.Core/CodePages/data/cp1251.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp1251.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp1251.dat diff --git a/src/SampSharp.Core/CodePages/data/cp1252.dat b/src/legacy/SampSharp.Core/CodePages/data/cp1252.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp1252.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp1252.dat diff --git a/src/SampSharp.Core/CodePages/data/cp1253.dat b/src/legacy/SampSharp.Core/CodePages/data/cp1253.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp1253.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp1253.dat diff --git a/src/SampSharp.Core/CodePages/data/cp1254.dat b/src/legacy/SampSharp.Core/CodePages/data/cp1254.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp1254.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp1254.dat diff --git a/src/SampSharp.Core/CodePages/data/cp1255.dat b/src/legacy/SampSharp.Core/CodePages/data/cp1255.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp1255.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp1255.dat diff --git a/src/SampSharp.Core/CodePages/data/cp1256.dat b/src/legacy/SampSharp.Core/CodePages/data/cp1256.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp1256.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp1256.dat diff --git a/src/SampSharp.Core/CodePages/data/cp1257.dat b/src/legacy/SampSharp.Core/CodePages/data/cp1257.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp1257.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp1257.dat diff --git a/src/SampSharp.Core/CodePages/data/cp1258.dat b/src/legacy/SampSharp.Core/CodePages/data/cp1258.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp1258.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp1258.dat diff --git a/src/SampSharp.Core/CodePages/data/cp437.dat b/src/legacy/SampSharp.Core/CodePages/data/cp437.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp437.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp437.dat diff --git a/src/SampSharp.Core/CodePages/data/cp737.dat b/src/legacy/SampSharp.Core/CodePages/data/cp737.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp737.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp737.dat diff --git a/src/SampSharp.Core/CodePages/data/cp775.dat b/src/legacy/SampSharp.Core/CodePages/data/cp775.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp775.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp775.dat diff --git a/src/SampSharp.Core/CodePages/data/cp850.dat b/src/legacy/SampSharp.Core/CodePages/data/cp850.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp850.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp850.dat diff --git a/src/SampSharp.Core/CodePages/data/cp852.dat b/src/legacy/SampSharp.Core/CodePages/data/cp852.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp852.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp852.dat diff --git a/src/SampSharp.Core/CodePages/data/cp855.dat b/src/legacy/SampSharp.Core/CodePages/data/cp855.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp855.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp855.dat diff --git a/src/SampSharp.Core/CodePages/data/cp857.dat b/src/legacy/SampSharp.Core/CodePages/data/cp857.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp857.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp857.dat diff --git a/src/SampSharp.Core/CodePages/data/cp860.dat b/src/legacy/SampSharp.Core/CodePages/data/cp860.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp860.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp860.dat diff --git a/src/SampSharp.Core/CodePages/data/cp861.dat b/src/legacy/SampSharp.Core/CodePages/data/cp861.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp861.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp861.dat diff --git a/src/SampSharp.Core/CodePages/data/cp862.dat b/src/legacy/SampSharp.Core/CodePages/data/cp862.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp862.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp862.dat diff --git a/src/SampSharp.Core/CodePages/data/cp863.dat b/src/legacy/SampSharp.Core/CodePages/data/cp863.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp863.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp863.dat diff --git a/src/SampSharp.Core/CodePages/data/cp864.dat b/src/legacy/SampSharp.Core/CodePages/data/cp864.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp864.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp864.dat diff --git a/src/SampSharp.Core/CodePages/data/cp865.dat b/src/legacy/SampSharp.Core/CodePages/data/cp865.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp865.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp865.dat diff --git a/src/SampSharp.Core/CodePages/data/cp866.dat b/src/legacy/SampSharp.Core/CodePages/data/cp866.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp866.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp866.dat diff --git a/src/SampSharp.Core/CodePages/data/cp869.dat b/src/legacy/SampSharp.Core/CodePages/data/cp869.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp869.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp869.dat diff --git a/src/SampSharp.Core/CodePages/data/cp874.dat b/src/legacy/SampSharp.Core/CodePages/data/cp874.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp874.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp874.dat diff --git a/src/SampSharp.Core/CodePages/data/cp932.dat b/src/legacy/SampSharp.Core/CodePages/data/cp932.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp932.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp932.dat diff --git a/src/SampSharp.Core/CodePages/data/cp936.dat b/src/legacy/SampSharp.Core/CodePages/data/cp936.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp936.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp936.dat diff --git a/src/SampSharp.Core/CodePages/data/cp949.dat b/src/legacy/SampSharp.Core/CodePages/data/cp949.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp949.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp949.dat diff --git a/src/SampSharp.Core/CodePages/data/cp950.dat b/src/legacy/SampSharp.Core/CodePages/data/cp950.dat similarity index 100% rename from src/SampSharp.Core/CodePages/data/cp950.dat rename to src/legacy/SampSharp.Core/CodePages/data/cp950.dat diff --git a/src/SampSharp.Core/CoreLogGameModeBuilderExtensions.cs b/src/legacy/SampSharp.Core/CoreLogGameModeBuilderExtensions.cs similarity index 100% rename from src/SampSharp.Core/CoreLogGameModeBuilderExtensions.cs rename to src/legacy/SampSharp.Core/CoreLogGameModeBuilderExtensions.cs diff --git a/src/SampSharp.Core/EncodingGameModeBuilderExtensions.cs b/src/legacy/SampSharp.Core/EncodingGameModeBuilderExtensions.cs similarity index 100% rename from src/SampSharp.Core/EncodingGameModeBuilderExtensions.cs rename to src/legacy/SampSharp.Core/EncodingGameModeBuilderExtensions.cs diff --git a/src/SampSharp.Core/GameModeBuilder.cs b/src/legacy/SampSharp.Core/GameModeBuilder.cs similarity index 100% rename from src/SampSharp.Core/GameModeBuilder.cs rename to src/legacy/SampSharp.Core/GameModeBuilder.cs diff --git a/src/SampSharp.Core/GameModeBuilderException.cs b/src/legacy/SampSharp.Core/GameModeBuilderException.cs similarity index 100% rename from src/SampSharp.Core/GameModeBuilderException.cs rename to src/legacy/SampSharp.Core/GameModeBuilderException.cs diff --git a/src/SampSharp.Core/GameModeClientException.cs b/src/legacy/SampSharp.Core/GameModeClientException.cs similarity index 100% rename from src/SampSharp.Core/GameModeClientException.cs rename to src/legacy/SampSharp.Core/GameModeClientException.cs diff --git a/src/SampSharp.Core/GameModeClientExtensions.cs b/src/legacy/SampSharp.Core/GameModeClientExtensions.cs similarity index 100% rename from src/SampSharp.Core/GameModeClientExtensions.cs rename to src/legacy/SampSharp.Core/GameModeClientExtensions.cs diff --git a/src/SampSharp.Core/GameModeNotRunningException.cs b/src/legacy/SampSharp.Core/GameModeNotRunningException.cs similarity index 100% rename from src/SampSharp.Core/GameModeNotRunningException.cs rename to src/legacy/SampSharp.Core/GameModeNotRunningException.cs diff --git a/src/SampSharp.Core/GameModeRunnerFactory.cs b/src/legacy/SampSharp.Core/GameModeRunnerFactory.cs similarity index 100% rename from src/SampSharp.Core/GameModeRunnerFactory.cs rename to src/legacy/SampSharp.Core/GameModeRunnerFactory.cs diff --git a/src/SampSharp.Core/GameModeRunnerRun.cs b/src/legacy/SampSharp.Core/GameModeRunnerRun.cs similarity index 100% rename from src/SampSharp.Core/GameModeRunnerRun.cs rename to src/legacy/SampSharp.Core/GameModeRunnerRun.cs diff --git a/src/SampSharp.Core/HostedGameModeClient.cs b/src/legacy/SampSharp.Core/HostedGameModeClient.cs similarity index 100% rename from src/SampSharp.Core/HostedGameModeClient.cs rename to src/legacy/SampSharp.Core/HostedGameModeClient.cs diff --git a/src/SampSharp.Core/Hosting/Amx.cs b/src/legacy/SampSharp.Core/Hosting/Amx.cs similarity index 100% rename from src/SampSharp.Core/Hosting/Amx.cs rename to src/legacy/SampSharp.Core/Hosting/Amx.cs diff --git a/src/SampSharp.Core/Hosting/AmxCell.cs b/src/legacy/SampSharp.Core/Hosting/AmxCell.cs similarity index 100% rename from src/SampSharp.Core/Hosting/AmxCell.cs rename to src/legacy/SampSharp.Core/Hosting/AmxCell.cs diff --git a/src/SampSharp.Core/Hosting/AmxError.cs b/src/legacy/SampSharp.Core/Hosting/AmxError.cs similarity index 100% rename from src/SampSharp.Core/Hosting/AmxError.cs rename to src/legacy/SampSharp.Core/Hosting/AmxError.cs diff --git a/src/SampSharp.Core/Hosting/AmxExport.cs b/src/legacy/SampSharp.Core/Hosting/AmxExport.cs similarity index 100% rename from src/SampSharp.Core/Hosting/AmxExport.cs rename to src/legacy/SampSharp.Core/Hosting/AmxExport.cs diff --git a/src/SampSharp.Core/Hosting/Interop.cs b/src/legacy/SampSharp.Core/Hosting/Interop.cs similarity index 100% rename from src/SampSharp.Core/Hosting/Interop.cs rename to src/legacy/SampSharp.Core/Hosting/Interop.cs diff --git a/src/SampSharp.Core/Hosting/PluginData.cs b/src/legacy/SampSharp.Core/Hosting/PluginData.cs similarity index 100% rename from src/SampSharp.Core/Hosting/PluginData.cs rename to src/legacy/SampSharp.Core/Hosting/PluginData.cs diff --git a/src/SampSharp.Core/Hosting/SampSharpApi.cs b/src/legacy/SampSharp.Core/Hosting/SampSharpApi.cs similarity index 100% rename from src/SampSharp.Core/Hosting/SampSharpApi.cs rename to src/legacy/SampSharp.Core/Hosting/SampSharpApi.cs diff --git a/src/SampSharp.Core/IGameModeClient.cs b/src/legacy/SampSharp.Core/IGameModeClient.cs similarity index 100% rename from src/SampSharp.Core/IGameModeClient.cs rename to src/legacy/SampSharp.Core/IGameModeClient.cs diff --git a/src/SampSharp.Core/IGameModeProvider.cs b/src/legacy/SampSharp.Core/IGameModeProvider.cs similarity index 100% rename from src/SampSharp.Core/IGameModeProvider.cs rename to src/legacy/SampSharp.Core/IGameModeProvider.cs diff --git a/src/SampSharp.Core/IGameModeRunner.cs b/src/legacy/SampSharp.Core/IGameModeRunner.cs similarity index 100% rename from src/SampSharp.Core/IGameModeRunner.cs rename to src/legacy/SampSharp.Core/IGameModeRunner.cs diff --git a/src/SampSharp.Core/ISynchronizationProvider.cs b/src/legacy/SampSharp.Core/ISynchronizationProvider.cs similarity index 100% rename from src/SampSharp.Core/ISynchronizationProvider.cs rename to src/legacy/SampSharp.Core/ISynchronizationProvider.cs diff --git a/src/SampSharp.Core/InternalStorage.cs b/src/legacy/SampSharp.Core/InternalStorage.cs similarity index 100% rename from src/SampSharp.Core/InternalStorage.cs rename to src/legacy/SampSharp.Core/InternalStorage.cs diff --git a/src/SampSharp.Core/Logging/CoreLog.cs b/src/legacy/SampSharp.Core/Logging/CoreLog.cs similarity index 100% rename from src/SampSharp.Core/Logging/CoreLog.cs rename to src/legacy/SampSharp.Core/Logging/CoreLog.cs diff --git a/src/SampSharp.Core/Logging/CoreLogLevel.cs b/src/legacy/SampSharp.Core/Logging/CoreLogLevel.cs similarity index 100% rename from src/SampSharp.Core/Logging/CoreLogLevel.cs rename to src/legacy/SampSharp.Core/Logging/CoreLogLevel.cs diff --git a/src/SampSharp.Core/Natives/IlGeneratorExtensions.cs b/src/legacy/SampSharp.Core/Natives/IlGeneratorExtensions.cs similarity index 100% rename from src/SampSharp.Core/Natives/IlGeneratorExtensions.cs rename to src/legacy/SampSharp.Core/Natives/IlGeneratorExtensions.cs diff --git a/src/SampSharp.Core/Natives/NativeIlGenContext.cs b/src/legacy/SampSharp.Core/Natives/NativeIlGenContext.cs similarity index 100% rename from src/SampSharp.Core/Natives/NativeIlGenContext.cs rename to src/legacy/SampSharp.Core/Natives/NativeIlGenContext.cs diff --git a/src/SampSharp.Core/Natives/NativeIlGenParam.cs b/src/legacy/SampSharp.Core/Natives/NativeIlGenParam.cs similarity index 100% rename from src/SampSharp.Core/Natives/NativeIlGenParam.cs rename to src/legacy/SampSharp.Core/Natives/NativeIlGenParam.cs diff --git a/src/SampSharp.Core/Natives/NativeObjectProxyFactoryImpl.cs b/src/legacy/SampSharp.Core/Natives/NativeObjectProxyFactoryImpl.cs similarity index 100% rename from src/SampSharp.Core/Natives/NativeObjectProxyFactoryImpl.cs rename to src/legacy/SampSharp.Core/Natives/NativeObjectProxyFactoryImpl.cs diff --git a/src/SampSharp.Core/Natives/NativeObjects/INativeObjectProxyFactory.cs b/src/legacy/SampSharp.Core/Natives/NativeObjects/INativeObjectProxyFactory.cs similarity index 100% rename from src/SampSharp.Core/Natives/NativeObjects/INativeObjectProxyFactory.cs rename to src/legacy/SampSharp.Core/Natives/NativeObjects/INativeObjectProxyFactory.cs diff --git a/src/SampSharp.Core/Natives/NativeObjects/NativeMethodAttribute.cs b/src/legacy/SampSharp.Core/Natives/NativeObjects/NativeMethodAttribute.cs similarity index 100% rename from src/SampSharp.Core/Natives/NativeObjects/NativeMethodAttribute.cs rename to src/legacy/SampSharp.Core/Natives/NativeObjects/NativeMethodAttribute.cs diff --git a/src/SampSharp.Core/Natives/NativeObjects/NativeNotImplementedException.cs b/src/legacy/SampSharp.Core/Natives/NativeObjects/NativeNotImplementedException.cs similarity index 100% rename from src/SampSharp.Core/Natives/NativeObjects/NativeNotImplementedException.cs rename to src/legacy/SampSharp.Core/Natives/NativeObjects/NativeNotImplementedException.cs diff --git a/src/SampSharp.Core/Natives/NativeObjects/NativeObjectIdentifiersAttribute.cs b/src/legacy/SampSharp.Core/Natives/NativeObjects/NativeObjectIdentifiersAttribute.cs similarity index 100% rename from src/SampSharp.Core/Natives/NativeObjects/NativeObjectIdentifiersAttribute.cs rename to src/legacy/SampSharp.Core/Natives/NativeObjects/NativeObjectIdentifiersAttribute.cs diff --git a/src/SampSharp.Core/Natives/NativeObjects/NativeObjectProxyFactory.cs b/src/legacy/SampSharp.Core/Natives/NativeObjects/NativeObjectProxyFactory.cs similarity index 100% rename from src/SampSharp.Core/Natives/NativeObjects/NativeObjectProxyFactory.cs rename to src/legacy/SampSharp.Core/Natives/NativeObjects/NativeObjectProxyFactory.cs diff --git a/src/SampSharp.Core/Natives/NativeObjects/NativeObjectSingleton`1.cs b/src/legacy/SampSharp.Core/Natives/NativeObjects/NativeObjectSingleton`1.cs similarity index 100% rename from src/SampSharp.Core/Natives/NativeObjects/NativeObjectSingleton`1.cs rename to src/legacy/SampSharp.Core/Natives/NativeObjects/NativeObjectSingleton`1.cs diff --git a/src/SampSharp.Core/Natives/NativeObjects/NativePropertyAttribute.cs b/src/legacy/SampSharp.Core/Natives/NativeObjects/NativePropertyAttribute.cs similarity index 100% rename from src/SampSharp.Core/Natives/NativeObjects/NativePropertyAttribute.cs rename to src/legacy/SampSharp.Core/Natives/NativeObjects/NativePropertyAttribute.cs diff --git a/src/SampSharp.Core/Natives/NativeParameterType.cs b/src/legacy/SampSharp.Core/Natives/NativeParameterType.cs similarity index 100% rename from src/SampSharp.Core/Natives/NativeParameterType.cs rename to src/legacy/SampSharp.Core/Natives/NativeParameterType.cs diff --git a/src/SampSharp.Core/Natives/NativeUtils.cs b/src/legacy/SampSharp.Core/Natives/NativeUtils.cs similarity index 100% rename from src/SampSharp.Core/Natives/NativeUtils.cs rename to src/legacy/SampSharp.Core/Natives/NativeUtils.cs diff --git a/src/SampSharp.Core/Natives/ValueConverter.cs b/src/legacy/SampSharp.Core/Natives/ValueConverter.cs similarity index 100% rename from src/SampSharp.Core/Natives/ValueConverter.cs rename to src/legacy/SampSharp.Core/Natives/ValueConverter.cs diff --git a/src/SampSharp.Core/Natives/VarArgsState.cs b/src/legacy/SampSharp.Core/Natives/VarArgsState.cs similarity index 100% rename from src/SampSharp.Core/Natives/VarArgsState.cs rename to src/legacy/SampSharp.Core/Natives/VarArgsState.cs diff --git a/src/SampSharp.Core/RconFixGameModeBuilderExtensions.cs b/src/legacy/SampSharp.Core/RconFixGameModeBuilderExtensions.cs similarity index 100% rename from src/SampSharp.Core/RconFixGameModeBuilderExtensions.cs rename to src/legacy/SampSharp.Core/RconFixGameModeBuilderExtensions.cs diff --git a/src/SampSharp.Core/RedirectConsoleOutputGameModeBuilderExtensions.cs b/src/legacy/SampSharp.Core/RedirectConsoleOutputGameModeBuilderExtensions.cs similarity index 100% rename from src/SampSharp.Core/RedirectConsoleOutputGameModeBuilderExtensions.cs rename to src/legacy/SampSharp.Core/RedirectConsoleOutputGameModeBuilderExtensions.cs diff --git a/src/SampSharp.Core/SampSharp.Core.csproj b/src/legacy/SampSharp.Core/SampSharp.Core.csproj similarity index 100% rename from src/SampSharp.Core/SampSharp.Core.csproj rename to src/legacy/SampSharp.Core/SampSharp.Core.csproj diff --git a/src/SampSharp.Core/SampSharp.Core.csproj.DotSettings b/src/legacy/SampSharp.Core/SampSharp.Core.csproj.DotSettings similarity index 100% rename from src/SampSharp.Core/SampSharp.Core.csproj.DotSettings rename to src/legacy/SampSharp.Core/SampSharp.Core.csproj.DotSettings diff --git a/src/SampSharp.Core/ServerLogWriter.cs b/src/legacy/SampSharp.Core/ServerLogWriter.cs similarity index 100% rename from src/SampSharp.Core/ServerLogWriter.cs rename to src/legacy/SampSharp.Core/ServerLogWriter.cs diff --git a/src/SampSharp.Core/Threading/MainThreadTaskAwaiter.cs b/src/legacy/SampSharp.Core/Threading/MainThreadTaskAwaiter.cs similarity index 100% rename from src/SampSharp.Core/Threading/MainThreadTaskAwaiter.cs rename to src/legacy/SampSharp.Core/Threading/MainThreadTaskAwaiter.cs diff --git a/src/SampSharp.Core/Threading/SampSharpSynchronizationContext.cs b/src/legacy/SampSharp.Core/Threading/SampSharpSynchronizationContext.cs similarity index 100% rename from src/SampSharp.Core/Threading/SampSharpSynchronizationContext.cs rename to src/legacy/SampSharp.Core/Threading/SampSharpSynchronizationContext.cs diff --git a/src/SampSharp.Core/Threading/SyncToMainThreadTask.cs b/src/legacy/SampSharp.Core/Threading/SyncToMainThreadTask.cs similarity index 100% rename from src/SampSharp.Core/Threading/SyncToMainThreadTask.cs rename to src/legacy/SampSharp.Core/Threading/SyncToMainThreadTask.cs diff --git a/src/SampSharp.Core/Threading/TaskHelper.cs b/src/legacy/SampSharp.Core/Threading/TaskHelper.cs similarity index 100% rename from src/SampSharp.Core/Threading/TaskHelper.cs rename to src/legacy/SampSharp.Core/Threading/TaskHelper.cs diff --git a/src/SampSharp.Core/UnhandledExceptionEventArgs.cs b/src/legacy/SampSharp.Core/UnhandledExceptionEventArgs.cs similarity index 100% rename from src/SampSharp.Core/UnhandledExceptionEventArgs.cs rename to src/legacy/SampSharp.Core/UnhandledExceptionEventArgs.cs diff --git a/SampSharp.Documentation.shfbproj b/src/legacy/SampSharp.Documentation.shfbproj similarity index 89% rename from SampSharp.Documentation.shfbproj rename to src/legacy/SampSharp.Documentation.shfbproj index 39083db8c..103843894 100644 --- a/SampSharp.Documentation.shfbproj +++ b/src/legacy/SampSharp.Documentation.shfbproj @@ -14,7 +14,7 @@ Documentation .NET Core/.NET Standard/.NET 5.0+ - Help\content\ + ..\..\Help\content\ Documentation en-US OnlyWarningsAndErrors @@ -25,12 +25,12 @@ False True - - - - - - + + + + + + 2 False diff --git a/SampSharp.Documentation.sln b/src/legacy/SampSharp.Documentation.sln similarity index 100% rename from SampSharp.Documentation.sln rename to src/legacy/SampSharp.Documentation.sln diff --git a/src/SampSharp.Entities/Annotations/Annotations.cs b/src/legacy/SampSharp.Entities/Annotations/Annotations.cs similarity index 100% rename from src/SampSharp.Entities/Annotations/Annotations.cs rename to src/legacy/SampSharp.Entities/Annotations/Annotations.cs diff --git a/src/SampSharp.Entities/Components/Component.cs b/src/legacy/SampSharp.Entities/Components/Component.cs similarity index 100% rename from src/SampSharp.Entities/Components/Component.cs rename to src/legacy/SampSharp.Entities/Components/Component.cs diff --git a/src/SampSharp.Entities/Components/NativeComponent.cs b/src/legacy/SampSharp.Entities/Components/NativeComponent.cs similarity index 100% rename from src/SampSharp.Entities/Components/NativeComponent.cs rename to src/legacy/SampSharp.Entities/Components/NativeComponent.cs diff --git a/src/SampSharp.Entities/EcsBuilder.cs b/src/legacy/SampSharp.Entities/EcsBuilder.cs similarity index 100% rename from src/SampSharp.Entities/EcsBuilder.cs rename to src/legacy/SampSharp.Entities/EcsBuilder.cs diff --git a/src/SampSharp.Entities/EcsBuilderEventExtensions.cs b/src/legacy/SampSharp.Entities/EcsBuilderEventExtensions.cs similarity index 100% rename from src/SampSharp.Entities/EcsBuilderEventExtensions.cs rename to src/legacy/SampSharp.Entities/EcsBuilderEventExtensions.cs diff --git a/src/SampSharp.Entities/EcsBuilderExtensions.cs b/src/legacy/SampSharp.Entities/EcsBuilderExtensions.cs similarity index 100% rename from src/SampSharp.Entities/EcsBuilderExtensions.cs rename to src/legacy/SampSharp.Entities/EcsBuilderExtensions.cs diff --git a/src/SampSharp.Entities/EcsBuilderUseMiddlewareExtensions.cs b/src/legacy/SampSharp.Entities/EcsBuilderUseMiddlewareExtensions.cs similarity index 100% rename from src/SampSharp.Entities/EcsBuilderUseMiddlewareExtensions.cs rename to src/legacy/SampSharp.Entities/EcsBuilderUseMiddlewareExtensions.cs diff --git a/src/SampSharp.Entities/EcsManager.cs b/src/legacy/SampSharp.Entities/EcsManager.cs similarity index 100% rename from src/SampSharp.Entities/EcsManager.cs rename to src/legacy/SampSharp.Entities/EcsManager.cs diff --git a/src/SampSharp.Entities/Entities/EntityCreationException.cs b/src/legacy/SampSharp.Entities/Entities/EntityCreationException.cs similarity index 100% rename from src/SampSharp.Entities/Entities/EntityCreationException.cs rename to src/legacy/SampSharp.Entities/Entities/EntityCreationException.cs diff --git a/src/SampSharp.Entities/Entities/EntityExtensions.cs b/src/legacy/SampSharp.Entities/Entities/EntityExtensions.cs similarity index 100% rename from src/SampSharp.Entities/Entities/EntityExtensions.cs rename to src/legacy/SampSharp.Entities/Entities/EntityExtensions.cs diff --git a/src/SampSharp.Entities/Entities/EntityId.cs b/src/legacy/SampSharp.Entities/Entities/EntityId.cs similarity index 100% rename from src/SampSharp.Entities/Entities/EntityId.cs rename to src/legacy/SampSharp.Entities/Entities/EntityId.cs diff --git a/src/SampSharp.Entities/Entities/EntityManager.cs b/src/legacy/SampSharp.Entities/Entities/EntityManager.cs similarity index 100% rename from src/SampSharp.Entities/Entities/EntityManager.cs rename to src/legacy/SampSharp.Entities/Entities/EntityManager.cs diff --git a/src/SampSharp.Entities/Entities/EntityNotFoundException.cs b/src/legacy/SampSharp.Entities/Entities/EntityNotFoundException.cs similarity index 100% rename from src/SampSharp.Entities/Entities/EntityNotFoundException.cs rename to src/legacy/SampSharp.Entities/Entities/EntityNotFoundException.cs diff --git a/src/SampSharp.Entities/Entities/EntityTypeAttribute.cs b/src/legacy/SampSharp.Entities/Entities/EntityTypeAttribute.cs similarity index 100% rename from src/SampSharp.Entities/Entities/EntityTypeAttribute.cs rename to src/legacy/SampSharp.Entities/Entities/EntityTypeAttribute.cs diff --git a/src/SampSharp.Entities/Entities/EntityTypeRegistry.cs b/src/legacy/SampSharp.Entities/Entities/EntityTypeRegistry.cs similarity index 100% rename from src/SampSharp.Entities/Entities/EntityTypeRegistry.cs rename to src/legacy/SampSharp.Entities/Entities/EntityTypeRegistry.cs diff --git a/src/SampSharp.Entities/Entities/IEntityManager.cs b/src/legacy/SampSharp.Entities/Entities/IEntityManager.cs similarity index 100% rename from src/SampSharp.Entities/Entities/IEntityManager.cs rename to src/legacy/SampSharp.Entities/Entities/IEntityManager.cs diff --git a/src/SampSharp.Entities/Entities/InvalidEntityArgumentException.cs b/src/legacy/SampSharp.Entities/Entities/InvalidEntityArgumentException.cs similarity index 100% rename from src/SampSharp.Entities/Entities/InvalidEntityArgumentException.cs rename to src/legacy/SampSharp.Entities/Entities/InvalidEntityArgumentException.cs diff --git a/src/SampSharp.Entities/Events/EventAttribute.cs b/src/legacy/SampSharp.Entities/Events/EventAttribute.cs similarity index 100% rename from src/SampSharp.Entities/Events/EventAttribute.cs rename to src/legacy/SampSharp.Entities/Events/EventAttribute.cs diff --git a/src/SampSharp.Entities/Events/EventContext.cs b/src/legacy/SampSharp.Entities/Events/EventContext.cs similarity index 100% rename from src/SampSharp.Entities/Events/EventContext.cs rename to src/legacy/SampSharp.Entities/Events/EventContext.cs diff --git a/src/SampSharp.Entities/Events/EventContextImpl.cs b/src/legacy/SampSharp.Entities/Events/EventContextImpl.cs similarity index 100% rename from src/SampSharp.Entities/Events/EventContextImpl.cs rename to src/legacy/SampSharp.Entities/Events/EventContextImpl.cs diff --git a/src/SampSharp.Entities/Events/EventDelegate.cs b/src/legacy/SampSharp.Entities/Events/EventDelegate.cs similarity index 100% rename from src/SampSharp.Entities/Events/EventDelegate.cs rename to src/legacy/SampSharp.Entities/Events/EventDelegate.cs diff --git a/src/SampSharp.Entities/Events/EventHelper.cs b/src/legacy/SampSharp.Entities/Events/EventHelper.cs similarity index 100% rename from src/SampSharp.Entities/Events/EventHelper.cs rename to src/legacy/SampSharp.Entities/Events/EventHelper.cs diff --git a/src/SampSharp.Entities/Events/EventScopeMiddleware.cs b/src/legacy/SampSharp.Entities/Events/EventScopeMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/Events/EventScopeMiddleware.cs rename to src/legacy/SampSharp.Entities/Events/EventScopeMiddleware.cs diff --git a/src/SampSharp.Entities/Events/EventService.cs b/src/legacy/SampSharp.Entities/Events/EventService.cs similarity index 100% rename from src/SampSharp.Entities/Events/EventService.cs rename to src/legacy/SampSharp.Entities/Events/EventService.cs diff --git a/src/SampSharp.Entities/Events/EventSignatureException.cs b/src/legacy/SampSharp.Entities/Events/EventSignatureException.cs similarity index 100% rename from src/SampSharp.Entities/Events/EventSignatureException.cs rename to src/legacy/SampSharp.Entities/Events/EventSignatureException.cs diff --git a/src/SampSharp.Entities/Events/IEventService.cs b/src/legacy/SampSharp.Entities/Events/IEventService.cs similarity index 100% rename from src/SampSharp.Entities/Events/IEventService.cs rename to src/legacy/SampSharp.Entities/Events/IEventService.cs diff --git a/src/SampSharp.Entities/GameModeBuilderExtensions.cs b/src/legacy/SampSharp.Entities/GameModeBuilderExtensions.cs similarity index 100% rename from src/SampSharp.Entities/GameModeBuilderExtensions.cs rename to src/legacy/SampSharp.Entities/GameModeBuilderExtensions.cs diff --git a/src/SampSharp.Entities/IEcsBuilder.cs b/src/legacy/SampSharp.Entities/IEcsBuilder.cs similarity index 100% rename from src/SampSharp.Entities/IEcsBuilder.cs rename to src/legacy/SampSharp.Entities/IEcsBuilder.cs diff --git a/src/SampSharp.Entities/IStartup.cs b/src/legacy/SampSharp.Entities/IStartup.cs similarity index 100% rename from src/SampSharp.Entities/IStartup.cs rename to src/legacy/SampSharp.Entities/IStartup.cs diff --git a/src/SampSharp.Entities/Natives/INativeProxy.cs b/src/legacy/SampSharp.Entities/Natives/INativeProxy.cs similarity index 100% rename from src/SampSharp.Entities/Natives/INativeProxy.cs rename to src/legacy/SampSharp.Entities/Natives/INativeProxy.cs diff --git a/src/SampSharp.Entities/Natives/NativeProxy.cs b/src/legacy/SampSharp.Entities/Natives/NativeProxy.cs similarity index 100% rename from src/SampSharp.Entities/Natives/NativeProxy.cs rename to src/legacy/SampSharp.Entities/Natives/NativeProxy.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/CommandInfo.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/CommandInfo.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/CommandInfo.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/CommandInfo.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/CommandParameterAttribute.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/CommandParameterAttribute.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/CommandParameterAttribute.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/CommandParameterAttribute.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/CommandParameterInfo.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/CommandParameterInfo.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/CommandParameterInfo.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/CommandParameterInfo.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/CommandServiceBase.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/CommandServiceBase.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/CommandServiceBase.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/CommandServiceBase.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/ICommandMethodInfo.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/ICommandMethodInfo.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/ICommandMethodInfo.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/ICommandMethodInfo.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/IPlayerCommandService.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/IPlayerCommandService.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/IPlayerCommandService.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/IPlayerCommandService.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/IRconCommandService.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/IRconCommandService.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/IRconCommandService.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/IRconCommandService.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/InvokeResponse.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/InvokeResponse.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/InvokeResponse.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/InvokeResponse.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/InvokeResult.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/InvokeResult.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/InvokeResult.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/InvokeResult.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/Parsers/DoubleParser.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/DoubleParser.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/Parsers/DoubleParser.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/DoubleParser.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/Parsers/EntityParser.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/EntityParser.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/Parsers/EntityParser.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/EntityParser.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/Parsers/EnumParser.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/EnumParser.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/Parsers/EnumParser.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/EnumParser.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/Parsers/FloatParser.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/FloatParser.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/Parsers/FloatParser.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/FloatParser.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/Parsers/ICommandParameterParser.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/ICommandParameterParser.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/Parsers/ICommandParameterParser.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/ICommandParameterParser.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/Parsers/IntParser.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/IntParser.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/Parsers/IntParser.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/IntParser.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/Parsers/PlayerParser.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/PlayerParser.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/Parsers/PlayerParser.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/PlayerParser.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/Parsers/StringParser.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/StringParser.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/Parsers/StringParser.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/StringParser.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/Parsers/WordParser.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/WordParser.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/Parsers/WordParser.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/Parsers/WordParser.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/PlayerCommandAttribute.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/PlayerCommandAttribute.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/PlayerCommandAttribute.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/PlayerCommandAttribute.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/PlayerCommandProcessingMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/PlayerCommandProcessingMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/PlayerCommandProcessingMiddleware.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/PlayerCommandProcessingMiddleware.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/PlayerCommandService.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/PlayerCommandService.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/PlayerCommandService.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/PlayerCommandService.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/RconCommandAttribute.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/RconCommandAttribute.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/RconCommandAttribute.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/RconCommandAttribute.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/RconCommandProcessingMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/RconCommandProcessingMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/RconCommandProcessingMiddleware.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/RconCommandProcessingMiddleware.cs diff --git a/src/SampSharp.Entities/SAMP/Commands/RconCommandService.cs b/src/legacy/SampSharp.Entities/SAMP/Commands/RconCommandService.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Commands/RconCommandService.cs rename to src/legacy/SampSharp.Entities/SAMP/Commands/RconCommandService.cs diff --git a/src/SampSharp.Entities/SAMP/Components/Actor.cs b/src/legacy/SampSharp.Entities/SAMP/Components/Actor.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Components/Actor.cs rename to src/legacy/SampSharp.Entities/SAMP/Components/Actor.cs diff --git a/src/SampSharp.Entities/SAMP/Components/GangZone.cs b/src/legacy/SampSharp.Entities/SAMP/Components/GangZone.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Components/GangZone.cs rename to src/legacy/SampSharp.Entities/SAMP/Components/GangZone.cs diff --git a/src/SampSharp.Entities/SAMP/Components/GlobalObject.cs b/src/legacy/SampSharp.Entities/SAMP/Components/GlobalObject.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Components/GlobalObject.cs rename to src/legacy/SampSharp.Entities/SAMP/Components/GlobalObject.cs diff --git a/src/SampSharp.Entities/SAMP/Components/Menu.cs b/src/legacy/SampSharp.Entities/SAMP/Components/Menu.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Components/Menu.cs rename to src/legacy/SampSharp.Entities/SAMP/Components/Menu.cs diff --git a/src/SampSharp.Entities/SAMP/Components/Pickup.cs b/src/legacy/SampSharp.Entities/SAMP/Components/Pickup.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Components/Pickup.cs rename to src/legacy/SampSharp.Entities/SAMP/Components/Pickup.cs diff --git a/src/SampSharp.Entities/SAMP/Components/Player.cs b/src/legacy/SampSharp.Entities/SAMP/Components/Player.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Components/Player.cs rename to src/legacy/SampSharp.Entities/SAMP/Components/Player.cs diff --git a/src/SampSharp.Entities/SAMP/Components/PlayerObject.cs b/src/legacy/SampSharp.Entities/SAMP/Components/PlayerObject.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Components/PlayerObject.cs rename to src/legacy/SampSharp.Entities/SAMP/Components/PlayerObject.cs diff --git a/src/SampSharp.Entities/SAMP/Components/PlayerTextDraw.cs b/src/legacy/SampSharp.Entities/SAMP/Components/PlayerTextDraw.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Components/PlayerTextDraw.cs rename to src/legacy/SampSharp.Entities/SAMP/Components/PlayerTextDraw.cs diff --git a/src/SampSharp.Entities/SAMP/Components/PlayerTextLabel.cs b/src/legacy/SampSharp.Entities/SAMP/Components/PlayerTextLabel.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Components/PlayerTextLabel.cs rename to src/legacy/SampSharp.Entities/SAMP/Components/PlayerTextLabel.cs diff --git a/src/SampSharp.Entities/SAMP/Components/TextDraw.cs b/src/legacy/SampSharp.Entities/SAMP/Components/TextDraw.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Components/TextDraw.cs rename to src/legacy/SampSharp.Entities/SAMP/Components/TextDraw.cs diff --git a/src/SampSharp.Entities/SAMP/Components/TextLabel.cs b/src/legacy/SampSharp.Entities/SAMP/Components/TextLabel.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Components/TextLabel.cs rename to src/legacy/SampSharp.Entities/SAMP/Components/TextLabel.cs diff --git a/src/SampSharp.Entities/SAMP/Components/Vehicle.cs b/src/legacy/SampSharp.Entities/SAMP/Components/Vehicle.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Components/Vehicle.cs rename to src/legacy/SampSharp.Entities/SAMP/Components/Vehicle.cs diff --git a/src/SampSharp.Entities/SAMP/Data/Color.cs b/src/legacy/SampSharp.Entities/SAMP/Data/Color.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Data/Color.cs rename to src/legacy/SampSharp.Entities/SAMP/Data/Color.cs diff --git a/src/SampSharp.Entities/SAMP/Data/ColorFormat.cs b/src/legacy/SampSharp.Entities/SAMP/Data/ColorFormat.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Data/ColorFormat.cs rename to src/legacy/SampSharp.Entities/SAMP/Data/ColorFormat.cs diff --git a/src/SampSharp.Entities/SAMP/Data/Matrix.cs b/src/legacy/SampSharp.Entities/SAMP/Data/Matrix.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Data/Matrix.cs rename to src/legacy/SampSharp.Entities/SAMP/Data/Matrix.cs diff --git a/src/SampSharp.Entities/SAMP/Data/Quaternion.cs b/src/legacy/SampSharp.Entities/SAMP/Data/Quaternion.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Data/Quaternion.cs rename to src/legacy/SampSharp.Entities/SAMP/Data/Quaternion.cs diff --git a/src/SampSharp.Entities/SAMP/Data/SampEntities.cs b/src/legacy/SampSharp.Entities/SAMP/Data/SampEntities.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Data/SampEntities.cs rename to src/legacy/SampSharp.Entities/SAMP/Data/SampEntities.cs diff --git a/src/SampSharp.Entities/SAMP/Data/SampLimits.cs b/src/legacy/SampSharp.Entities/SAMP/Data/SampLimits.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Data/SampLimits.cs rename to src/legacy/SampSharp.Entities/SAMP/Data/SampLimits.cs diff --git a/src/SampSharp.Entities/SAMP/Data/Vector2.cs b/src/legacy/SampSharp.Entities/SAMP/Data/Vector2.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Data/Vector2.cs rename to src/legacy/SampSharp.Entities/SAMP/Data/Vector2.cs diff --git a/src/SampSharp.Entities/SAMP/Data/Vector3.cs b/src/legacy/SampSharp.Entities/SAMP/Data/Vector3.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Data/Vector3.cs rename to src/legacy/SampSharp.Entities/SAMP/Data/Vector3.cs diff --git a/src/SampSharp.Entities/SAMP/Data/Vector4.cs b/src/legacy/SampSharp.Entities/SAMP/Data/Vector4.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Data/Vector4.cs rename to src/legacy/SampSharp.Entities/SAMP/Data/Vector4.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/BodyPart.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/BodyPart.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/BodyPart.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/BodyPart.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/Bone.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/Bone.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/Bone.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/Bone.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/BulletHitType.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/BulletHitType.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/BulletHitType.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/BulletHitType.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/CameraCut.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/CameraCut.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/CameraCut.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/CameraCut.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/CameraMode.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/CameraMode.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/CameraMode.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/CameraMode.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/CarModType.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/CarModType.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/CarModType.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/CarModType.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/CheckpointType.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/CheckpointType.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/CheckpointType.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/CheckpointType.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/ConnectionStatus.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/ConnectionStatus.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/ConnectionStatus.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/ConnectionStatus.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/DialogStyle.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/DialogStyle.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/DialogStyle.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/DialogStyle.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/DisconnectReason.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/DisconnectReason.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/DisconnectReason.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/DisconnectReason.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/EditObjectResponse.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/EditObjectResponse.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/EditObjectResponse.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/EditObjectResponse.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/EnterExit.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/EnterExit.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/EnterExit.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/EnterExit.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/ExplosionType.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/ExplosionType.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/ExplosionType.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/ExplosionType.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/FightStyle.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/FightStyle.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/FightStyle.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/FightStyle.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/Keys.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/Keys.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/Keys.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/Keys.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/MapIcon.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/MapIcon.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/MapIcon.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/MapIcon.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/MapIconType.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/MapIconType.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/MapIconType.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/MapIconType.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/ObjectMaterialSize.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/ObjectMaterialSize.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/ObjectMaterialSize.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/ObjectMaterialSize.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/ObjectMaterialTextAlign.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/ObjectMaterialTextAlign.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/ObjectMaterialTextAlign.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/ObjectMaterialTextAlign.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/ObjectType.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/ObjectType.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/ObjectType.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/ObjectType.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/PickupType.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/PickupType.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/PickupType.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/PickupType.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/PlayerClickSource.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/PlayerClickSource.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/PlayerClickSource.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/PlayerClickSource.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/PlayerMarkersMode.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/PlayerMarkersMode.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/PlayerMarkersMode.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/PlayerMarkersMode.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/PlayerRecordingType.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/PlayerRecordingType.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/PlayerRecordingType.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/PlayerRecordingType.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/PlayerState.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/PlayerState.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/PlayerState.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/PlayerState.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/ServerVarType.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/ServerVarType.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/ServerVarType.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/ServerVarType.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/ShopName.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/ShopName.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/ShopName.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/ShopName.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/SpecialAction.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/SpecialAction.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/SpecialAction.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/SpecialAction.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/SpectateMode.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/SpectateMode.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/SpectateMode.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/SpectateMode.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/TextDrawAlignment.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/TextDrawAlignment.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/TextDrawAlignment.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/TextDrawAlignment.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/TextDrawFont.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/TextDrawFont.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/TextDrawFont.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/TextDrawFont.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/VehicleCategory.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/VehicleCategory.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/VehicleCategory.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/VehicleCategory.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/VehicleColor.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/VehicleColor.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/VehicleColor.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/VehicleColor.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/VehicleModelInfoType.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/VehicleModelInfoType.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/VehicleModelInfoType.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/VehicleModelInfoType.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/VehicleModelType.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/VehicleModelType.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/VehicleModelType.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/VehicleModelType.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/VehicleParameterValue.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/VehicleParameterValue.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/VehicleParameterValue.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/VehicleParameterValue.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/Weapon.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/Weapon.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/Weapon.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/Weapon.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/WeaponSkill.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/WeaponSkill.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/WeaponSkill.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/WeaponSkill.cs diff --git a/src/SampSharp.Entities/SAMP/Definitions/WeaponState.cs b/src/legacy/SampSharp.Entities/SAMP/Definitions/WeaponState.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Definitions/WeaponState.cs rename to src/legacy/SampSharp.Entities/SAMP/Definitions/WeaponState.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/DialogResponse.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/DialogResponse.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/DialogResponse.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/DialogResponse.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/DialogResult.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/DialogResult.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/DialogResult.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/DialogResult.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/DialogRowCollection.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/DialogRowCollection.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/DialogRowCollection.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/DialogRowCollection.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/DialogService.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/DialogService.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/DialogService.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/DialogService.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/DialogSystem.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/DialogSystem.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/DialogSystem.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/DialogSystem.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/IDialog.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/IDialog.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/IDialog.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/IDialog.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/IDialogRow.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/IDialogRow.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/IDialogRow.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/IDialogRow.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/IDialogService.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/IDialogService.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/IDialogService.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/IDialogService.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/InputDialog.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/InputDialog.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/InputDialog.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/InputDialog.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/InputDialogResponse.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/InputDialogResponse.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/InputDialogResponse.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/InputDialogResponse.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/ListDialog.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/ListDialog.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/ListDialog.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/ListDialog.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/ListDialogResponse.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/ListDialogResponse.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/ListDialogResponse.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/ListDialogResponse.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/ListDialogRow.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/ListDialogRow.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/ListDialogRow.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/ListDialogRow.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/ListDialogRowCollection.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/ListDialogRowCollection.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/ListDialogRowCollection.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/ListDialogRowCollection.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/MessageDialog.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/MessageDialog.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/MessageDialog.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/MessageDialog.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/MessageDialogResponse.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/MessageDialogResponse.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/MessageDialogResponse.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/MessageDialogResponse.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/TablistDialog.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/TablistDialog.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/TablistDialog.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/TablistDialog.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/TablistDialogResponse.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/TablistDialogResponse.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/TablistDialogResponse.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/TablistDialogResponse.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/TablistDialogRow.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/TablistDialogRow.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/TablistDialogRow.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/TablistDialogRow.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/TablistDialogRowCollection.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/TablistDialogRowCollection.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/TablistDialogRowCollection.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/TablistDialogRowCollection.cs diff --git a/src/SampSharp.Entities/SAMP/Dialogs/VisibleDialog.cs b/src/legacy/SampSharp.Entities/SAMP/Dialogs/VisibleDialog.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Dialogs/VisibleDialog.cs rename to src/legacy/SampSharp.Entities/SAMP/Dialogs/VisibleDialog.cs diff --git a/src/SampSharp.Entities/SAMP/MathHelper.cs b/src/legacy/SampSharp.Entities/SAMP/MathHelper.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/MathHelper.cs rename to src/legacy/SampSharp.Entities/SAMP/MathHelper.cs diff --git a/src/SampSharp.Entities/SAMP/Middleware/ArgumentsOverrideEventContext.cs b/src/legacy/SampSharp.Entities/SAMP/Middleware/ArgumentsOverrideEventContext.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Middleware/ArgumentsOverrideEventContext.cs rename to src/legacy/SampSharp.Entities/SAMP/Middleware/ArgumentsOverrideEventContext.cs diff --git a/src/SampSharp.Entities/SAMP/Middleware/EntityMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Middleware/EntityMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Middleware/EntityMiddleware.cs rename to src/legacy/SampSharp.Entities/SAMP/Middleware/EntityMiddleware.cs diff --git a/src/SampSharp.Entities/SAMP/Middleware/PlayerClickMapMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerClickMapMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Middleware/PlayerClickMapMiddleware.cs rename to src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerClickMapMiddleware.cs diff --git a/src/SampSharp.Entities/SAMP/Middleware/PlayerConnectMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerConnectMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Middleware/PlayerConnectMiddleware.cs rename to src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerConnectMiddleware.cs diff --git a/src/SampSharp.Entities/SAMP/Middleware/PlayerDisconnectMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerDisconnectMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Middleware/PlayerDisconnectMiddleware.cs rename to src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerDisconnectMiddleware.cs diff --git a/src/SampSharp.Entities/SAMP/Middleware/PlayerEditAttachedObjectMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerEditAttachedObjectMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Middleware/PlayerEditAttachedObjectMiddleware.cs rename to src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerEditAttachedObjectMiddleware.cs diff --git a/src/SampSharp.Entities/SAMP/Middleware/PlayerEditObjectMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerEditObjectMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Middleware/PlayerEditObjectMiddleware.cs rename to src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerEditObjectMiddleware.cs diff --git a/src/SampSharp.Entities/SAMP/Middleware/PlayerObjectMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerObjectMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Middleware/PlayerObjectMiddleware.cs rename to src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerObjectMiddleware.cs diff --git a/src/SampSharp.Entities/SAMP/Middleware/PlayerSelectObjectMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerSelectObjectMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Middleware/PlayerSelectObjectMiddleware.cs rename to src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerSelectObjectMiddleware.cs diff --git a/src/SampSharp.Entities/SAMP/Middleware/PlayerTextDrawMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerTextDrawMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Middleware/PlayerTextDrawMiddleware.cs rename to src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerTextDrawMiddleware.cs diff --git a/src/SampSharp.Entities/SAMP/Middleware/PlayerWeaponShotMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerWeaponShotMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Middleware/PlayerWeaponShotMiddleware.cs rename to src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerWeaponShotMiddleware.cs diff --git a/src/SampSharp.Entities/SAMP/Middleware/TextDrawClickMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Middleware/TextDrawClickMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Middleware/TextDrawClickMiddleware.cs rename to src/legacy/SampSharp.Entities/SAMP/Middleware/TextDrawClickMiddleware.cs diff --git a/src/SampSharp.Entities/SAMP/Middleware/UnoccupiedVehicleUpdateMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Middleware/UnoccupiedVehicleUpdateMiddleware.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Middleware/UnoccupiedVehicleUpdateMiddleware.cs rename to src/legacy/SampSharp.Entities/SAMP/Middleware/UnoccupiedVehicleUpdateMiddleware.cs diff --git a/src/SampSharp.Entities/SAMP/NativeComponents/BaseNativeComponent.cs b/src/legacy/SampSharp.Entities/SAMP/NativeComponents/BaseNativeComponent.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/NativeComponents/BaseNativeComponent.cs rename to src/legacy/SampSharp.Entities/SAMP/NativeComponents/BaseNativeComponent.cs diff --git a/src/SampSharp.Entities/SAMP/NativeComponents/NativeActor.cs b/src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativeActor.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/NativeComponents/NativeActor.cs rename to src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativeActor.cs diff --git a/src/SampSharp.Entities/SAMP/NativeComponents/NativeGangZone.cs b/src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativeGangZone.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/NativeComponents/NativeGangZone.cs rename to src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativeGangZone.cs diff --git a/src/SampSharp.Entities/SAMP/NativeComponents/NativeMenu.cs b/src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativeMenu.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/NativeComponents/NativeMenu.cs rename to src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativeMenu.cs diff --git a/src/SampSharp.Entities/SAMP/NativeComponents/NativeObject.cs b/src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativeObject.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/NativeComponents/NativeObject.cs rename to src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativeObject.cs diff --git a/src/SampSharp.Entities/SAMP/NativeComponents/NativePickup.cs b/src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativePickup.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/NativeComponents/NativePickup.cs rename to src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativePickup.cs diff --git a/src/SampSharp.Entities/SAMP/NativeComponents/NativePlayer.cs b/src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativePlayer.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/NativeComponents/NativePlayer.cs rename to src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativePlayer.cs diff --git a/src/SampSharp.Entities/SAMP/NativeComponents/NativePlayerObject.cs b/src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativePlayerObject.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/NativeComponents/NativePlayerObject.cs rename to src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativePlayerObject.cs diff --git a/src/SampSharp.Entities/SAMP/NativeComponents/NativePlayerTextDraw.cs b/src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativePlayerTextDraw.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/NativeComponents/NativePlayerTextDraw.cs rename to src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativePlayerTextDraw.cs diff --git a/src/SampSharp.Entities/SAMP/NativeComponents/NativePlayerTextLabel.cs b/src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativePlayerTextLabel.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/NativeComponents/NativePlayerTextLabel.cs rename to src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativePlayerTextLabel.cs diff --git a/src/SampSharp.Entities/SAMP/NativeComponents/NativeTextDraw.cs b/src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativeTextDraw.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/NativeComponents/NativeTextDraw.cs rename to src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativeTextDraw.cs diff --git a/src/SampSharp.Entities/SAMP/NativeComponents/NativeTextLabel.cs b/src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativeTextLabel.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/NativeComponents/NativeTextLabel.cs rename to src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativeTextLabel.cs diff --git a/src/SampSharp.Entities/SAMP/NativeComponents/NativeVehicle.cs b/src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativeVehicle.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/NativeComponents/NativeVehicle.cs rename to src/legacy/SampSharp.Entities/SAMP/NativeComponents/NativeVehicle.cs diff --git a/src/SampSharp.Entities/SAMP/PlayerExtensions.cs b/src/legacy/SampSharp.Entities/SAMP/PlayerExtensions.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/PlayerExtensions.cs rename to src/legacy/SampSharp.Entities/SAMP/PlayerExtensions.cs diff --git a/src/SampSharp.Entities/SAMP/SampEcsBuilderExtensions.cs b/src/legacy/SampSharp.Entities/SAMP/SampEcsBuilderExtensions.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/SampEcsBuilderExtensions.cs rename to src/legacy/SampSharp.Entities/SAMP/SampEcsBuilderExtensions.cs diff --git a/src/SampSharp.Entities/SAMP/SampLimitException.cs b/src/legacy/SampSharp.Entities/SAMP/SampLimitException.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/SampLimitException.cs rename to src/legacy/SampSharp.Entities/SAMP/SampLimitException.cs diff --git a/src/SampSharp.Entities/SAMP/Services/IServerService.cs b/src/legacy/SampSharp.Entities/SAMP/Services/IServerService.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Services/IServerService.cs rename to src/legacy/SampSharp.Entities/SAMP/Services/IServerService.cs diff --git a/src/SampSharp.Entities/SAMP/Services/IVehicleInfoService.cs b/src/legacy/SampSharp.Entities/SAMP/Services/IVehicleInfoService.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Services/IVehicleInfoService.cs rename to src/legacy/SampSharp.Entities/SAMP/Services/IVehicleInfoService.cs diff --git a/src/SampSharp.Entities/SAMP/Services/IWorldService.cs b/src/legacy/SampSharp.Entities/SAMP/Services/IWorldService.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Services/IWorldService.cs rename to src/legacy/SampSharp.Entities/SAMP/Services/IWorldService.cs diff --git a/src/SampSharp.Entities/SAMP/Services/ServerService.cs b/src/legacy/SampSharp.Entities/SAMP/Services/ServerService.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Services/ServerService.cs rename to src/legacy/SampSharp.Entities/SAMP/Services/ServerService.cs diff --git a/src/SampSharp.Entities/SAMP/Services/ServerServiceNative.cs b/src/legacy/SampSharp.Entities/SAMP/Services/ServerServiceNative.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Services/ServerServiceNative.cs rename to src/legacy/SampSharp.Entities/SAMP/Services/ServerServiceNative.cs diff --git a/src/SampSharp.Entities/SAMP/Services/VehicleInfoService.cs b/src/legacy/SampSharp.Entities/SAMP/Services/VehicleInfoService.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Services/VehicleInfoService.cs rename to src/legacy/SampSharp.Entities/SAMP/Services/VehicleInfoService.cs diff --git a/src/SampSharp.Entities/SAMP/Services/VehicleInfoServiceNative.cs b/src/legacy/SampSharp.Entities/SAMP/Services/VehicleInfoServiceNative.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Services/VehicleInfoServiceNative.cs rename to src/legacy/SampSharp.Entities/SAMP/Services/VehicleInfoServiceNative.cs diff --git a/src/SampSharp.Entities/SAMP/Services/WorldService.cs b/src/legacy/SampSharp.Entities/SAMP/Services/WorldService.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Services/WorldService.cs rename to src/legacy/SampSharp.Entities/SAMP/Services/WorldService.cs diff --git a/src/SampSharp.Entities/SAMP/Services/WorldServiceNative.cs b/src/legacy/SampSharp.Entities/SAMP/Services/WorldServiceNative.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/Services/WorldServiceNative.cs rename to src/legacy/SampSharp.Entities/SAMP/Services/WorldServiceNative.cs diff --git a/src/SampSharp.Entities/SAMP/VariableCollection.cs b/src/legacy/SampSharp.Entities/SAMP/VariableCollection.cs similarity index 100% rename from src/SampSharp.Entities/SAMP/VariableCollection.cs rename to src/legacy/SampSharp.Entities/SAMP/VariableCollection.cs diff --git a/src/SampSharp.Entities/SampSharp.Entities.csproj b/src/legacy/SampSharp.Entities/SampSharp.Entities.csproj similarity index 100% rename from src/SampSharp.Entities/SampSharp.Entities.csproj rename to src/legacy/SampSharp.Entities/SampSharp.Entities.csproj diff --git a/src/SampSharp.Entities/SampSharp.Entities.csproj.DotSettings b/src/legacy/SampSharp.Entities/SampSharp.Entities.csproj.DotSettings similarity index 100% rename from src/SampSharp.Entities/SampSharp.Entities.csproj.DotSettings rename to src/legacy/SampSharp.Entities/SampSharp.Entities.csproj.DotSettings diff --git a/src/SampSharp.Entities/ServiceCollectionExtensions.cs b/src/legacy/SampSharp.Entities/ServiceCollectionExtensions.cs similarity index 100% rename from src/SampSharp.Entities/ServiceCollectionExtensions.cs rename to src/legacy/SampSharp.Entities/ServiceCollectionExtensions.cs diff --git a/src/SampSharp.Entities/Systems/ISystem.cs b/src/legacy/SampSharp.Entities/Systems/ISystem.cs similarity index 100% rename from src/SampSharp.Entities/Systems/ISystem.cs rename to src/legacy/SampSharp.Entities/Systems/ISystem.cs diff --git a/src/SampSharp.Entities/Systems/ISystemRegistry.cs b/src/legacy/SampSharp.Entities/Systems/ISystemRegistry.cs similarity index 100% rename from src/SampSharp.Entities/Systems/ISystemRegistry.cs rename to src/legacy/SampSharp.Entities/Systems/ISystemRegistry.cs diff --git a/src/SampSharp.Entities/Systems/ITickingSystem.cs b/src/legacy/SampSharp.Entities/Systems/ITickingSystem.cs similarity index 100% rename from src/SampSharp.Entities/Systems/ITickingSystem.cs rename to src/legacy/SampSharp.Entities/Systems/ITickingSystem.cs diff --git a/src/SampSharp.Entities/Systems/SystemRegistry.cs b/src/legacy/SampSharp.Entities/Systems/SystemRegistry.cs similarity index 100% rename from src/SampSharp.Entities/Systems/SystemRegistry.cs rename to src/legacy/SampSharp.Entities/Systems/SystemRegistry.cs diff --git a/src/SampSharp.Entities/Systems/SystemRegistryException.cs b/src/legacy/SampSharp.Entities/Systems/SystemRegistryException.cs similarity index 100% rename from src/SampSharp.Entities/Systems/SystemRegistryException.cs rename to src/legacy/SampSharp.Entities/Systems/SystemRegistryException.cs diff --git a/src/SampSharp.Entities/Systems/SystemTypeWrapper.cs b/src/legacy/SampSharp.Entities/Systems/SystemTypeWrapper.cs similarity index 100% rename from src/SampSharp.Entities/Systems/SystemTypeWrapper.cs rename to src/legacy/SampSharp.Entities/Systems/SystemTypeWrapper.cs diff --git a/src/SampSharp.Entities/Timers/ITimerService.cs b/src/legacy/SampSharp.Entities/Timers/ITimerService.cs similarity index 100% rename from src/SampSharp.Entities/Timers/ITimerService.cs rename to src/legacy/SampSharp.Entities/Timers/ITimerService.cs diff --git a/src/SampSharp.Entities/Timers/TimerAttribute.cs b/src/legacy/SampSharp.Entities/Timers/TimerAttribute.cs similarity index 100% rename from src/SampSharp.Entities/Timers/TimerAttribute.cs rename to src/legacy/SampSharp.Entities/Timers/TimerAttribute.cs diff --git a/src/SampSharp.Entities/Timers/TimerInfo.cs b/src/legacy/SampSharp.Entities/Timers/TimerInfo.cs similarity index 100% rename from src/SampSharp.Entities/Timers/TimerInfo.cs rename to src/legacy/SampSharp.Entities/Timers/TimerInfo.cs diff --git a/src/SampSharp.Entities/Timers/TimerReference.cs b/src/legacy/SampSharp.Entities/Timers/TimerReference.cs similarity index 100% rename from src/SampSharp.Entities/Timers/TimerReference.cs rename to src/legacy/SampSharp.Entities/Timers/TimerReference.cs diff --git a/src/SampSharp.Entities/Timers/TimerServiceExtensions.cs b/src/legacy/SampSharp.Entities/Timers/TimerServiceExtensions.cs similarity index 100% rename from src/SampSharp.Entities/Timers/TimerServiceExtensions.cs rename to src/legacy/SampSharp.Entities/Timers/TimerServiceExtensions.cs diff --git a/src/SampSharp.Entities/Timers/TimerSystem.cs b/src/legacy/SampSharp.Entities/Timers/TimerSystem.cs similarity index 100% rename from src/SampSharp.Entities/Timers/TimerSystem.cs rename to src/legacy/SampSharp.Entities/Timers/TimerSystem.cs diff --git a/src/SampSharp.Entities/Utilities/AssemblyScanner.cs b/src/legacy/SampSharp.Entities/Utilities/AssemblyScanner.cs similarity index 100% rename from src/SampSharp.Entities/Utilities/AssemblyScanner.cs rename to src/legacy/SampSharp.Entities/Utilities/AssemblyScanner.cs diff --git a/src/SampSharp.Entities/Utilities/IRecyclable.cs b/src/legacy/SampSharp.Entities/Utilities/IRecyclable.cs similarity index 100% rename from src/SampSharp.Entities/Utilities/IRecyclable.cs rename to src/legacy/SampSharp.Entities/Utilities/IRecyclable.cs diff --git a/src/SampSharp.Entities/Utilities/MethodInvoker.cs b/src/legacy/SampSharp.Entities/Utilities/MethodInvoker.cs similarity index 100% rename from src/SampSharp.Entities/Utilities/MethodInvoker.cs rename to src/legacy/SampSharp.Entities/Utilities/MethodInvoker.cs diff --git a/src/SampSharp.Entities/Utilities/MethodInvokerFactory.cs b/src/legacy/SampSharp.Entities/Utilities/MethodInvokerFactory.cs similarity index 100% rename from src/SampSharp.Entities/Utilities/MethodInvokerFactory.cs rename to src/legacy/SampSharp.Entities/Utilities/MethodInvokerFactory.cs diff --git a/src/SampSharp.Entities/Utilities/MethodParameterSource.cs b/src/legacy/SampSharp.Entities/Utilities/MethodParameterSource.cs similarity index 100% rename from src/SampSharp.Entities/Utilities/MethodParameterSource.cs rename to src/legacy/SampSharp.Entities/Utilities/MethodParameterSource.cs diff --git a/src/SampSharp.Entities/Utilities/RecyclePool.cs b/src/legacy/SampSharp.Entities/Utilities/RecyclePool.cs similarity index 100% rename from src/SampSharp.Entities/Utilities/RecyclePool.cs rename to src/legacy/SampSharp.Entities/Utilities/RecyclePool.cs diff --git a/src/SampSharp.GameMode/BaseMode.Internal.cs b/src/legacy/SampSharp.GameMode/BaseMode.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/BaseMode.Internal.cs rename to src/legacy/SampSharp.GameMode/BaseMode.Internal.cs diff --git a/src/SampSharp.GameMode/BaseMode.callbacks.cs b/src/legacy/SampSharp.GameMode/BaseMode.callbacks.cs similarity index 100% rename from src/SampSharp.GameMode/BaseMode.callbacks.cs rename to src/legacy/SampSharp.GameMode/BaseMode.callbacks.cs diff --git a/src/SampSharp.GameMode/BaseMode.cs b/src/legacy/SampSharp.GameMode/BaseMode.cs similarity index 100% rename from src/SampSharp.GameMode/BaseMode.cs rename to src/legacy/SampSharp.GameMode/BaseMode.cs diff --git a/src/SampSharp.GameMode/BaseMode.events.cs b/src/legacy/SampSharp.GameMode/BaseMode.events.cs similarity index 100% rename from src/SampSharp.GameMode/BaseMode.events.cs rename to src/legacy/SampSharp.GameMode/BaseMode.events.cs diff --git a/src/SampSharp.GameMode/BaseMode.functions.cs b/src/legacy/SampSharp.GameMode/BaseMode.functions.cs similarity index 100% rename from src/SampSharp.GameMode/BaseMode.functions.cs rename to src/legacy/SampSharp.GameMode/BaseMode.functions.cs diff --git a/src/SampSharp.GameMode/Controllers/ActorController.cs b/src/legacy/SampSharp.GameMode/Controllers/ActorController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/ActorController.cs rename to src/legacy/SampSharp.GameMode/Controllers/ActorController.cs diff --git a/src/SampSharp.GameMode/Controllers/BasePlayerController.cs b/src/legacy/SampSharp.GameMode/Controllers/BasePlayerController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/BasePlayerController.cs rename to src/legacy/SampSharp.GameMode/Controllers/BasePlayerController.cs diff --git a/src/SampSharp.GameMode/Controllers/BaseVehicleController.cs b/src/legacy/SampSharp.GameMode/Controllers/BaseVehicleController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/BaseVehicleController.cs rename to src/legacy/SampSharp.GameMode/Controllers/BaseVehicleController.cs diff --git a/src/SampSharp.GameMode/Controllers/CommandController.cs b/src/legacy/SampSharp.GameMode/Controllers/CommandController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/CommandController.cs rename to src/legacy/SampSharp.GameMode/Controllers/CommandController.cs diff --git a/src/SampSharp.GameMode/Controllers/ControllerAttribute.cs b/src/legacy/SampSharp.GameMode/Controllers/ControllerAttribute.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/ControllerAttribute.cs rename to src/legacy/SampSharp.GameMode/Controllers/ControllerAttribute.cs diff --git a/src/SampSharp.GameMode/Controllers/ControllerCollection.cs b/src/legacy/SampSharp.GameMode/Controllers/ControllerCollection.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/ControllerCollection.cs rename to src/legacy/SampSharp.GameMode/Controllers/ControllerCollection.cs diff --git a/src/SampSharp.GameMode/Controllers/DialogController.cs b/src/legacy/SampSharp.GameMode/Controllers/DialogController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/DialogController.cs rename to src/legacy/SampSharp.GameMode/Controllers/DialogController.cs diff --git a/src/SampSharp.GameMode/Controllers/GangZoneController.cs b/src/legacy/SampSharp.GameMode/Controllers/GangZoneController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/GangZoneController.cs rename to src/legacy/SampSharp.GameMode/Controllers/GangZoneController.cs diff --git a/src/SampSharp.GameMode/Controllers/GlobalObjectController.cs b/src/legacy/SampSharp.GameMode/Controllers/GlobalObjectController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/GlobalObjectController.cs rename to src/legacy/SampSharp.GameMode/Controllers/GlobalObjectController.cs diff --git a/src/SampSharp.GameMode/Controllers/IController.cs b/src/legacy/SampSharp.GameMode/Controllers/IController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/IController.cs rename to src/legacy/SampSharp.GameMode/Controllers/IController.cs diff --git a/src/SampSharp.GameMode/Controllers/IEventListener.cs b/src/legacy/SampSharp.GameMode/Controllers/IEventListener.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/IEventListener.cs rename to src/legacy/SampSharp.GameMode/Controllers/IEventListener.cs diff --git a/src/SampSharp.GameMode/Controllers/IGameServiceProvider.cs b/src/legacy/SampSharp.GameMode/Controllers/IGameServiceProvider.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/IGameServiceProvider.cs rename to src/legacy/SampSharp.GameMode/Controllers/IGameServiceProvider.cs diff --git a/src/SampSharp.GameMode/Controllers/ITypeProvider.cs b/src/legacy/SampSharp.GameMode/Controllers/ITypeProvider.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/ITypeProvider.cs rename to src/legacy/SampSharp.GameMode/Controllers/ITypeProvider.cs diff --git a/src/SampSharp.GameMode/Controllers/MenuController.cs b/src/legacy/SampSharp.GameMode/Controllers/MenuController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/MenuController.cs rename to src/legacy/SampSharp.GameMode/Controllers/MenuController.cs diff --git a/src/SampSharp.GameMode/Controllers/PickupController.cs b/src/legacy/SampSharp.GameMode/Controllers/PickupController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/PickupController.cs rename to src/legacy/SampSharp.GameMode/Controllers/PickupController.cs diff --git a/src/SampSharp.GameMode/Controllers/PlayerObjectController.cs b/src/legacy/SampSharp.GameMode/Controllers/PlayerObjectController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/PlayerObjectController.cs rename to src/legacy/SampSharp.GameMode/Controllers/PlayerObjectController.cs diff --git a/src/SampSharp.GameMode/Controllers/PlayerTextDrawController.cs b/src/legacy/SampSharp.GameMode/Controllers/PlayerTextDrawController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/PlayerTextDrawController.cs rename to src/legacy/SampSharp.GameMode/Controllers/PlayerTextDrawController.cs diff --git a/src/SampSharp.GameMode/Controllers/PlayerTextLabelController.cs b/src/legacy/SampSharp.GameMode/Controllers/PlayerTextLabelController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/PlayerTextLabelController.cs rename to src/legacy/SampSharp.GameMode/Controllers/PlayerTextLabelController.cs diff --git a/src/SampSharp.GameMode/Controllers/TextDrawController.cs b/src/legacy/SampSharp.GameMode/Controllers/TextDrawController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/TextDrawController.cs rename to src/legacy/SampSharp.GameMode/Controllers/TextDrawController.cs diff --git a/src/SampSharp.GameMode/Controllers/TextLabelController.cs b/src/legacy/SampSharp.GameMode/Controllers/TextLabelController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/TextLabelController.cs rename to src/legacy/SampSharp.GameMode/Controllers/TextLabelController.cs diff --git a/src/SampSharp.GameMode/Controllers/TimerController.cs b/src/legacy/SampSharp.GameMode/Controllers/TimerController.cs similarity index 100% rename from src/SampSharp.GameMode/Controllers/TimerController.cs rename to src/legacy/SampSharp.GameMode/Controllers/TimerController.cs diff --git a/src/SampSharp.GameMode/Definitions/BodyPart.cs b/src/legacy/SampSharp.GameMode/Definitions/BodyPart.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/BodyPart.cs rename to src/legacy/SampSharp.GameMode/Definitions/BodyPart.cs diff --git a/src/SampSharp.GameMode/Definitions/Bone.cs b/src/legacy/SampSharp.GameMode/Definitions/Bone.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/Bone.cs rename to src/legacy/SampSharp.GameMode/Definitions/Bone.cs diff --git a/src/SampSharp.GameMode/Definitions/BulletHitType.cs b/src/legacy/SampSharp.GameMode/Definitions/BulletHitType.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/BulletHitType.cs rename to src/legacy/SampSharp.GameMode/Definitions/BulletHitType.cs diff --git a/src/SampSharp.GameMode/Definitions/CameraCut.cs b/src/legacy/SampSharp.GameMode/Definitions/CameraCut.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/CameraCut.cs rename to src/legacy/SampSharp.GameMode/Definitions/CameraCut.cs diff --git a/src/SampSharp.GameMode/Definitions/CameraMode.cs b/src/legacy/SampSharp.GameMode/Definitions/CameraMode.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/CameraMode.cs rename to src/legacy/SampSharp.GameMode/Definitions/CameraMode.cs diff --git a/src/SampSharp.GameMode/Definitions/CarModType.cs b/src/legacy/SampSharp.GameMode/Definitions/CarModType.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/CarModType.cs rename to src/legacy/SampSharp.GameMode/Definitions/CarModType.cs diff --git a/src/SampSharp.GameMode/Definitions/CheckpointType.cs b/src/legacy/SampSharp.GameMode/Definitions/CheckpointType.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/CheckpointType.cs rename to src/legacy/SampSharp.GameMode/Definitions/CheckpointType.cs diff --git a/src/SampSharp.GameMode/Definitions/ConnectionStatus.cs b/src/legacy/SampSharp.GameMode/Definitions/ConnectionStatus.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/ConnectionStatus.cs rename to src/legacy/SampSharp.GameMode/Definitions/ConnectionStatus.cs diff --git a/src/SampSharp.GameMode/Definitions/DialogButton.cs b/src/legacy/SampSharp.GameMode/Definitions/DialogButton.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/DialogButton.cs rename to src/legacy/SampSharp.GameMode/Definitions/DialogButton.cs diff --git a/src/SampSharp.GameMode/Definitions/DialogStyle.cs b/src/legacy/SampSharp.GameMode/Definitions/DialogStyle.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/DialogStyle.cs rename to src/legacy/SampSharp.GameMode/Definitions/DialogStyle.cs diff --git a/src/SampSharp.GameMode/Definitions/DisconnectReason.cs b/src/legacy/SampSharp.GameMode/Definitions/DisconnectReason.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/DisconnectReason.cs rename to src/legacy/SampSharp.GameMode/Definitions/DisconnectReason.cs diff --git a/src/SampSharp.GameMode/Definitions/EditObjectResponse.cs b/src/legacy/SampSharp.GameMode/Definitions/EditObjectResponse.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/EditObjectResponse.cs rename to src/legacy/SampSharp.GameMode/Definitions/EditObjectResponse.cs diff --git a/src/SampSharp.GameMode/Definitions/EnterExit.cs b/src/legacy/SampSharp.GameMode/Definitions/EnterExit.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/EnterExit.cs rename to src/legacy/SampSharp.GameMode/Definitions/EnterExit.cs diff --git a/src/SampSharp.GameMode/Definitions/ExplosionType.cs b/src/legacy/SampSharp.GameMode/Definitions/ExplosionType.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/ExplosionType.cs rename to src/legacy/SampSharp.GameMode/Definitions/ExplosionType.cs diff --git a/src/SampSharp.GameMode/Definitions/FightStyle.cs b/src/legacy/SampSharp.GameMode/Definitions/FightStyle.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/FightStyle.cs rename to src/legacy/SampSharp.GameMode/Definitions/FightStyle.cs diff --git a/src/SampSharp.GameMode/Definitions/Keys.cs b/src/legacy/SampSharp.GameMode/Definitions/Keys.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/Keys.cs rename to src/legacy/SampSharp.GameMode/Definitions/Keys.cs diff --git a/src/SampSharp.GameMode/Definitions/MapIcon.cs b/src/legacy/SampSharp.GameMode/Definitions/MapIcon.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/MapIcon.cs rename to src/legacy/SampSharp.GameMode/Definitions/MapIcon.cs diff --git a/src/SampSharp.GameMode/Definitions/MapIconType.cs b/src/legacy/SampSharp.GameMode/Definitions/MapIconType.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/MapIconType.cs rename to src/legacy/SampSharp.GameMode/Definitions/MapIconType.cs diff --git a/src/SampSharp.GameMode/Definitions/ObjectMaterialSize.cs b/src/legacy/SampSharp.GameMode/Definitions/ObjectMaterialSize.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/ObjectMaterialSize.cs rename to src/legacy/SampSharp.GameMode/Definitions/ObjectMaterialSize.cs diff --git a/src/SampSharp.GameMode/Definitions/ObjectMaterialTextAlign.cs b/src/legacy/SampSharp.GameMode/Definitions/ObjectMaterialTextAlign.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/ObjectMaterialTextAlign.cs rename to src/legacy/SampSharp.GameMode/Definitions/ObjectMaterialTextAlign.cs diff --git a/src/SampSharp.GameMode/Definitions/ObjectType.cs b/src/legacy/SampSharp.GameMode/Definitions/ObjectType.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/ObjectType.cs rename to src/legacy/SampSharp.GameMode/Definitions/ObjectType.cs diff --git a/src/SampSharp.GameMode/Definitions/PickupType.cs b/src/legacy/SampSharp.GameMode/Definitions/PickupType.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/PickupType.cs rename to src/legacy/SampSharp.GameMode/Definitions/PickupType.cs diff --git a/src/SampSharp.GameMode/Definitions/PlayerClickSource.cs b/src/legacy/SampSharp.GameMode/Definitions/PlayerClickSource.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/PlayerClickSource.cs rename to src/legacy/SampSharp.GameMode/Definitions/PlayerClickSource.cs diff --git a/src/SampSharp.GameMode/Definitions/PlayerMarkersMode.cs b/src/legacy/SampSharp.GameMode/Definitions/PlayerMarkersMode.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/PlayerMarkersMode.cs rename to src/legacy/SampSharp.GameMode/Definitions/PlayerMarkersMode.cs diff --git a/src/SampSharp.GameMode/Definitions/PlayerRecordingType.cs b/src/legacy/SampSharp.GameMode/Definitions/PlayerRecordingType.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/PlayerRecordingType.cs rename to src/legacy/SampSharp.GameMode/Definitions/PlayerRecordingType.cs diff --git a/src/SampSharp.GameMode/Definitions/PlayerState.cs b/src/legacy/SampSharp.GameMode/Definitions/PlayerState.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/PlayerState.cs rename to src/legacy/SampSharp.GameMode/Definitions/PlayerState.cs diff --git a/src/SampSharp.GameMode/Definitions/ServerVarType.cs b/src/legacy/SampSharp.GameMode/Definitions/ServerVarType.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/ServerVarType.cs rename to src/legacy/SampSharp.GameMode/Definitions/ServerVarType.cs diff --git a/src/SampSharp.GameMode/Definitions/ShopName.cs b/src/legacy/SampSharp.GameMode/Definitions/ShopName.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/ShopName.cs rename to src/legacy/SampSharp.GameMode/Definitions/ShopName.cs diff --git a/src/SampSharp.GameMode/Definitions/SpecialAction.cs b/src/legacy/SampSharp.GameMode/Definitions/SpecialAction.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/SpecialAction.cs rename to src/legacy/SampSharp.GameMode/Definitions/SpecialAction.cs diff --git a/src/SampSharp.GameMode/Definitions/SpectateMode.cs b/src/legacy/SampSharp.GameMode/Definitions/SpectateMode.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/SpectateMode.cs rename to src/legacy/SampSharp.GameMode/Definitions/SpectateMode.cs diff --git a/src/SampSharp.GameMode/Definitions/TextDrawAlignment.cs b/src/legacy/SampSharp.GameMode/Definitions/TextDrawAlignment.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/TextDrawAlignment.cs rename to src/legacy/SampSharp.GameMode/Definitions/TextDrawAlignment.cs diff --git a/src/SampSharp.GameMode/Definitions/TextDrawFont.cs b/src/legacy/SampSharp.GameMode/Definitions/TextDrawFont.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/TextDrawFont.cs rename to src/legacy/SampSharp.GameMode/Definitions/TextDrawFont.cs diff --git a/src/SampSharp.GameMode/Definitions/VehicleCategory.cs b/src/legacy/SampSharp.GameMode/Definitions/VehicleCategory.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/VehicleCategory.cs rename to src/legacy/SampSharp.GameMode/Definitions/VehicleCategory.cs diff --git a/src/SampSharp.GameMode/Definitions/VehicleColor.cs b/src/legacy/SampSharp.GameMode/Definitions/VehicleColor.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/VehicleColor.cs rename to src/legacy/SampSharp.GameMode/Definitions/VehicleColor.cs diff --git a/src/SampSharp.GameMode/Definitions/VehicleModelInfoType.cs b/src/legacy/SampSharp.GameMode/Definitions/VehicleModelInfoType.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/VehicleModelInfoType.cs rename to src/legacy/SampSharp.GameMode/Definitions/VehicleModelInfoType.cs diff --git a/src/SampSharp.GameMode/Definitions/VehicleModelType.cs b/src/legacy/SampSharp.GameMode/Definitions/VehicleModelType.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/VehicleModelType.cs rename to src/legacy/SampSharp.GameMode/Definitions/VehicleModelType.cs diff --git a/src/SampSharp.GameMode/Definitions/VehicleParameterValue.cs b/src/legacy/SampSharp.GameMode/Definitions/VehicleParameterValue.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/VehicleParameterValue.cs rename to src/legacy/SampSharp.GameMode/Definitions/VehicleParameterValue.cs diff --git a/src/SampSharp.GameMode/Definitions/Weapon.cs b/src/legacy/SampSharp.GameMode/Definitions/Weapon.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/Weapon.cs rename to src/legacy/SampSharp.GameMode/Definitions/Weapon.cs diff --git a/src/SampSharp.GameMode/Definitions/WeaponSkill.cs b/src/legacy/SampSharp.GameMode/Definitions/WeaponSkill.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/WeaponSkill.cs rename to src/legacy/SampSharp.GameMode/Definitions/WeaponSkill.cs diff --git a/src/SampSharp.GameMode/Definitions/WeaponState.cs b/src/legacy/SampSharp.GameMode/Definitions/WeaponState.cs similarity index 100% rename from src/SampSharp.GameMode/Definitions/WeaponState.cs rename to src/legacy/SampSharp.GameMode/Definitions/WeaponState.cs diff --git a/src/SampSharp.GameMode/Display/Dialog.Internal.cs b/src/legacy/SampSharp.GameMode/Display/Dialog.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/Display/Dialog.Internal.cs rename to src/legacy/SampSharp.GameMode/Display/Dialog.Internal.cs diff --git a/src/SampSharp.GameMode/Display/Dialog.cs b/src/legacy/SampSharp.GameMode/Display/Dialog.cs similarity index 100% rename from src/SampSharp.GameMode/Display/Dialog.cs rename to src/legacy/SampSharp.GameMode/Display/Dialog.cs diff --git a/src/SampSharp.GameMode/Display/InputDialog.cs b/src/legacy/SampSharp.GameMode/Display/InputDialog.cs similarity index 100% rename from src/SampSharp.GameMode/Display/InputDialog.cs rename to src/legacy/SampSharp.GameMode/Display/InputDialog.cs diff --git a/src/SampSharp.GameMode/Display/ListDialog.cs b/src/legacy/SampSharp.GameMode/Display/ListDialog.cs similarity index 100% rename from src/SampSharp.GameMode/Display/ListDialog.cs rename to src/legacy/SampSharp.GameMode/Display/ListDialog.cs diff --git a/src/SampSharp.GameMode/Display/ListDialog`1.cs b/src/legacy/SampSharp.GameMode/Display/ListDialog`1.cs similarity index 100% rename from src/SampSharp.GameMode/Display/ListDialog`1.cs rename to src/legacy/SampSharp.GameMode/Display/ListDialog`1.cs diff --git a/src/SampSharp.GameMode/Display/Menu.Internal.cs b/src/legacy/SampSharp.GameMode/Display/Menu.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/Display/Menu.Internal.cs rename to src/legacy/SampSharp.GameMode/Display/Menu.Internal.cs diff --git a/src/SampSharp.GameMode/Display/Menu.cs b/src/legacy/SampSharp.GameMode/Display/Menu.cs similarity index 100% rename from src/SampSharp.GameMode/Display/Menu.cs rename to src/legacy/SampSharp.GameMode/Display/Menu.cs diff --git a/src/SampSharp.GameMode/Display/MenuColumn.cs b/src/legacy/SampSharp.GameMode/Display/MenuColumn.cs similarity index 100% rename from src/SampSharp.GameMode/Display/MenuColumn.cs rename to src/legacy/SampSharp.GameMode/Display/MenuColumn.cs diff --git a/src/SampSharp.GameMode/Display/MenuRow.cs b/src/legacy/SampSharp.GameMode/Display/MenuRow.cs similarity index 100% rename from src/SampSharp.GameMode/Display/MenuRow.cs rename to src/legacy/SampSharp.GameMode/Display/MenuRow.cs diff --git a/src/SampSharp.GameMode/Display/MessageDialog.cs b/src/legacy/SampSharp.GameMode/Display/MessageDialog.cs similarity index 100% rename from src/SampSharp.GameMode/Display/MessageDialog.cs rename to src/legacy/SampSharp.GameMode/Display/MessageDialog.cs diff --git a/src/SampSharp.GameMode/Display/PlayerTextDraw.Internal.cs b/src/legacy/SampSharp.GameMode/Display/PlayerTextDraw.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/Display/PlayerTextDraw.Internal.cs rename to src/legacy/SampSharp.GameMode/Display/PlayerTextDraw.Internal.cs diff --git a/src/SampSharp.GameMode/Display/PlayerTextDraw.cs b/src/legacy/SampSharp.GameMode/Display/PlayerTextDraw.cs similarity index 100% rename from src/SampSharp.GameMode/Display/PlayerTextDraw.cs rename to src/legacy/SampSharp.GameMode/Display/PlayerTextDraw.cs diff --git a/src/SampSharp.GameMode/Display/TablistDialog.cs b/src/legacy/SampSharp.GameMode/Display/TablistDialog.cs similarity index 100% rename from src/SampSharp.GameMode/Display/TablistDialog.cs rename to src/legacy/SampSharp.GameMode/Display/TablistDialog.cs diff --git a/src/SampSharp.GameMode/Display/TextDraw.Internal.cs b/src/legacy/SampSharp.GameMode/Display/TextDraw.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/Display/TextDraw.Internal.cs rename to src/legacy/SampSharp.GameMode/Display/TextDraw.Internal.cs diff --git a/src/SampSharp.GameMode/Display/TextDraw.cs b/src/legacy/SampSharp.GameMode/Display/TextDraw.cs similarity index 100% rename from src/SampSharp.GameMode/Display/TextDraw.cs rename to src/legacy/SampSharp.GameMode/Display/TextDraw.cs diff --git a/src/SampSharp.GameMode/Events/CancelableEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/CancelableEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/CancelableEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/CancelableEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/ClickPlayerEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/ClickPlayerEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/ClickPlayerEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/ClickPlayerEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/ClickPlayerTextDrawEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/ClickPlayerTextDrawEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/ClickPlayerTextDrawEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/ClickPlayerTextDrawEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/ClickTextDrawEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/ClickTextDrawEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/ClickTextDrawEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/ClickTextDrawEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/CommandTextEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/CommandTextEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/CommandTextEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/CommandTextEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/ConnectionEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/ConnectionEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/ConnectionEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/ConnectionEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/DamageEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/DamageEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/DamageEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/DamageEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/DeathEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/DeathEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/DeathEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/DeathEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/DialogResponseEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/DialogResponseEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/DialogResponseEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/DialogResponseEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/DialogResponseEventArgs`1.cs b/src/legacy/SampSharp.GameMode/Events/DialogResponseEventArgs`1.cs similarity index 100% rename from src/SampSharp.GameMode/Events/DialogResponseEventArgs`1.cs rename to src/legacy/SampSharp.GameMode/Events/DialogResponseEventArgs`1.cs diff --git a/src/SampSharp.GameMode/Events/DisconnectEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/DisconnectEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/DisconnectEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/DisconnectEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/EditAttachedObjectEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/EditAttachedObjectEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/EditAttachedObjectEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/EditAttachedObjectEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/EditGlobalObjectEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/EditGlobalObjectEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/EditGlobalObjectEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/EditGlobalObjectEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/EditPlayerObjectEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/EditPlayerObjectEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/EditPlayerObjectEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/EditPlayerObjectEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/EnterModShopEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/EnterModShopEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/EnterModShopEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/EnterModShopEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/EnterVehicleEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/EnterVehicleEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/EnterVehicleEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/EnterVehicleEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/InteriorChangedEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/InteriorChangedEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/InteriorChangedEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/InteriorChangedEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/KeyStateChangedEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/KeyStateChangedEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/KeyStateChangedEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/KeyStateChangedEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/MenuRowEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/MenuRowEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/MenuRowEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/MenuRowEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/PickUpPickupEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/PickUpPickupEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/PickUpPickupEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/PickUpPickupEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/PlayerEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/PlayerEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/PlayerEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/PlayerEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/PlayerUpdateEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/PlayerUpdateEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/PlayerUpdateEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/PlayerUpdateEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/PlayerVehicleEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/PlayerVehicleEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/PlayerVehicleEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/PlayerVehicleEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/PositionEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/PositionEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/PositionEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/PositionEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/RconEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/RconEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/RconEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/RconEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/RconLoginAttemptEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/RconLoginAttemptEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/RconLoginAttemptEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/RconLoginAttemptEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/RequestClassEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/RequestClassEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/RequestClassEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/RequestClassEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/RequestSpawnEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/RequestSpawnEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/RequestSpawnEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/RequestSpawnEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/SelectGlobalObjectEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/SelectGlobalObjectEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/SelectGlobalObjectEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/SelectGlobalObjectEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/SirenStateEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/SirenStateEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/SirenStateEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/SirenStateEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/SpawnEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/SpawnEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/SpawnEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/SpawnEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/StateEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/StateEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/StateEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/StateEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/TextEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/TextEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/TextEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/TextEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/TrailerEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/TrailerEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/TrailerEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/TrailerEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/UnoccupiedVehicleEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/UnoccupiedVehicleEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/UnoccupiedVehicleEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/UnoccupiedVehicleEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/VehicleModEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/VehicleModEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/VehicleModEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/VehicleModEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/VehiclePaintjobEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/VehiclePaintjobEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/VehiclePaintjobEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/VehiclePaintjobEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/VehicleResprayedEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/VehicleResprayedEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/VehicleResprayedEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/VehicleResprayedEventArgs.cs diff --git a/src/SampSharp.GameMode/Events/WeaponShotEventArgs.cs b/src/legacy/SampSharp.GameMode/Events/WeaponShotEventArgs.cs similarity index 100% rename from src/SampSharp.GameMode/Events/WeaponShotEventArgs.cs rename to src/legacy/SampSharp.GameMode/Events/WeaponShotEventArgs.cs diff --git a/src/SampSharp.GameMode/Extension.cs b/src/legacy/SampSharp.GameMode/Extension.cs similarity index 100% rename from src/SampSharp.GameMode/Extension.cs rename to src/legacy/SampSharp.GameMode/Extension.cs diff --git a/src/SampSharp.GameMode/Factories/BaseVehicleFactory.Internal.cs b/src/legacy/SampSharp.GameMode/Factories/BaseVehicleFactory.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/Factories/BaseVehicleFactory.Internal.cs rename to src/legacy/SampSharp.GameMode/Factories/BaseVehicleFactory.Internal.cs diff --git a/src/SampSharp.GameMode/Factories/BaseVehicleFactory.cs b/src/legacy/SampSharp.GameMode/Factories/BaseVehicleFactory.cs similarity index 100% rename from src/SampSharp.GameMode/Factories/BaseVehicleFactory.cs rename to src/legacy/SampSharp.GameMode/Factories/BaseVehicleFactory.cs diff --git a/src/SampSharp.GameMode/Factories/IVehicleFactory.cs b/src/legacy/SampSharp.GameMode/Factories/IVehicleFactory.cs similarity index 100% rename from src/SampSharp.GameMode/Factories/IVehicleFactory.cs rename to src/legacy/SampSharp.GameMode/Factories/IVehicleFactory.cs diff --git a/src/SampSharp.GameMode/GameModeServiceContainer.cs b/src/legacy/SampSharp.GameMode/GameModeServiceContainer.cs similarity index 100% rename from src/SampSharp.GameMode/GameModeServiceContainer.cs rename to src/legacy/SampSharp.GameMode/GameModeServiceContainer.cs diff --git a/src/SampSharp.GameMode/Helpers/MathHelper.cs b/src/legacy/SampSharp.GameMode/Helpers/MathHelper.cs similarity index 100% rename from src/SampSharp.GameMode/Helpers/MathHelper.cs rename to src/legacy/SampSharp.GameMode/Helpers/MathHelper.cs diff --git a/src/SampSharp.GameMode/Helpers/NullableHelper.cs b/src/legacy/SampSharp.GameMode/Helpers/NullableHelper.cs similarity index 100% rename from src/SampSharp.GameMode/Helpers/NullableHelper.cs rename to src/legacy/SampSharp.GameMode/Helpers/NullableHelper.cs diff --git a/src/SampSharp.GameMode/Helpers/VehicleParameterValueHelper.cs b/src/legacy/SampSharp.GameMode/Helpers/VehicleParameterValueHelper.cs similarity index 100% rename from src/SampSharp.GameMode/Helpers/VehicleParameterValueHelper.cs rename to src/legacy/SampSharp.GameMode/Helpers/VehicleParameterValueHelper.cs diff --git a/src/SampSharp.GameMode/IExtension.cs b/src/legacy/SampSharp.GameMode/IExtension.cs similarity index 100% rename from src/SampSharp.GameMode/IExtension.cs rename to src/legacy/SampSharp.GameMode/IExtension.cs diff --git a/src/SampSharp.GameMode/IService.cs b/src/legacy/SampSharp.GameMode/IService.cs similarity index 100% rename from src/SampSharp.GameMode/IService.cs rename to src/legacy/SampSharp.GameMode/IService.cs diff --git a/src/SampSharp.GameMode/Matrix.cs b/src/legacy/SampSharp.GameMode/Matrix.cs similarity index 100% rename from src/SampSharp.GameMode/Matrix.cs rename to src/legacy/SampSharp.GameMode/Matrix.cs diff --git a/src/SampSharp.GameMode/PlayerDisconnectedException.cs b/src/legacy/SampSharp.GameMode/PlayerDisconnectedException.cs similarity index 100% rename from src/SampSharp.GameMode/PlayerDisconnectedException.cs rename to src/legacy/SampSharp.GameMode/PlayerDisconnectedException.cs diff --git a/src/SampSharp.GameMode/Pools/IdentifiedOwnedPool`1.cs b/src/legacy/SampSharp.GameMode/Pools/IdentifiedOwnedPool`1.cs similarity index 100% rename from src/SampSharp.GameMode/Pools/IdentifiedOwnedPool`1.cs rename to src/legacy/SampSharp.GameMode/Pools/IdentifiedOwnedPool`1.cs diff --git a/src/SampSharp.GameMode/Pools/IdentifiedPool`1.cs b/src/legacy/SampSharp.GameMode/Pools/IdentifiedPool`1.cs similarity index 100% rename from src/SampSharp.GameMode/Pools/IdentifiedPool`1.cs rename to src/legacy/SampSharp.GameMode/Pools/IdentifiedPool`1.cs diff --git a/src/SampSharp.GameMode/Pools/PoolContainer`1.cs b/src/legacy/SampSharp.GameMode/Pools/PoolContainer`1.cs similarity index 100% rename from src/SampSharp.GameMode/Pools/PoolContainer`1.cs rename to src/legacy/SampSharp.GameMode/Pools/PoolContainer`1.cs diff --git a/src/SampSharp.GameMode/Pools/Pool`1.cs b/src/legacy/SampSharp.GameMode/Pools/Pool`1.cs similarity index 100% rename from src/SampSharp.GameMode/Pools/Pool`1.cs rename to src/legacy/SampSharp.GameMode/Pools/Pool`1.cs diff --git a/src/SampSharp.GameMode/Pools/PooledTypeAttribute.cs b/src/legacy/SampSharp.GameMode/Pools/PooledTypeAttribute.cs similarity index 100% rename from src/SampSharp.GameMode/Pools/PooledTypeAttribute.cs rename to src/legacy/SampSharp.GameMode/Pools/PooledTypeAttribute.cs diff --git a/src/SampSharp.GameMode/Quaternion.cs b/src/legacy/SampSharp.GameMode/Quaternion.cs similarity index 100% rename from src/SampSharp.GameMode/Quaternion.cs rename to src/legacy/SampSharp.GameMode/Quaternion.cs diff --git a/src/SampSharp.GameMode/SAMP/Color.cs b/src/legacy/SampSharp.GameMode/SAMP/Color.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Color.cs rename to src/legacy/SampSharp.GameMode/SAMP/Color.cs diff --git a/src/SampSharp.GameMode/SAMP/ColorFormat.cs b/src/legacy/SampSharp.GameMode/SAMP/ColorFormat.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/ColorFormat.cs rename to src/legacy/SampSharp.GameMode/SAMP/ColorFormat.cs diff --git a/src/SampSharp.GameMode/SAMP/ColorValue.cs b/src/legacy/SampSharp.GameMode/SAMP/ColorValue.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/ColorValue.cs rename to src/legacy/SampSharp.GameMode/SAMP/ColorValue.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/CommandAttribute.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/CommandAttribute.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/CommandAttribute.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/CommandAttribute.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/CommandCallableResponse.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/CommandCallableResponse.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/CommandCallableResponse.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/CommandCallableResponse.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/CommandGroupAttribute.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/CommandGroupAttribute.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/CommandGroupAttribute.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/CommandGroupAttribute.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/CommandPath.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/CommandPath.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/CommandPath.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/CommandPath.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/CommandsManager.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/CommandsManager.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/CommandsManager.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/CommandsManager.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/DefaultCommand.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/DefaultCommand.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/DefaultCommand.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/DefaultCommand.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/DefaultHelpCommand.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/DefaultHelpCommand.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/DefaultHelpCommand.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/DefaultHelpCommand.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/ICommand.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/ICommand.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/ICommand.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/ICommand.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/ICommandsManager.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/ICommandsManager.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/ICommandsManager.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/ICommandsManager.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/NullableParam.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/NullableParam.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/NullableParam.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/NullableParam.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/EnumType.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/EnumType.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/EnumType.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/EnumType.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/FloatType.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/FloatType.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/FloatType.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/FloatType.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/ICommandParameterType.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/ICommandParameterType.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/ICommandParameterType.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/ICommandParameterType.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/IntegerType.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/IntegerType.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/IntegerType.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/IntegerType.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/NullableEnumType.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/NullableEnumType.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/NullableEnumType.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/NullableEnumType.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/PlayerType.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/PlayerType.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/PlayerType.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/PlayerType.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/TextType.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/TextType.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/TextType.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/TextType.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/VehicleType.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/VehicleType.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/VehicleType.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/VehicleType.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/WordType.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/WordType.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/ParameterTypes/WordType.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/ParameterTypes/WordType.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/Parameters/CommandParameterInfo.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/Parameters/CommandParameterInfo.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/Parameters/CommandParameterInfo.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/Parameters/CommandParameterInfo.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/Parameters/ParameterAttribute.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/Parameters/ParameterAttribute.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/Parameters/ParameterAttribute.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/Parameters/ParameterAttribute.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/AdminChecker.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/AdminChecker.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/AdminChecker.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/AdminChecker.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/IPermissionChecker.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/IPermissionChecker.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/IPermissionChecker.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/IPermissionChecker.cs diff --git a/src/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/SilentAdminChecker.cs b/src/legacy/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/SilentAdminChecker.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/SilentAdminChecker.cs rename to src/legacy/SampSharp.GameMode/SAMP/Commands/PermissionCheckers/SilentAdminChecker.cs diff --git a/src/SampSharp.GameMode/SAMP/KeyChangeHandlerSet.cs b/src/legacy/SampSharp.GameMode/SAMP/KeyChangeHandlerSet.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/KeyChangeHandlerSet.cs rename to src/legacy/SampSharp.GameMode/SAMP/KeyChangeHandlerSet.cs diff --git a/src/SampSharp.GameMode/SAMP/KeyHandlerSet.cs b/src/legacy/SampSharp.GameMode/SAMP/KeyHandlerSet.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/KeyHandlerSet.cs rename to src/legacy/SampSharp.GameMode/SAMP/KeyHandlerSet.cs diff --git a/src/SampSharp.GameMode/SAMP/PVarCollection.Internal.cs b/src/legacy/SampSharp.GameMode/SAMP/PVarCollection.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/PVarCollection.Internal.cs rename to src/legacy/SampSharp.GameMode/SAMP/PVarCollection.Internal.cs diff --git a/src/SampSharp.GameMode/SAMP/PVarCollection.cs b/src/legacy/SampSharp.GameMode/SAMP/PVarCollection.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/PVarCollection.cs rename to src/legacy/SampSharp.GameMode/SAMP/PVarCollection.cs diff --git a/src/SampSharp.GameMode/SAMP/PriorityKeyHandler.cs b/src/legacy/SampSharp.GameMode/SAMP/PriorityKeyHandler.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/PriorityKeyHandler.cs rename to src/legacy/SampSharp.GameMode/SAMP/PriorityKeyHandler.cs diff --git a/src/SampSharp.GameMode/SAMP/SVarCollection.Internal.cs b/src/legacy/SampSharp.GameMode/SAMP/SVarCollection.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/SVarCollection.Internal.cs rename to src/legacy/SampSharp.GameMode/SAMP/SVarCollection.Internal.cs diff --git a/src/SampSharp.GameMode/SAMP/SVarCollection.cs b/src/legacy/SampSharp.GameMode/SAMP/SVarCollection.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/SVarCollection.cs rename to src/legacy/SampSharp.GameMode/SAMP/SVarCollection.cs diff --git a/src/SampSharp.GameMode/SAMP/Server.Internal.cs b/src/legacy/SampSharp.GameMode/SAMP/Server.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Server.Internal.cs rename to src/legacy/SampSharp.GameMode/SAMP/Server.Internal.cs diff --git a/src/SampSharp.GameMode/SAMP/Server.cs b/src/legacy/SampSharp.GameMode/SAMP/Server.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Server.cs rename to src/legacy/SampSharp.GameMode/SAMP/Server.cs diff --git a/src/SampSharp.GameMode/SAMP/ServerConfig.cs b/src/legacy/SampSharp.GameMode/SAMP/ServerConfig.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/ServerConfig.cs rename to src/legacy/SampSharp.GameMode/SAMP/ServerConfig.cs diff --git a/src/SampSharp.GameMode/SAMP/Timer.cs b/src/legacy/SampSharp.GameMode/SAMP/Timer.cs similarity index 100% rename from src/SampSharp.GameMode/SAMP/Timer.cs rename to src/legacy/SampSharp.GameMode/SAMP/Timer.cs diff --git a/src/SampSharp.GameMode/SampSharp.GameMode.csproj b/src/legacy/SampSharp.GameMode/SampSharp.GameMode.csproj similarity index 100% rename from src/SampSharp.GameMode/SampSharp.GameMode.csproj rename to src/legacy/SampSharp.GameMode/SampSharp.GameMode.csproj diff --git a/src/SampSharp.GameMode/SampSharpExtensionAttribute.cs b/src/legacy/SampSharp.GameMode/SampSharpExtensionAttribute.cs similarity index 100% rename from src/SampSharp.GameMode/SampSharpExtensionAttribute.cs rename to src/legacy/SampSharp.GameMode/SampSharpExtensionAttribute.cs diff --git a/src/SampSharp.GameMode/Service.cs b/src/legacy/SampSharp.GameMode/Service.cs similarity index 100% rename from src/SampSharp.GameMode/Service.cs rename to src/legacy/SampSharp.GameMode/Service.cs diff --git a/src/SampSharp.GameMode/Tools/ASyncPlayerWaiter.cs b/src/legacy/SampSharp.GameMode/Tools/ASyncPlayerWaiter.cs similarity index 100% rename from src/SampSharp.GameMode/Tools/ASyncPlayerWaiter.cs rename to src/legacy/SampSharp.GameMode/Tools/ASyncPlayerWaiter.cs diff --git a/src/SampSharp.GameMode/Tools/ASyncWaiter`2.cs b/src/legacy/SampSharp.GameMode/Tools/ASyncWaiter`2.cs similarity index 100% rename from src/SampSharp.GameMode/Tools/ASyncWaiter`2.cs rename to src/legacy/SampSharp.GameMode/Tools/ASyncWaiter`2.cs diff --git a/src/SampSharp.GameMode/Tools/Disposable.cs b/src/legacy/SampSharp.GameMode/Tools/Disposable.cs similarity index 100% rename from src/SampSharp.GameMode/Tools/Disposable.cs rename to src/legacy/SampSharp.GameMode/Tools/Disposable.cs diff --git a/src/SampSharp.GameMode/Tools/KeyUtils.cs b/src/legacy/SampSharp.GameMode/Tools/KeyUtils.cs similarity index 100% rename from src/SampSharp.GameMode/Tools/KeyUtils.cs rename to src/legacy/SampSharp.GameMode/Tools/KeyUtils.cs diff --git a/src/SampSharp.GameMode/Vector2.cs b/src/legacy/SampSharp.GameMode/Vector2.cs similarity index 100% rename from src/SampSharp.GameMode/Vector2.cs rename to src/legacy/SampSharp.GameMode/Vector2.cs diff --git a/src/SampSharp.GameMode/Vector3.cs b/src/legacy/SampSharp.GameMode/Vector3.cs similarity index 100% rename from src/SampSharp.GameMode/Vector3.cs rename to src/legacy/SampSharp.GameMode/Vector3.cs diff --git a/src/SampSharp.GameMode/Vector4.cs b/src/legacy/SampSharp.GameMode/Vector4.cs similarity index 100% rename from src/SampSharp.GameMode/Vector4.cs rename to src/legacy/SampSharp.GameMode/Vector4.cs diff --git a/src/SampSharp.GameMode/World/Actor.Internal.cs b/src/legacy/SampSharp.GameMode/World/Actor.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/World/Actor.Internal.cs rename to src/legacy/SampSharp.GameMode/World/Actor.Internal.cs diff --git a/src/SampSharp.GameMode/World/Actor.cs b/src/legacy/SampSharp.GameMode/World/Actor.cs similarity index 100% rename from src/SampSharp.GameMode/World/Actor.cs rename to src/legacy/SampSharp.GameMode/World/Actor.cs diff --git a/src/SampSharp.GameMode/World/BasePlayer.Internal.cs b/src/legacy/SampSharp.GameMode/World/BasePlayer.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/World/BasePlayer.Internal.cs rename to src/legacy/SampSharp.GameMode/World/BasePlayer.Internal.cs diff --git a/src/SampSharp.GameMode/World/BasePlayer.cs b/src/legacy/SampSharp.GameMode/World/BasePlayer.cs similarity index 100% rename from src/SampSharp.GameMode/World/BasePlayer.cs rename to src/legacy/SampSharp.GameMode/World/BasePlayer.cs diff --git a/src/SampSharp.GameMode/World/BaseVehicle.Internal.cs b/src/legacy/SampSharp.GameMode/World/BaseVehicle.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/World/BaseVehicle.Internal.cs rename to src/legacy/SampSharp.GameMode/World/BaseVehicle.Internal.cs diff --git a/src/SampSharp.GameMode/World/BaseVehicle.cs b/src/legacy/SampSharp.GameMode/World/BaseVehicle.cs similarity index 100% rename from src/SampSharp.GameMode/World/BaseVehicle.cs rename to src/legacy/SampSharp.GameMode/World/BaseVehicle.cs diff --git a/src/SampSharp.GameMode/World/GangZone.Internal.cs b/src/legacy/SampSharp.GameMode/World/GangZone.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/World/GangZone.Internal.cs rename to src/legacy/SampSharp.GameMode/World/GangZone.Internal.cs diff --git a/src/SampSharp.GameMode/World/GangZone.cs b/src/legacy/SampSharp.GameMode/World/GangZone.cs similarity index 100% rename from src/SampSharp.GameMode/World/GangZone.cs rename to src/legacy/SampSharp.GameMode/World/GangZone.cs diff --git a/src/SampSharp.GameMode/World/GlobalObject.Internal.cs b/src/legacy/SampSharp.GameMode/World/GlobalObject.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/World/GlobalObject.Internal.cs rename to src/legacy/SampSharp.GameMode/World/GlobalObject.Internal.cs diff --git a/src/SampSharp.GameMode/World/GlobalObject.cs b/src/legacy/SampSharp.GameMode/World/GlobalObject.cs similarity index 100% rename from src/SampSharp.GameMode/World/GlobalObject.cs rename to src/legacy/SampSharp.GameMode/World/GlobalObject.cs diff --git a/src/SampSharp.GameMode/World/IGameObject.cs b/src/legacy/SampSharp.GameMode/World/IGameObject.cs similarity index 100% rename from src/SampSharp.GameMode/World/IGameObject.cs rename to src/legacy/SampSharp.GameMode/World/IGameObject.cs diff --git a/src/SampSharp.GameMode/World/IIDentifiable.cs b/src/legacy/SampSharp.GameMode/World/IIDentifiable.cs similarity index 100% rename from src/SampSharp.GameMode/World/IIDentifiable.cs rename to src/legacy/SampSharp.GameMode/World/IIDentifiable.cs diff --git a/src/SampSharp.GameMode/World/IOwnable.cs b/src/legacy/SampSharp.GameMode/World/IOwnable.cs similarity index 100% rename from src/SampSharp.GameMode/World/IOwnable.cs rename to src/legacy/SampSharp.GameMode/World/IOwnable.cs diff --git a/src/SampSharp.GameMode/World/IWorldObject.cs b/src/legacy/SampSharp.GameMode/World/IWorldObject.cs similarity index 100% rename from src/SampSharp.GameMode/World/IWorldObject.cs rename to src/legacy/SampSharp.GameMode/World/IWorldObject.cs diff --git a/src/SampSharp.GameMode/World/Pickup.Internal.cs b/src/legacy/SampSharp.GameMode/World/Pickup.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/World/Pickup.Internal.cs rename to src/legacy/SampSharp.GameMode/World/Pickup.Internal.cs diff --git a/src/SampSharp.GameMode/World/Pickup.cs b/src/legacy/SampSharp.GameMode/World/Pickup.cs similarity index 100% rename from src/SampSharp.GameMode/World/Pickup.cs rename to src/legacy/SampSharp.GameMode/World/Pickup.cs diff --git a/src/SampSharp.GameMode/World/PlayerObject.Internal.cs b/src/legacy/SampSharp.GameMode/World/PlayerObject.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/World/PlayerObject.Internal.cs rename to src/legacy/SampSharp.GameMode/World/PlayerObject.Internal.cs diff --git a/src/SampSharp.GameMode/World/PlayerObject.cs b/src/legacy/SampSharp.GameMode/World/PlayerObject.cs similarity index 100% rename from src/SampSharp.GameMode/World/PlayerObject.cs rename to src/legacy/SampSharp.GameMode/World/PlayerObject.cs diff --git a/src/SampSharp.GameMode/World/PlayerTextLabel.Internal.cs b/src/legacy/SampSharp.GameMode/World/PlayerTextLabel.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/World/PlayerTextLabel.Internal.cs rename to src/legacy/SampSharp.GameMode/World/PlayerTextLabel.Internal.cs diff --git a/src/SampSharp.GameMode/World/PlayerTextLabel.cs b/src/legacy/SampSharp.GameMode/World/PlayerTextLabel.cs similarity index 100% rename from src/SampSharp.GameMode/World/PlayerTextLabel.cs rename to src/legacy/SampSharp.GameMode/World/PlayerTextLabel.cs diff --git a/src/SampSharp.GameMode/World/TextLabel.Internal.cs b/src/legacy/SampSharp.GameMode/World/TextLabel.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/World/TextLabel.Internal.cs rename to src/legacy/SampSharp.GameMode/World/TextLabel.Internal.cs diff --git a/src/SampSharp.GameMode/World/TextLabel.cs b/src/legacy/SampSharp.GameMode/World/TextLabel.cs similarity index 100% rename from src/SampSharp.GameMode/World/TextLabel.cs rename to src/legacy/SampSharp.GameMode/World/TextLabel.cs diff --git a/src/SampSharp.GameMode/World/VehicleModelInfo.Internal.cs b/src/legacy/SampSharp.GameMode/World/VehicleModelInfo.Internal.cs similarity index 100% rename from src/SampSharp.GameMode/World/VehicleModelInfo.Internal.cs rename to src/legacy/SampSharp.GameMode/World/VehicleModelInfo.Internal.cs diff --git a/src/SampSharp.GameMode/World/VehicleModelInfo.cs b/src/legacy/SampSharp.GameMode/World/VehicleModelInfo.cs similarity index 100% rename from src/SampSharp.GameMode/World/VehicleModelInfo.cs rename to src/legacy/SampSharp.GameMode/World/VehicleModelInfo.cs diff --git a/SampSharp.Plugin.sln b/src/legacy/SampSharp.Plugin.sln similarity index 94% rename from SampSharp.Plugin.sln rename to src/legacy/SampSharp.Plugin.sln index bdc08dac7..d61c70148 100644 --- a/SampSharp.Plugin.sln +++ b/src/legacy/SampSharp.Plugin.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.32112.339 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SampSharp", "src\SampSharp\SampSharp.vcxproj", "{39908193-8E5A-42EC-B71B-5D457CE87823}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SampSharp", "SampSharp\SampSharp.vcxproj", "{39908193-8E5A-42EC-B71B-5D457CE87823}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/SampSharp.sln b/src/legacy/SampSharp.sln similarity index 91% rename from SampSharp.sln rename to src/legacy/SampSharp.sln index a867aac27..da81a6e80 100644 --- a/SampSharp.sln +++ b/src/legacy/SampSharp.sln @@ -3,23 +3,22 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.32112.339 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampSharp.Core", "src\SampSharp.Core\SampSharp.Core.csproj", "{7B9345A8-80F3-43E3-B3E1-B3E3B45B8B0F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampSharp.Core", "SampSharp.Core\SampSharp.Core.csproj", "{7B9345A8-80F3-43E3-B3E1-B3E3B45B8B0F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampSharp.GameMode", "src\SampSharp.GameMode\SampSharp.GameMode.csproj", "{153D7525-B36F-4DB9-B5B6-483915C84A7E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampSharp.GameMode", "SampSharp.GameMode\SampSharp.GameMode.csproj", "{153D7525-B36F-4DB9-B5B6-483915C84A7E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestMode.GameMode", "src\TestMode.GameMode\TestMode.GameMode.csproj", "{AAF5CF0F-5B39-4122-B2A2-E7D5910CB4D5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestMode.GameMode", "TestMode.GameMode\TestMode.GameMode.csproj", "{AAF5CF0F-5B39-4122-B2A2-E7D5910CB4D5}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{6B10DCD1-5FFB-4B21-AF82-1906E6AF7119}" ProjectSection(SolutionItems) = preProject - .editorconfig = .editorconfig - Directory.build.props = Directory.build.props + Directory.Build.props = Directory.Build.props EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampSharp.Entities", "src\SampSharp.Entities\SampSharp.Entities.csproj", "{DBADB3D5-8B69-416C-9A97-0A9767DFBC7A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampSharp.Entities", "SampSharp.Entities\SampSharp.Entities.csproj", "{DBADB3D5-8B69-416C-9A97-0A9767DFBC7A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestMode.Entities", "src\TestMode.Entities\TestMode.Entities.csproj", "{9ADD7452-9B5A-42FF-BAA0-AFBC93BE711A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestMode.Entities", "TestMode.Entities\TestMode.Entities.csproj", "{9ADD7452-9B5A-42FF-BAA0-AFBC93BE711A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampSharp.Core.UnitTests", "src\SampSharp.Core.UnitTests\SampSharp.Core.UnitTests.csproj", "{791B7ABD-43B4-436A-8E55-DA573B102E86}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampSharp.Core.UnitTests", "SampSharp.Core.UnitTests\SampSharp.Core.UnitTests.csproj", "{791B7ABD-43B4-436A-8E55-DA573B102E86}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/SampSharp.sln.DotSettings b/src/legacy/SampSharp.sln.DotSettings similarity index 100% rename from SampSharp.sln.DotSettings rename to src/legacy/SampSharp.sln.DotSettings diff --git a/src/SampSharp/SampSharp.def b/src/legacy/SampSharp/SampSharp.def similarity index 100% rename from src/SampSharp/SampSharp.def rename to src/legacy/SampSharp/SampSharp.def diff --git a/src/SampSharp/SampSharp.vcxproj b/src/legacy/SampSharp/SampSharp.vcxproj similarity index 96% rename from src/SampSharp/SampSharp.vcxproj rename to src/legacy/SampSharp/SampSharp.vcxproj index da836df5b..19689b5e5 100644 --- a/src/SampSharp/SampSharp.vcxproj +++ b/src/legacy/SampSharp/SampSharp.vcxproj @@ -23,12 +23,12 @@ true MultiByte false - v143 + v145 DynamicLibrary false - v143 + v145 true MultiByte @@ -44,11 +44,11 @@ true - $(SolutionDir)env\plugins\ + $(SolutionDir)..\..\env\plugins\ false - $(SolutionDir)bin\ + $(SolutionDir)..\..\build\bin\SampSharp\Release\ diff --git a/src/SampSharp/SampSharp.vcxproj.filters b/src/legacy/SampSharp/SampSharp.vcxproj.filters similarity index 100% rename from src/SampSharp/SampSharp.vcxproj.filters rename to src/legacy/SampSharp/SampSharp.vcxproj.filters diff --git a/src/SampSharp/config.cpp b/src/legacy/SampSharp/config.cpp similarity index 100% rename from src/SampSharp/config.cpp rename to src/legacy/SampSharp/config.cpp diff --git a/src/SampSharp/config.h b/src/legacy/SampSharp/config.h similarity index 100% rename from src/SampSharp/config.h rename to src/legacy/SampSharp/config.h diff --git a/src/SampSharp/config_cfg.cpp b/src/legacy/SampSharp/config_cfg.cpp similarity index 100% rename from src/SampSharp/config_cfg.cpp rename to src/legacy/SampSharp/config_cfg.cpp diff --git a/src/SampSharp/config_cfg.h b/src/legacy/SampSharp/config_cfg.h similarity index 100% rename from src/SampSharp/config_cfg.h rename to src/legacy/SampSharp/config_cfg.h diff --git a/src/SampSharp/config_composite.cpp b/src/legacy/SampSharp/config_composite.cpp similarity index 100% rename from src/SampSharp/config_composite.cpp rename to src/legacy/SampSharp/config_composite.cpp diff --git a/src/SampSharp/config_composite.h b/src/legacy/SampSharp/config_composite.h similarity index 100% rename from src/SampSharp/config_composite.h rename to src/legacy/SampSharp/config_composite.h diff --git a/src/SampSharp/config_omp.cpp b/src/legacy/SampSharp/config_omp.cpp similarity index 100% rename from src/SampSharp/config_omp.cpp rename to src/legacy/SampSharp/config_omp.cpp diff --git a/src/SampSharp/config_omp.h b/src/legacy/SampSharp/config_omp.h similarity index 100% rename from src/SampSharp/config_omp.h rename to src/legacy/SampSharp/config_omp.h diff --git a/src/SampSharp/config_win.cpp b/src/legacy/SampSharp/config_win.cpp similarity index 100% rename from src/SampSharp/config_win.cpp rename to src/legacy/SampSharp/config_win.cpp diff --git a/src/SampSharp/config_win.h b/src/legacy/SampSharp/config_win.h similarity index 100% rename from src/SampSharp/config_win.h rename to src/legacy/SampSharp/config_win.h diff --git a/src/SampSharp/coreclr_app.cpp b/src/legacy/SampSharp/coreclr_app.cpp similarity index 100% rename from src/SampSharp/coreclr_app.cpp rename to src/legacy/SampSharp/coreclr_app.cpp diff --git a/src/SampSharp/coreclr_app.h b/src/legacy/SampSharp/coreclr_app.h similarity index 100% rename from src/SampSharp/coreclr_app.h rename to src/legacy/SampSharp/coreclr_app.h diff --git a/src/SampSharp/includes/coreclr/coreclrhost.h b/src/legacy/SampSharp/includes/coreclr/coreclrhost.h similarity index 100% rename from src/SampSharp/includes/coreclr/coreclrhost.h rename to src/legacy/SampSharp/includes/coreclr/coreclrhost.h diff --git a/src/SampSharp/includes/coreclr/mscoree.h b/src/legacy/SampSharp/includes/coreclr/mscoree.h similarity index 100% rename from src/SampSharp/includes/coreclr/mscoree.h rename to src/legacy/SampSharp/includes/coreclr/mscoree.h diff --git a/src/SampSharp/includes/json/json.hpp b/src/legacy/SampSharp/includes/json/json.hpp similarity index 100% rename from src/SampSharp/includes/json/json.hpp rename to src/legacy/SampSharp/includes/json/json.hpp diff --git a/src/SampSharp/includes/sampgdk/sampgdk.c b/src/legacy/SampSharp/includes/sampgdk/sampgdk.c similarity index 100% rename from src/SampSharp/includes/sampgdk/sampgdk.c rename to src/legacy/SampSharp/includes/sampgdk/sampgdk.c diff --git a/src/SampSharp/includes/sampgdk/sampgdk.h b/src/legacy/SampSharp/includes/sampgdk/sampgdk.h similarity index 100% rename from src/SampSharp/includes/sampgdk/sampgdk.h rename to src/legacy/SampSharp/includes/sampgdk/sampgdk.h diff --git a/src/SampSharp/includes/sdk/amx/amx.h b/src/legacy/SampSharp/includes/sdk/amx/amx.h similarity index 100% rename from src/SampSharp/includes/sdk/amx/amx.h rename to src/legacy/SampSharp/includes/sdk/amx/amx.h diff --git a/src/SampSharp/includes/sdk/amx/getch.h b/src/legacy/SampSharp/includes/sdk/amx/getch.h similarity index 100% rename from src/SampSharp/includes/sdk/amx/getch.h rename to src/legacy/SampSharp/includes/sdk/amx/getch.h diff --git a/src/SampSharp/includes/sdk/amx/sclinux.h b/src/legacy/SampSharp/includes/sdk/amx/sclinux.h similarity index 100% rename from src/SampSharp/includes/sdk/amx/sclinux.h rename to src/legacy/SampSharp/includes/sdk/amx/sclinux.h diff --git a/src/SampSharp/includes/sdk/amxplugin.cpp b/src/legacy/SampSharp/includes/sdk/amxplugin.cpp similarity index 100% rename from src/SampSharp/includes/sdk/amxplugin.cpp rename to src/legacy/SampSharp/includes/sdk/amxplugin.cpp diff --git a/src/SampSharp/includes/sdk/plugin.h b/src/legacy/SampSharp/includes/sdk/plugin.h similarity index 100% rename from src/SampSharp/includes/sdk/plugin.h rename to src/legacy/SampSharp/includes/sdk/plugin.h diff --git a/src/SampSharp/includes/sdk/plugincommon.h b/src/legacy/SampSharp/includes/sdk/plugincommon.h similarity index 100% rename from src/SampSharp/includes/sdk/plugincommon.h rename to src/legacy/SampSharp/includes/sdk/plugincommon.h diff --git a/src/SampSharp/interop.cpp b/src/legacy/SampSharp/interop.cpp similarity index 100% rename from src/SampSharp/interop.cpp rename to src/legacy/SampSharp/interop.cpp diff --git a/src/SampSharp/interop.h b/src/legacy/SampSharp/interop.h similarity index 100% rename from src/SampSharp/interop.h rename to src/legacy/SampSharp/interop.h diff --git a/src/SampSharp/locator.cpp b/src/legacy/SampSharp/locator.cpp similarity index 100% rename from src/SampSharp/locator.cpp rename to src/legacy/SampSharp/locator.cpp diff --git a/src/SampSharp/locator.h b/src/legacy/SampSharp/locator.h similarity index 100% rename from src/SampSharp/locator.h rename to src/legacy/SampSharp/locator.h diff --git a/src/SampSharp/logging.cpp b/src/legacy/SampSharp/logging.cpp similarity index 100% rename from src/SampSharp/logging.cpp rename to src/legacy/SampSharp/logging.cpp diff --git a/src/SampSharp/logging.h b/src/legacy/SampSharp/logging.h similarity index 100% rename from src/SampSharp/logging.h rename to src/legacy/SampSharp/logging.h diff --git a/src/SampSharp/main.cpp b/src/legacy/SampSharp/main.cpp similarity index 100% rename from src/SampSharp/main.cpp rename to src/legacy/SampSharp/main.cpp diff --git a/src/SampSharp/nethost.h b/src/legacy/SampSharp/nethost.h similarity index 100% rename from src/SampSharp/nethost.h rename to src/legacy/SampSharp/nethost.h diff --git a/src/SampSharp/nethost_coreclr.cpp b/src/legacy/SampSharp/nethost_coreclr.cpp similarity index 100% rename from src/SampSharp/nethost_coreclr.cpp rename to src/legacy/SampSharp/nethost_coreclr.cpp diff --git a/src/SampSharp/nethost_coreclr.h b/src/legacy/SampSharp/nethost_coreclr.h similarity index 100% rename from src/SampSharp/nethost_coreclr.h rename to src/legacy/SampSharp/nethost_coreclr.h diff --git a/src/SampSharp/platforms.h b/src/legacy/SampSharp/platforms.h similarity index 100% rename from src/SampSharp/platforms.h rename to src/legacy/SampSharp/platforms.h diff --git a/src/SampSharp/strutil.cpp b/src/legacy/SampSharp/strutil.cpp similarity index 100% rename from src/SampSharp/strutil.cpp rename to src/legacy/SampSharp/strutil.cpp diff --git a/src/SampSharp/strutil.h b/src/legacy/SampSharp/strutil.h similarity index 100% rename from src/SampSharp/strutil.h rename to src/legacy/SampSharp/strutil.h diff --git a/src/SampSharp/testing.cpp b/src/legacy/SampSharp/testing.cpp similarity index 100% rename from src/SampSharp/testing.cpp rename to src/legacy/SampSharp/testing.cpp diff --git a/src/SampSharp/testing.h b/src/legacy/SampSharp/testing.h similarity index 100% rename from src/SampSharp/testing.h rename to src/legacy/SampSharp/testing.h diff --git a/src/SampSharp/version.h b/src/legacy/SampSharp/version.h similarity index 100% rename from src/SampSharp/version.h rename to src/legacy/SampSharp/version.h diff --git a/src/TestMode.Entities/Components/TestComponent.cs b/src/legacy/TestMode.Entities/Components/TestComponent.cs similarity index 100% rename from src/TestMode.Entities/Components/TestComponent.cs rename to src/legacy/TestMode.Entities/Components/TestComponent.cs diff --git a/src/TestMode.Entities/Components/UnusedComponent.cs b/src/legacy/TestMode.Entities/Components/UnusedComponent.cs similarity index 100% rename from src/TestMode.Entities/Components/UnusedComponent.cs rename to src/legacy/TestMode.Entities/Components/UnusedComponent.cs diff --git a/src/TestMode.Entities/Program.cs b/src/legacy/TestMode.Entities/Program.cs similarity index 100% rename from src/TestMode.Entities/Program.cs rename to src/legacy/TestMode.Entities/Program.cs diff --git a/src/TestMode.Entities/Properties/launchSettings.json b/src/legacy/TestMode.Entities/Properties/launchSettings.json similarity index 100% rename from src/TestMode.Entities/Properties/launchSettings.json rename to src/legacy/TestMode.Entities/Properties/launchSettings.json diff --git a/src/TestMode.Entities/Services/FunnyService.cs b/src/legacy/TestMode.Entities/Services/FunnyService.cs similarity index 100% rename from src/TestMode.Entities/Services/FunnyService.cs rename to src/legacy/TestMode.Entities/Services/FunnyService.cs diff --git a/src/TestMode.Entities/Services/IFunnyService.cs b/src/legacy/TestMode.Entities/Services/IFunnyService.cs similarity index 100% rename from src/TestMode.Entities/Services/IFunnyService.cs rename to src/legacy/TestMode.Entities/Services/IFunnyService.cs diff --git a/src/TestMode.Entities/Services/IScopedFunnyService.cs b/src/legacy/TestMode.Entities/Services/IScopedFunnyService.cs similarity index 100% rename from src/TestMode.Entities/Services/IScopedFunnyService.cs rename to src/legacy/TestMode.Entities/Services/IScopedFunnyService.cs diff --git a/src/TestMode.Entities/Services/IVehicleRepository.cs b/src/legacy/TestMode.Entities/Services/IVehicleRepository.cs similarity index 100% rename from src/TestMode.Entities/Services/IVehicleRepository.cs rename to src/legacy/TestMode.Entities/Services/IVehicleRepository.cs diff --git a/src/TestMode.Entities/Services/VehicleRepository.cs b/src/legacy/TestMode.Entities/Services/VehicleRepository.cs similarity index 100% rename from src/TestMode.Entities/Services/VehicleRepository.cs rename to src/legacy/TestMode.Entities/Services/VehicleRepository.cs diff --git a/src/TestMode.Entities/Systems/BasicCommandsSystem.cs b/src/legacy/TestMode.Entities/Systems/BasicCommandsSystem.cs similarity index 100% rename from src/TestMode.Entities/Systems/BasicCommandsSystem.cs rename to src/legacy/TestMode.Entities/Systems/BasicCommandsSystem.cs diff --git a/src/TestMode.Entities/Systems/IssueTests/Issue326Timers.cs b/src/legacy/TestMode.Entities/Systems/IssueTests/Issue326Timers.cs similarity index 100% rename from src/TestMode.Entities/Systems/IssueTests/Issue326Timers.cs rename to src/legacy/TestMode.Entities/Systems/IssueTests/Issue326Timers.cs diff --git a/src/TestMode.Entities/Systems/IssueTests/Issue333ReproIndexOutOfBoundsError.cs b/src/legacy/TestMode.Entities/Systems/IssueTests/Issue333ReproIndexOutOfBoundsError.cs similarity index 100% rename from src/TestMode.Entities/Systems/IssueTests/Issue333ReproIndexOutOfBoundsError.cs rename to src/legacy/TestMode.Entities/Systems/IssueTests/Issue333ReproIndexOutOfBoundsError.cs diff --git a/src/TestMode.Entities/Systems/IssueTests/Issue353ReproEntityIdError.cs b/src/legacy/TestMode.Entities/Systems/IssueTests/Issue353ReproEntityIdError.cs similarity index 100% rename from src/TestMode.Entities/Systems/IssueTests/Issue353ReproEntityIdError.cs rename to src/legacy/TestMode.Entities/Systems/IssueTests/Issue353ReproEntityIdError.cs diff --git a/src/TestMode.Entities/Systems/IssueTests/Issue363ReproServerCrash.cs b/src/legacy/TestMode.Entities/Systems/IssueTests/Issue363ReproServerCrash.cs similarity index 100% rename from src/TestMode.Entities/Systems/IssueTests/Issue363ReproServerCrash.cs rename to src/legacy/TestMode.Entities/Systems/IssueTests/Issue363ReproServerCrash.cs diff --git a/src/TestMode.Entities/Systems/IssueTests/Issue419VehicleHealthOnGmx.cs b/src/legacy/TestMode.Entities/Systems/IssueTests/Issue419VehicleHealthOnGmx.cs similarity index 100% rename from src/TestMode.Entities/Systems/IssueTests/Issue419VehicleHealthOnGmx.cs rename to src/legacy/TestMode.Entities/Systems/IssueTests/Issue419VehicleHealthOnGmx.cs diff --git a/src/TestMode.Entities/Systems/IssueTests/Issue450DialogClosingCausesError.cs b/src/legacy/TestMode.Entities/Systems/IssueTests/Issue450DialogClosingCausesError.cs similarity index 100% rename from src/TestMode.Entities/Systems/IssueTests/Issue450DialogClosingCausesError.cs rename to src/legacy/TestMode.Entities/Systems/IssueTests/Issue450DialogClosingCausesError.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemActorTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemActorTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemActorTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemActorTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemCheckpointTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemCheckpointTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemCheckpointTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemCheckpointTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemDiTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemDiTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemDiTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemDiTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemDialogsTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemDialogsTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemDialogsTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemDialogsTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemEntityComponentsTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemEntityComponentsTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemEntityComponentsTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemEntityComponentsTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemMenuTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemMenuTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemMenuTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemMenuTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemObjectTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemObjectTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemObjectTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemObjectTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemPlayerCommandTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemPlayerCommandTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemPlayerCommandTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemPlayerCommandTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemRconCommandTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemRconCommandTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemRconCommandTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemRconCommandTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemSynchronizationContextTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemSynchronizationContextTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemSynchronizationContextTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemSynchronizationContextTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemTextLabelTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemTextLabelTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemTextLabelTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemTextLabelTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemTextdrawTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemTextdrawTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemTextdrawTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemTextdrawTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemTicking.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemTicking.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemTicking.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemTicking.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemVehicleInfoTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemVehicleInfoTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemVehicleInfoTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemVehicleInfoTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemVehicleRotationQuaternionErrorTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemVehicleRotationQuaternionErrorTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemVehicleRotationQuaternionErrorTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemVehicleRotationQuaternionErrorTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemVehicleTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemVehicleTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemVehicleTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemVehicleTest.cs diff --git a/src/TestMode.Entities/Systems/Tests/SystemZoneTest.cs b/src/legacy/TestMode.Entities/Systems/Tests/SystemZoneTest.cs similarity index 100% rename from src/TestMode.Entities/Systems/Tests/SystemZoneTest.cs rename to src/legacy/TestMode.Entities/Systems/Tests/SystemZoneTest.cs diff --git a/src/TestMode.Entities/TestMode.Entities.csproj b/src/legacy/TestMode.Entities/TestMode.Entities.csproj similarity index 100% rename from src/TestMode.Entities/TestMode.Entities.csproj rename to src/legacy/TestMode.Entities/TestMode.Entities.csproj diff --git a/src/TestMode.Entities/TestStartup.cs b/src/legacy/TestMode.Entities/TestStartup.cs similarity index 100% rename from src/TestMode.Entities/TestStartup.cs rename to src/legacy/TestMode.Entities/TestStartup.cs diff --git a/src/TestMode.GameMode/BenchmarkCommands.cs b/src/legacy/TestMode.GameMode/BenchmarkCommands.cs similarity index 100% rename from src/TestMode.GameMode/BenchmarkCommands.cs rename to src/legacy/TestMode.GameMode/BenchmarkCommands.cs diff --git a/src/TestMode.GameMode/Commands/Commands.cs b/src/legacy/TestMode.GameMode/Commands/Commands.cs similarity index 100% rename from src/TestMode.GameMode/Commands/Commands.cs rename to src/legacy/TestMode.GameMode/Commands/Commands.cs diff --git a/src/TestMode.GameMode/Commands/DialogCommands.cs b/src/legacy/TestMode.GameMode/Commands/DialogCommands.cs similarity index 100% rename from src/TestMode.GameMode/Commands/DialogCommands.cs rename to src/legacy/TestMode.GameMode/Commands/DialogCommands.cs diff --git a/src/TestMode.GameMode/GameMode.cs b/src/legacy/TestMode.GameMode/GameMode.cs similarity index 100% rename from src/TestMode.GameMode/GameMode.cs rename to src/legacy/TestMode.GameMode/GameMode.cs diff --git a/src/TestMode.GameMode/Player.cs b/src/legacy/TestMode.GameMode/Player.cs similarity index 100% rename from src/TestMode.GameMode/Player.cs rename to src/legacy/TestMode.GameMode/Player.cs diff --git a/src/TestMode.GameMode/Program.cs b/src/legacy/TestMode.GameMode/Program.cs similarity index 100% rename from src/TestMode.GameMode/Program.cs rename to src/legacy/TestMode.GameMode/Program.cs diff --git a/src/TestMode.GameMode/Properties/launchSettings.json b/src/legacy/TestMode.GameMode/Properties/launchSettings.json similarity index 100% rename from src/TestMode.GameMode/Properties/launchSettings.json rename to src/legacy/TestMode.GameMode/Properties/launchSettings.json diff --git a/src/TestMode.GameMode/TestMode.GameMode.csproj b/src/legacy/TestMode.GameMode/TestMode.GameMode.csproj similarity index 100% rename from src/TestMode.GameMode/TestMode.GameMode.csproj rename to src/legacy/TestMode.GameMode/TestMode.GameMode.csproj diff --git a/src/TestMode.GameMode/Vehicle.cs b/src/legacy/TestMode.GameMode/Vehicle.cs similarity index 100% rename from src/TestMode.GameMode/Vehicle.cs rename to src/legacy/TestMode.GameMode/Vehicle.cs diff --git a/src/pawn/_rconfix.amx b/src/legacy/pawn/_rconfix.amx similarity index 100% rename from src/pawn/_rconfix.amx rename to src/legacy/pawn/_rconfix.amx diff --git a/src/pawn/_rconfix.pwn b/src/legacy/pawn/_rconfix.pwn similarity index 100% rename from src/pawn/_rconfix.pwn rename to src/legacy/pawn/_rconfix.pwn diff --git a/src/pawn/empty.amx b/src/legacy/pawn/empty.amx similarity index 100% rename from src/pawn/empty.amx rename to src/legacy/pawn/empty.amx diff --git a/src/pawn/empty.pwn b/src/legacy/pawn/empty.pwn similarity index 100% rename from src/pawn/empty.pwn rename to src/legacy/pawn/empty.pwn From 80552c669d1e329c27513f0eb18db249bc2f9216 Mon Sep 17 00:00:00 2001 From: Tim Potze Date: Wed, 29 Apr 2026 23:53:13 +0200 Subject: [PATCH 02/15] update buildfiles and readme --- .gitignore | 419 ++-------------------------- Makefile | 40 --- README.md | 57 +++- build.cmd | 95 +++++++ build.sh | 93 ++++++ src/legacy/Directory.Build.props | 2 +- src/legacy/SampSharp/CMakeLists.txt | 82 ++++++ src/legacy/SampSharp/build.cmd | 30 ++ src/legacy/SampSharp/build.sh | 20 ++ src/legacy/SampSharp/publish.cmd | 34 +++ src/legacy/SampSharp/publish.sh | 36 +++ 11 files changed, 456 insertions(+), 452 deletions(-) delete mode 100644 Makefile create mode 100644 build.cmd create mode 100644 build.sh create mode 100644 src/legacy/SampSharp/CMakeLists.txt create mode 100644 src/legacy/SampSharp/build.cmd create mode 100644 src/legacy/SampSharp/build.sh create mode 100644 src/legacy/SampSharp/publish.cmd create mode 100644 src/legacy/SampSharp/publish.sh diff --git a/.gitignore b/.gitignore index 3a8ff423e..5d720ce6f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,404 +1,27 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Ww][Ii][Nn]32/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# ASP.NET Scaffolding -ScaffoldingReadMe.txt - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj +# Build and output +build/ +bin/ +obj/ *.log -*.tlog -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Coverlet is a free, cross platform Code Coverage Tool -coverage*.json -coverage*.xml -coverage*.info - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ +# IDE +.vs/ +.vscode/ +.idea/ +*.user +*.suo +*.sln.DotSettings.user -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload +# Publishing +PublishProfiles/ -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ +# OS +.DS_Store +Thumbs.db +desktop.ini -# Others -ClientBin/ -~$* +# Temporary *~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio 6 auto-generated project file (contains which files were open etc.) -*.vbp - -# Visual Studio 6 workspace and project file (working project files containing files to include in project) -*.dsw -*.dsp - -# Visual Studio 6 technical files -*.ncb -*.aps - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# Visual Studio History (VSHistory) files -.vshistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ - -# Fody - auto-generated XML schema -FodyWeavers.xsd - -# VS Code files for those working on multiple tools -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -*.code-workspace - -# Local History for Visual Studio Code -.history/ - -# Windows Installer files from build outputs -*.cab -*.msi -*.msix -*.msm -*.msp - -# JetBrains Rider -*.sln.iml - -# Sandcastle build files -/Help - -# Cake -/tools \ No newline at end of file +*.tmp +*.swp +*.swo \ No newline at end of file diff --git a/Makefile b/Makefile deleted file mode 100644 index ea694c61e..000000000 --- a/Makefile +++ /dev/null @@ -1,40 +0,0 @@ - - - -TARGET=bin/libSampSharp.so - -CC=gcc -CXX=g++ - -SRCDIR=src/SampSharp -BINDIR=bin -OBJDIR=bin/obj -FLAGS= -O2 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -I$(SRCDIR)/includes -I$(SRCDIR)/includes/sdk -I$(SRCDIR)/includes/sdk/amx -DNDEBUG -DLINUX -D_GNU_SOURCE -DSAMPGDK_AMALGAMATION -CFLAGS= -m32 -CXXFLAGS=-std=c++17 -m32 -LDFLAGS=-shared - -SOURCES_CXX = $(shell echo $(SRCDIR)/*.cpp) $(SRCDIR)/includes/sdk/amxplugin.cpp -SOURCES_C = $(SRCDIR)/includes/sampgdk/sampgdk.c -OBJECTS=$(SOURCES_CXX:$(SRCDIR)/%.cpp=$(OBJDIR)/%.o) $(SOURCES_C:$(SRCDIR)/%.c=$(OBJDIR)/%.o) - -all: $(TARGET) - -.PHONY: clean - -clean: - rm -rf $(BINDIR) - -$(OBJDIR)/%.o: $(SRCDIR)/%.cpp - @mkdir -p $(@D) - @echo $(CXX) $< - @$(CXX) $(FLAGS) $(CFLAGS) $(CXXFLAGS) -c -o "$@" "$<" - -$(OBJDIR)/%.o: $(SRCDIR)/%.c - @mkdir -p $(@D) - @echo $(CC) $< - @$(CC) $(FLAGS) $(CFLAGS) -c -o "$@" "$<" - -$(TARGET): $(OBJECTS) - @mkdir -p $(@D) - $(CXX) $(CXXFLAGS) $(OBJECTS) -o $@ $(LDFLAGS) diff --git a/README.md b/README.md index c64016d8d..9df6021d1 100644 --- a/README.md +++ b/README.md @@ -13,19 +13,50 @@ SampSharp is a plugin and library that allows you to write San Andreas: Multipla Documentation ---------- -The SampSharp .NET packages provided are available on NuGet.org and contains all API documentation. Additional documentation is available on https://sampsharp.net/ and https://api.sampsharp.net/ +The SampSharp .NET packages provided are available on [NuGet.org](https://www.nuget.org/packages/SampSharp.Core/) and contain all API documentation. + +For general documentation and guides, see [https://sampsharp.net](https://sampsharp.net) Examples -------- -Some example gamemodes are available here: -- [GrandLarc (GM)](https://github.com/SampSharp/sample-gm-grandlarc) - SA-MP default gamemode "grandlarc" ported to C# using SampSharp.GameMode -- [GrandLarc (ECS)](https://github.com/SampSharp/sample-ecs-grandlarc) - SA-MP default gamemode "grandlarc" ported to C# using SampSharp.Entities -- [RiverShell (GM)](https://github.com/SampSharp/sample-gm-rivershell) - SA-MP default gamemode "rivershell" ported to C# using SampSharp.GameMode - -Building SampSharp ------------------- -In order to build the .NET libraries you can simply open and build `SampSharp.sln` using Visual Studio 2022, or you can build it from the command line using dotnet (version 6 or newer) `dotnet publish SampSharp.sln --configuration Release`. - -To build the plugin on Windows, build `SampSharp.Plugin.sln` with Visual Studio 2022. You'll need to have the "Desktop development with C++" workload installed using Visal Studio Installer. - -To build the plugin on Linux you'll at least need to have the packages `make gcc g++ gcc-multilib g++-multilib` installed. Run `make` to build the plugin. +Example gamemodes and sample projects are available at [https://github.com/sampsharp/samples](https://github.com/sampsharp/samples) + +Building for Developers +----------------------- + +### Building SampSharp (New) + +> TODO: New SampSharp code structure not yet in place. Check back soon. + +### Building Legacy SampSharp + +The legacy SampSharp code (v1) is located in the `src/legacy/` directory. Use the build scripts in the root to build components: + +**On Windows:** +``` +.\build.cmd legacy-plugin # Build x86 plugin +.\build.cmd legacy-plugin publish # Build and publish plugin +.\build.cmd legacy-libraries # Build C# libraries +.\build.cmd legacy-libraries publish # Build and pack NuGet packages +.\build.cmd clean # Clean build directory +``` + +**On Linux:** +``` +./build.sh legacy-plugin # Build x86 plugin +./build.sh legacy-plugin publish # Build and publish plugin +./build.sh legacy-libraries # Build C# libraries +./build.sh legacy-libraries publish # Build and pack NuGet packages +./build.sh clean # Clean build directory +``` + +Artifacts are placed in `build/artifacts/` and `build/bin/`: +- Plugin binaries: `build/artifacts/sampsharp-legacy/` +- NuGet packages: `build/artifacts/packages/` +- C# libraries: `build/bin/SampSharp.*/Release/net6.0/` + +**Requirements:** +- **.NET SDK 6.0** (for building C# libraries) +- **CMake 3.19+** (for building the x86 plugin) +- **Visual Studio 2026 with C++ workload** (Windows) +- **gcc/g++ with 32-bit support** (Linux: `gcc-multilib g++-multilib`) diff --git a/build.cmd b/build.cmd new file mode 100644 index 000000000..b67e2fc4a --- /dev/null +++ b/build.cmd @@ -0,0 +1,95 @@ +@echo off +setlocal enabledelayedexpansion + +set "TARGET=%1" +set "ACTION=%2" + +set "SCRIPTDIR=%~dp0" + +if "%TARGET%"=="" goto usage + +if /i "%TARGET%"=="legacy-plugin" ( + if "%ACTION%"=="" ( + echo Building legacy plugin x86... + call "%SCRIPTDIR%src\legacy\SampSharp\build.cmd" + goto end + ) else if /i "%ACTION%"=="publish" ( + echo Building and publishing legacy plugin x86... + call "%SCRIPTDIR%src\legacy\SampSharp\build.cmd" + if errorlevel 1 exit /b 1 + call "%SCRIPTDIR%src\legacy\SampSharp\publish.cmd" + goto end + ) else ( + goto usage + ) +) + +if /i "%TARGET%"=="legacy-libraries" ( + if "%ACTION%"=="" ( + echo Building legacy C# libraries... + call :build_legacy_libraries + goto end + ) else if /i "%ACTION%"=="publish" ( + echo Building and packing legacy C# libraries... + call :pack_legacy_libraries + goto end + ) else ( + goto usage + ) +) + +if /i "%TARGET%"=="component" ( + echo Component x64 plugin build not yet implemented. + goto end +) + +if /i "%TARGET%"=="component-libraries" ( + echo Component C# libraries not yet implemented. + goto end +) + +if /i "%TARGET%"=="clean" ( + echo Cleaning build directory... + if exist "%SCRIPTDIR%build" ( + rmdir /s /q "%SCRIPTDIR%build" + mkdir "%SCRIPTDIR%build" + ) + echo Build directory cleaned. + goto end +) + +goto usage + +:usage +echo Invalid target: %TARGET% +echo. +echo Usage: +echo build.cmd legacy-plugin - Build legacy x86 plugin +echo build.cmd legacy-plugin publish - Build and publish legacy x86 plugin +echo build.cmd legacy-libraries - Build legacy C# libraries +echo build.cmd legacy-libraries publish - Build and pack legacy C# libraries +echo build.cmd component - Build component x64 plugin (not implemented) +echo build.cmd component-libraries - Build component C# libraries (not implemented) +echo build.cmd clean - Delete build directory contents +exit /b 1 + +:build_legacy_libraries +cd /d "%SCRIPTDIR%src\legacy" +echo. +echo Building C# libraries... +dotnet build SampSharp.sln -c Release +if errorlevel 1 exit /b 1 +exit /b 0 + +:pack_legacy_libraries +cd /d "%SCRIPTDIR%src\legacy" +echo. +echo Packing C# libraries... +dotnet pack SampSharp.sln -c Release +if errorlevel 1 exit /b 1 +echo. +echo NuGet packages created in: %SCRIPTDIR%build\artifacts\packages +exit /b 0 + +:end +echo Build complete. diff --git a/build.sh b/build.sh new file mode 100644 index 000000000..bc13edca2 --- /dev/null +++ b/build.sh @@ -0,0 +1,93 @@ +#!/bin/bash +# Root build dispatcher for SampSharp plugins +# Usage: build.sh [action] +# Targets: legacy-plugin, legacy-libraries, component, component-libraries +# Actions: (empty), publish + +set -e + +TARGET="${1}" +ACTION="${2}" +SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +if [ -z "$TARGET" ]; then + show_usage + exit 1 +fi + +case "$TARGET" in + legacy-plugin) + if [ -z "$ACTION" ]; then + echo "Building legacy plugin (x86)..." + "$SCRIPTDIR/src/legacy/SampSharp/build.sh" + elif [ "$ACTION" = "publish" ]; then + echo "Building and publishing legacy plugin (x86)..." + "$SCRIPTDIR/src/legacy/SampSharp/build.sh" + "$SCRIPTDIR/src/legacy/SampSharp/publish.sh" + else + show_usage + exit 1 + fi + ;; + legacy-libraries) + if [ -z "$ACTION" ]; then + build_legacy_libraries + elif [ "$ACTION" = "publish" ]; then + pack_legacy_libraries + else + show_usage + exit 1 + fi + ;; + component) + echo "Component x64 plugin build not yet implemented." + ;; + component-libraries) + echo "Component C# libraries not yet implemented." + ;; + clean) + echo "Cleaning build directory..." + rm -rf "$SCRIPTDIR/build" + mkdir -p "$SCRIPTDIR/build" + echo "Build directory cleaned." + ;; + *) + echo "Invalid target: $TARGET" + show_usage + exit 1 + ;; +esac + +echo "Build complete." +exit 0 + +show_usage() { + echo "" + echo "Usage:" + echo " build.sh legacy-plugin - Build legacy x86 plugin" + echo " build.sh legacy-plugin publish - Build and publish legacy x86 plugin" + echo " build.sh legacy-libraries - Build legacy C# libraries" + echo " build.sh legacy-libraries publish - Build and pack legacy C# libraries" + echo " build.sh component - Build component x64 plugin (not implemented)" + echo " build.sh component-libraries - Build component C# libraries (not implemented)" + echo " build.sh clean - Delete build directory contents" +} + +build_legacy_libraries() { + cd "$SCRIPTDIR/src/legacy" + + echo "" + echo "Building C# libraries..." + dotnet build SampSharp.sln -c Release +} + +pack_legacy_libraries() { + cd "$SCRIPTDIR/src/legacy" + + echo "" + echo "Packing C# libraries..." + dotnet pack SampSharp.sln -c Release + + echo "" + echo "NuGet packages created in: $SCRIPTDIR/build/artifacts/packages" +} diff --git a/src/legacy/Directory.Build.props b/src/legacy/Directory.Build.props index 98c3c5d6f..888240cdf 100644 --- a/src/legacy/Directory.Build.props +++ b/src/legacy/Directory.Build.props @@ -49,7 +49,7 @@ - + diff --git a/src/legacy/SampSharp/CMakeLists.txt b/src/legacy/SampSharp/CMakeLists.txt new file mode 100644 index 000000000..24768f7dd --- /dev/null +++ b/src/legacy/SampSharp/CMakeLists.txt @@ -0,0 +1,82 @@ +cmake_minimum_required(VERSION 3.19) +project(SampSharp LANGUAGES CXX C VERSION 1.0.0) + +set(CMAKE_CXX_STANDARD 17) + +# Compute root directory (3 levels up: src/legacy/SampSharp -> .) +get_filename_component(ROOTDIR "${CMAKE_SOURCE_DIR}/../../.." ABSOLUTE) + +# Legacy plugin outputs to build/bin/SampSharp/Release +set(OUTDIR "${ROOTDIR}/build/bin/SampSharp/Release") + +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${OUTDIR}") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${OUTDIR}") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${OUTDIR}") + +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${OUTDIR}") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${OUTDIR}") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${OUTDIR}") + +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${OUTDIR}") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${OUTDIR}") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${OUTDIR}") + +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO "${OUTDIR}") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${OUTDIR}") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${OUTDIR}") + +if(MSVC) + set(CXX_STANDARD "/std:c++latest") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_STANDARD} /Zc:preprocessor") +endif() + +# Collect all source files +file(GLOB_RECURSE plugin_source_list CONFIGURE_DEPENDS + "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/*.c" + "${CMAKE_CURRENT_SOURCE_DIR}/includes/sampgdk/sampgdk.c" +) + +# Create the DLL/SO +if(WIN32) + add_library(SampSharp SHARED ${plugin_source_list}) + set_target_properties(SampSharp PROPERTIES + SUFFIX ".dll" + PREFIX "" + ) +else() + add_library(SampSharp SHARED ${plugin_source_list}) + set_target_properties(SampSharp PROPERTIES + SUFFIX ".so" + PREFIX "lib" + ) +endif() + +# Include directories +target_include_directories(SampSharp PRIVATE + "${CMAKE_CURRENT_SOURCE_DIR}/includes" + "${CMAKE_CURRENT_SOURCE_DIR}/includes/sdk" + "${CMAKE_CURRENT_SOURCE_DIR}/includes/sdk/amx" +) + +# Compiler definitions +target_compile_definitions(SampSharp PRIVATE + SAMPGDK_AMALGAMATION + SAMPGDK_CPP_WRAPPERS + _CRT_SECURE_NO_WARNINGS +) + +if(UNIX AND NOT APPLE) + target_compile_definitions(SampSharp PRIVATE LINUX _GNU_SOURCE) + target_compile_options(SampSharp PRIVATE -m32 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden) + target_link_options(SampSharp PRIVATE -m32) +endif() + +if(MSVC) + set_property(TARGET SampSharp PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") +endif() + +# Platform-specific linking +if(WIN32) + target_link_libraries(SampSharp PRIVATE Shlwapi) +endif() diff --git a/src/legacy/SampSharp/build.cmd b/src/legacy/SampSharp/build.cmd new file mode 100644 index 000000000..63ccc9fbc --- /dev/null +++ b/src/legacy/SampSharp/build.cmd @@ -0,0 +1,30 @@ +@echo off +REM Build script for legacy SampSharp x86 plugin on Windows + +pushd "%~dp0" + +REM Navigate to root (3 levels up) +cd /d "..\..\.." +set "ROOTDIR=%CD%" +set "SRCDIR=%ROOTDIR%\src\legacy\SampSharp" +set "BUILDDIR=%ROOTDIR%\build\cmake\legacy" + +popd + +echo Building legacy SampSharp plugin (x86)... +echo Root: %ROOTDIR% +echo Build: %BUILDDIR% +echo. + +if not exist "%BUILDDIR%" mkdir "%BUILDDIR%" + +REM Configure with x86 (Win32) architecture +cmake -S "%SRCDIR%" -B "%BUILDDIR%" -A Win32 -T ClangCL +if errorlevel 1 exit /b 1 + +REM Build +cmake --build "%BUILDDIR%" --config RelWithDebInfo +if errorlevel 1 exit /b 1 + +echo. +echo Legacy plugin build complete. Output: %ROOTDIR%\build\bin\SampSharp\Release diff --git a/src/legacy/SampSharp/build.sh b/src/legacy/SampSharp/build.sh new file mode 100644 index 000000000..924512a48 --- /dev/null +++ b/src/legacy/SampSharp/build.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# Build script for legacy SampSharp x86 plugin on Linux + +set -e + +SRCDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +ROOTDIR="$(cd "$SRCDIR/../../.." && pwd)" +BUILDDIR="$ROOTDIR/build/cmake/legacy" + +echo "Building legacy SampSharp plugin (x86)..." + +mkdir -p "$BUILDDIR" + +# Configure +cmake -S "$SRCDIR" -B "$BUILDDIR" + +# Build +cmake --build "$BUILDDIR" --config RelWithDebInfo + +echo "Legacy plugin build complete. Output: $ROOTDIR/build/bin/SampSharp/Release" diff --git a/src/legacy/SampSharp/publish.cmd b/src/legacy/SampSharp/publish.cmd new file mode 100644 index 000000000..7831044d9 --- /dev/null +++ b/src/legacy/SampSharp/publish.cmd @@ -0,0 +1,34 @@ +@echo off +REM Publish script for legacy SampSharp plugin - copies release DLL to artifacts + +setlocal enabledelayedexpansion + +pushd "%~dp0" + +cd /d "..\..\.." +set "ROOTDIR=%CD%" +set "DLLSOURCE=%ROOTDIR%\build\bin\SampSharp\Release" +set "ARTIFACTDIR=%ROOTDIR%\build\artifacts\sampsharp-legacy" + +popd + +echo Publishing legacy SampSharp plugin... +echo Source: %DLLSOURCE% +echo Destination: %ARTIFACTDIR% +echo. + +if not exist "%DLLSOURCE%\SampSharp.dll" ( + echo Error: SampSharp.dll not found at %DLLSOURCE% + echo Please run build first: build.cmd legacy + exit /b 1 +) + +if not exist "%ARTIFACTDIR%" mkdir "%ARTIFACTDIR%" + +echo Copying files... +copy "%DLLSOURCE%\SampSharp.dll" "%ARTIFACTDIR%" /y +copy "%DLLSOURCE%\SampSharp.pdb" "%ARTIFACTDIR%" /y 2>nul +copy "%DLLSOURCE%\SampSharp.lib" "%ARTIFACTDIR%" /y 2>nul + +echo. +echo Artifacts published to: %ARTIFACTDIR% diff --git a/src/legacy/SampSharp/publish.sh b/src/legacy/SampSharp/publish.sh new file mode 100644 index 000000000..24fbd65c0 --- /dev/null +++ b/src/legacy/SampSharp/publish.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# Publish script for legacy SampSharp plugin - copies release DLL/SO to artifacts + +set -e + +SRCDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +ROOTDIR="$(cd "$SRCDIR/../../.." && pwd)" +DLLSOURCE="$ROOTDIR/build/bin/SampSharp/Release" +ARTIFACTDIR="$ROOTDIR/build/artifacts/sampsharp-legacy" + +echo "Publishing legacy SampSharp plugin..." +echo "Source: $DLLSOURCE" +echo "Destination: $ARTIFACTDIR" +echo "" + +# Check for the built library (either .so or .dll on Windows/WSL) +if [ ! -f "$DLLSOURCE/libSampSharp.so" ] && [ ! -f "$DLLSOURCE/SampSharp.dll" ]; then + echo "Error: libSampSharp.so or SampSharp.dll not found at $DLLSOURCE" + echo "Please run build first: build.sh legacy" + exit 1 +fi + +mkdir -p "$ARTIFACTDIR" + +echo "Copying files..." +if [ -f "$DLLSOURCE/libSampSharp.so" ]; then + cp "$DLLSOURCE/libSampSharp.so" "$ARTIFACTDIR/" || true +fi +if [ -f "$DLLSOURCE/SampSharp.dll" ]; then + cp "$DLLSOURCE/SampSharp.dll" "$ARTIFACTDIR/" || true + cp "$DLLSOURCE/SampSharp.pdb" "$ARTIFACTDIR/" 2>/dev/null || true + cp "$DLLSOURCE/SampSharp.lib" "$ARTIFACTDIR/" 2>/dev/null || true +fi + +echo "" +echo "Artifacts published to: $ARTIFACTDIR" From 9c975260183170aa9fc9249c7c4282ef9024c7d3 Mon Sep 17 00:00:00 2001 From: Tim Potze Date: Thu, 30 Apr 2026 00:13:15 +0200 Subject: [PATCH 03/15] update pipelines --- .github/workflows/component-linux.yml | 22 +++ .github/workflows/component-win.yml | 22 +++ .github/workflows/dotnet-legacy.yml | 38 ++++ .github/workflows/dotnet.yml | 42 ++-- .github/workflows/plugin-legacy-linux.yml | 39 ++++ .github/workflows/plugin-legacy-win32.yml | 37 ++++ .github/workflows/plugin-linux.yml | 43 ----- .github/workflows/plugin-win32.yml | 38 ---- .github/workflows/release-legacy.yml | 109 +++++++++++ .github/workflows/release.yml | 35 +--- CHANGELOG.md | 223 ++++++++++++++++++++++ 11 files changed, 508 insertions(+), 140 deletions(-) create mode 100644 .github/workflows/component-linux.yml create mode 100644 .github/workflows/component-win.yml create mode 100644 .github/workflows/dotnet-legacy.yml create mode 100644 .github/workflows/plugin-legacy-linux.yml create mode 100644 .github/workflows/plugin-legacy-win32.yml delete mode 100644 .github/workflows/plugin-linux.yml delete mode 100644 .github/workflows/plugin-win32.yml create mode 100644 .github/workflows/release-legacy.yml create mode 100644 CHANGELOG.md diff --git a/.github/workflows/component-linux.yml b/.github/workflows/component-linux.yml new file mode 100644 index 000000000..0a6155c35 --- /dev/null +++ b/.github/workflows/component-linux.yml @@ -0,0 +1,22 @@ +name: CI - Component x64 Linux (Coming Soon) + +# TODO: Update this workflow when component (x64) code is in src/sampsharp-component/ +# For now, this is a placeholder. + +on: + push: + branches: [ develop ] + paths: + - .github/workflows/component-linux.yml + - src/sampsharp-component/** + + pull_request: + branches: [ develop ] + paths: + - src/sampsharp-component/** + +jobs: + placeholder: + runs-on: ubuntu-latest + steps: + - run: echo "New component (x64) build on Linux - not yet implemented" diff --git a/.github/workflows/component-win.yml b/.github/workflows/component-win.yml new file mode 100644 index 000000000..59835780d --- /dev/null +++ b/.github/workflows/component-win.yml @@ -0,0 +1,22 @@ +name: CI - Component x64 (Coming Soon) + +# TODO: Update this workflow when component (x64) code is in src/sampsharp-component/ +# For now, this is a placeholder. + +on: + push: + branches: [ develop ] + paths: + - .github/workflows/component-win.yml + - src/sampsharp-component/** + + pull_request: + branches: [ develop ] + paths: + - src/sampsharp-component/** + +jobs: + placeholder: + runs-on: windows-latest + steps: + - run: echo "New component (x64) build on Windows - not yet implemented" diff --git a/.github/workflows/dotnet-legacy.yml b/.github/workflows/dotnet-legacy.yml new file mode 100644 index 000000000..ffbe7d041 --- /dev/null +++ b/.github/workflows/dotnet-legacy.yml @@ -0,0 +1,38 @@ +name: CI - Legacy Libraries + +on: + push: + branches: [ master ] + paths: + - .github/workflows/dotnet-legacy.yml + - src/legacy/** + - '!src/legacy/SampSharp/**' + - build.cmd + - build.sh + + pull_request: + branches: [ master ] + paths: + - .github/workflows/dotnet-legacy.yml + - src/legacy/** + - '!src/legacy/SampSharp/**' + - build.cmd + - build.sh + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '6.0.x' + + - name: Build legacy libraries + run: ./build.sh legacy-libraries + + - name: Test + run: cd src/legacy && dotnet test SampSharp.sln --no-build --verbosity normal diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index fcadce234..8704a1664 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -1,42 +1,22 @@ -name: dotnet +name: CI - New SampSharp (Coming Soon) + +# TODO: Update this workflow when new SampSharp code is in src/sampsharp/ +# For now, this is a placeholder. on: push: - branches: [ master ] + branches: [ develop ] paths: - .github/workflows/dotnet.yml - - src/** - - '!src/SampSharp/**' - - SampSharp.sln - - Makefile - + - src/sampsharp/** + pull_request: - branches: [ master ] + branches: [ develop ] paths: - - .github/workflows/dotnet.yml - - src/** - - '!src/SampSharp/**' - - SampSharp.sln - - Makefile + - src/sampsharp/** jobs: - build: - + placeholder: runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Setup .NET - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 6.0.x - - - name: Restore dependencies - run: dotnet restore SampSharp.sln - - - name: Build - run: dotnet build SampSharp.sln --no-restore - - - name: Test - run: dotnet test SampSharp.sln --no-build --verbosity normal \ No newline at end of file + - run: echo "New SampSharp build workflow - not yet implemented" \ No newline at end of file diff --git a/.github/workflows/plugin-legacy-linux.yml b/.github/workflows/plugin-legacy-linux.yml new file mode 100644 index 000000000..ddb104422 --- /dev/null +++ b/.github/workflows/plugin-legacy-linux.yml @@ -0,0 +1,39 @@ +name: CI - Plugin Legacy (Linux) + +on: + push: + branches: [ master ] + paths: + - .github/workflows/plugin-legacy-linux.yml + - src/legacy/SampSharp/** + - build.sh + tags: + - '0.*' + + pull_request: + branches: [ master ] + paths: + - .github/workflows/plugin-legacy-linux.yml + - src/legacy/SampSharp/** + - build.sh + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install dependencies + run: | + sudo apt-get update -y + sudo apt-get install -y gcc g++ cmake gcc-multilib g++-multilib + + - name: Build legacy plugin + run: ./build.sh legacy-plugin + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: sampsharp-legacy-plugin-linux + path: build/artifacts/sampsharp-legacy/ diff --git a/.github/workflows/plugin-legacy-win32.yml b/.github/workflows/plugin-legacy-win32.yml new file mode 100644 index 000000000..0aa14144c --- /dev/null +++ b/.github/workflows/plugin-legacy-win32.yml @@ -0,0 +1,37 @@ +name: CI - Plugin Legacy (Windows) + +on: + push: + branches: [ master ] + paths: + - .github/workflows/plugin-legacy-win32.yml + - src/legacy/SampSharp/** + - build.cmd + tags: + - '0.*' + + pull_request: + branches: [ master ] + paths: + - .github/workflows/plugin-legacy-win32.yml + - src/legacy/SampSharp/** + - build.cmd + +jobs: + build: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v4 + + - name: Setup CMake + uses: lukka/get-cmake@latest + + - name: Build legacy plugin + run: .\build.cmd legacy-plugin + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: sampsharp-legacy-plugin-windows + path: build/artifacts/sampsharp-legacy/ diff --git a/.github/workflows/plugin-linux.yml b/.github/workflows/plugin-linux.yml deleted file mode 100644 index e5fe5c0d5..000000000 --- a/.github/workflows/plugin-linux.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: Plugin (Linux) - -on: - push: - branches: [ master ] - paths: - - .github/workflows/plugin-linux.yml - - src/SampSharp/** - - Makefile - - tags: - - "*" - - pull_request: - branches: [ master ] - paths: - - .github/workflows/plugin-linux.yml - - src/SampSharp/** - - Makefile - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - - name: Install deps - run: | - sudo apt-get update -y -qq - sudo apt-get upgrade -y -qq gcc g++ - sudo apt-get install -y -qq gcc-multilib g++-multilib - gcc --version - g++ --version - - - name: Build plugin - run: make - - - name: Upload artifacts - uses: actions/upload-artifact@v4.6.1 - with: - name: plugin-bin - path: bin/ diff --git a/.github/workflows/plugin-win32.yml b/.github/workflows/plugin-win32.yml deleted file mode 100644 index 08c8a1d2a..000000000 --- a/.github/workflows/plugin-win32.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Plugin (win32) - -on: - push: - branches: [ master ] - paths: - - .github/workflows/plugin-win32.yml - - src/SampSharp/** - - SampSharp.sln - - tags: - - "*" - - pull_request: - branches: [ master ] - paths: - - .github/workflows/plugin-win32.yml - - src/SampSharp/** - - SampSharp.Plugin.sln - -jobs: - build: - runs-on: windows-latest - - steps: - - uses: actions/checkout@v2 - - - name: Setup MSBuild.exe - uses: microsoft/setup-msbuild@v1.0.2 - - - name: Build plugin - run: msbuild.exe SampSharp.Plugin.sln -p:Configuration="Release" - - - name: Upload artifacts - uses: actions/upload-artifact@v4.6.1 - with: - name: plugin-bin - path: bin/ diff --git a/.github/workflows/release-legacy.yml b/.github/workflows/release-legacy.yml new file mode 100644 index 000000000..a9e3611f0 --- /dev/null +++ b/.github/workflows/release-legacy.yml @@ -0,0 +1,109 @@ +name: Release - Legacy SampSharp + +on: + push: + tags: + - '0.*' + +jobs: + build-windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup CMake + uses: lukka/get-cmake@latest + + - name: Build legacy plugin + run: .\build.cmd legacy-plugin + + - name: Upload Windows plugin + uses: actions/upload-artifact@v4 + with: + name: plugin-windows + path: build/artifacts/sampsharp-legacy/ + + build-linux: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install dependencies + run: | + sudo apt-get update -y + sudo apt-get install -y gcc g++ cmake gcc-multilib g++-multilib + + - name: Build legacy plugin + run: ./build.sh legacy-plugin + + - name: Upload Linux plugin + uses: actions/upload-artifact@v4 + with: + name: plugin-linux + path: build/artifacts/sampsharp-legacy/ + + release: + needs: [build-windows, build-linux] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set VERSION + run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '6.0.x' + + - name: Download Windows plugin + uses: actions/download-artifact@v4 + with: + name: plugin-windows + path: ./plugin-windows + + - name: Download Linux plugin + uses: actions/download-artifact@v4 + with: + name: plugin-linux + path: ./plugin-linux + + - name: Create release package + run: | + mkdir -p SampSharp-${{ env.VERSION }}/plugins + cp plugin-windows/SampSharp.dll SampSharp-${{ env.VERSION }}/plugins/ + cp plugin-linux/SampSharp.so SampSharp-${{ env.VERSION }}/plugins/libSampSharp.so + zip -r SampSharp-${{ env.VERSION }}.zip SampSharp-${{ env.VERSION }}/ + + - name: Create Release + uses: actions/create-release@v1 + id: create_release + with: + tag_name: ${{ github.ref }} + release_name: Legacy SampSharp ${{ env.VERSION }} + draft: true + prerelease: ${{ contains(env.VERSION, 'alpha') || contains(env.VERSION, 'beta') }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload plugin package + uses: actions/upload-release-asset@v1 + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: SampSharp-${{ env.VERSION }}.zip + asset_name: SampSharp-${{ env.VERSION }}.zip + asset_content_type: application/zip + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Pack NuGet packages + run: ./build.sh legacy-libraries publish + + - name: Publish to NuGet + run: | + for nupkg in build/artifacts/packages/*.nupkg; do + dotnet nuget push "$nupkg" \ + --source https://api.nuget.org/v3/index.json \ + --api-key ${{ secrets.NUGET_API_KEY }} \ + --skip-duplicate + done diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3f90736b4..69e4abe02 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,36 +1,15 @@ -name: release +name: Release - New SampSharp (Coming Soon) + +# TODO: Update this workflow when new SampSharp code is ready for release +# For now, this is a placeholder. on: push: tags: - - "*" + - '1.*' jobs: - build: + placeholder: runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Set VERSION variable from tag - run: echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - - - name: Setup .NET - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 6.0.x - - - name: Restore dependencies - run: dotnet restore SampSharp.sln - - - name: Test - run: dotnet test SampSharp.sln /p:CiVersion=${VERSION} --no-restore - - - name: Build - run: dotnet build SampSharp.sln /p:CiVersion=${VERSION} --configuration Release --no-restore - - - name: Pack - run: dotnet pack SampSharp.sln --configuration Release --no-build --output bin - - - name: Push - run: dotnet nuget push bin/*.nupkg --source="https://api.nuget.org/v3/index.json" --api-key ${{secrets.NUGET_API_KEY}} --skip-duplicate \ No newline at end of file + - run: echo "New SampSharp release workflow - not yet implemented" \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..4e99c6276 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,223 @@ +# SampSharp Changelog + +All notable changes to this project will be documented in this file. + +## [0.11.1] - 2026-04-15 + +### SampSharp.Core +- Fixed an error which occurs when a callback has an empty string as argument (#450) + +### SampSharp.GameMode +- (No changes) + +### SampSharp.Entities +- (No changes) + +### Plugin +- (No changes) + +--- + +## [0.11.0] - 2026-03-20 + +### SampSharp.Core +- Added `TaskHelper.SwitchToMainThread` (#402) +- Improved performance of callbacks by 25%-30% (#399, #401) +- Minor improvement of natives performance +- Fixed encoding of strings in callback arguments ignoring game mode builder configuration +- Removed multi-process mode + +### SampSharp.GameMode +- Added `VehicleModelInfo.VehicleModelInfo` +- Fixed missing Flatbed in `VehicleModelInfo` (#407) + +### SampSharp.Entities +- Added `AddComponent` method that takes an instance as parameter (#427) +- Fixed issues related to open dialogs when a player disconnects (#434) +- Fixed an issue where player entity may stay alive when an exception is thrown in `OnPlayerDisconnect` event +- Fixed an issue where an error may occur when `OnDialogResponse` is called without an active dialog (#443) + +### Plugin +- Added interop API (#399, #401) +- Added non-standard implementation of reading open.mp config.json +- Removed callback registration (#399, #401) +- Removed multi-process mode + +--- + +## [0.10.1] - 2026-01-05 + +### SampSharp.Core +- Fixed a possible crash when calling natives which return a string + +### SampSharp.GameMode +- (No changes) + +### SampSharp.Entities +- (No changes) + +### Plugin +- (No changes) + +--- + +## [0.10.0] - 2025-12-20 + +### SampSharp.Core +- Added support for "fastnative" calls, improves native call performance by 95% (#365) +- Added support for varargs in "fastnative" calls (#260) +- Added `IGameModeClient.NativeObjectProxyFactory` +- Added option `NativeMethodAttribute.ReferenceIndices` which provides the option to invoke a native with input parameters which should be passed by reference +- Added embedded codepages into the library which are available through `GameModeBuilder.UseEncodingCodePage(string pageName)` +- Updated to .NET Standard 2.1 +- Removed setter from `IGameModeClient.NativeLoader` +- Fixed HostedGameModeClient.ServerPath not returning correct path +- Deprecated multi-process mode and native-handle related types and methods + +### SampSharp.GameMode +- Added `BasePlayer.CancelEdit` (#362) +- Added `BasePlayer.SetMapIcon` and `BasePlayer.RemoveMapIcon` (#364) +- Added `ListDialog` (#383, #395) +- Updated to .NET Standard 2.1 +- Updated documentation links from SA-MP wiki to open.mp docs +- Fixed `PlayerTextLabel.Text`, `PlayerTextLabel.AttachedPlayer` and `PlayerTextLabel.AttachedVehicle` not being set +- Fixed command group help commands not being invoked in some cases (#361) +- Fixed command overloading not working in some cases (#344) +- Fixed `BasePlayer.IsNPC` not returning `true` when the NPC has not yet connected (#346) +- Fixed typo in `Server.GetWeaponName` result for `Weapon.ThermalGoggles` (#380) +- Fixed a problem which caused successive calls to `ShowAsync` not to show the dialog (#384, #389) + +### SampSharp.Entities +- Added support for player names as command arguments (#354) +- Added timers (#326) +- Updated to .NET Standard 2.1 +- Updated documentation links from SA-MP wiki to open.mp docs +- Fixed `OnDestroyComponent` not being called when the component is destroyed, but the entities remains alive (#358) +- Fixed an error which could occur when event's occur with IDs of entities which don't exist, but aren't 0 (#355, #353, #352, #350) +- Fixed exception thrown when a dialog is shown with no `null` button2 text (#376) +- Fixed components not being removed from global component registry when destroying an entity + +### Plugin +- Added automatic coreclr and gamemode detection +- Added support for "fastnative" calls (#365) +- Added callback name to "Callback parameters count mismatch" error (#342) +- Added coreclr detection based on `SAMPSHARP_RUNTIME` environment variable +- Changed hosted mode to be the default, multi-process mode can be enabled with the `use_multi_process_mode=1` server setting +- Fixed a possible server crash when a callback is handled with an unexpected parameter count +- Fixed a possible server crash when calling the `CallRemoveFunction` native (#363) +- Codepage files are no longer provided in the plugin release package. Codepages are available as embedded resources in SampSharp.Core via the `GameModeBuilder.UseEncodingCodePage` method. The codepage files are available in [the codepages repository](https://github.com/SampSharp/codepages) if you still need these files for some reason + +--- + +## [0.9.3] - 2025-10-15 + +### SampSharp.Core +- No changes + +### SampSharp.GameMode +- No changes + +### SampSharp.Entities +- Fixed player- textdraws, labels and objects not working as intended + +### Plugin +- (No changes) + +--- + +## [0.9.2] - 2025-10-10 + +### SampSharp.Core +- No changes + +### SampSharp.GameMode +- No changes + +### SampSharp.Entities +- Fixed exception thrown when trying to destroy all components twice (#333) +- Fixed dialog response not being handled if the dialog was shown as a response to another dialog + +### Plugin +- (No changes) + +--- + +## [0.9.1] - 2025-10-05 + +### SampSharp.Core +- Fixed GMX startup behaviour not reconnecting to the SA-MP server properly + +### SampSharp.GameMode +- Removed unused `PlayerDisconnectReason` enum in favour of `DisconnectReason` enum (#330) + +### SampSharp.Entities +- Added code annotations +- Fixed server freezing when destroying an entity after destroying its components in a specific order +- Fixed command being called with component not in entity would cause the command not to be called but still succeed (#331) +- Removed unused `PlayerDisconnectReason` enum in favour of `DisconnectReason` enum (#330) + +### Plugin +- (No changes) + +--- + +## [0.9.0] - 2025-09-20 + +### SampSharp.Core +- Added `IGameModeClient.RegisterCallback` overloads which allows the arguments of the callback to be provided as an `object[]` to the specified method +- Added option to specify the index at which the identifier arguments are located within natives of native objects +- Added notice to multi-process run mode: "for development purposes only", use hosted mode for production environments +- Added callback name to the `IGameModeClient.UnhandledException` event +- Added unhandled exception handling in hosted mode +- Added unhandled exception handling in multi-process mode for ticks and synchronisations +- Added `IfHosted` and `IfMultiProcess` methods to `GameModeBuilder` +- Updated minimum .NET Standard version to 2.0 +- Improved shutdown behaviour of multi-process run mode +- Improved number of memory allocations during handling of callbacks and native calls in hosted run mode +- Changed hosted mode to not automatically redirect console output to the server_log.txt, use `GameModeBuilder.RedirectConsoleOutput()` to reenable logging to the server log +- Removed `GameModeBuilder.BuildWith` +- Fixed `GameModeBuilder.RedirectConsoleOutput` causing errors during startup in multi-process mode +- Fixed garbage strings being returned when no string is set to out string parameters (#323) + +### SampSharp.GameMode +- Added `Vector3.XY` which returns a `Vector2` with the x and y components (#299/#300) +- Added `Color.Brightness` property (#309) +- Added `Color.AddGrammaCorrection`, `Color.RemoveGammaCorrection`, `Color.Grayscale` methods (#309) +- Added `blendAlpha` option to `Color.Lerp`, `Color.Darken` and `Color.Lighten` (#305/#310) +- Added `Timer.Run` and `Timer.RunOnce` overloads with an `int` or `double` interval in milliseconds (#315) +- Added `BasePlayer.PickUpPickup` event (#319) +- Added `BasePlayer.CameraTargetPlayerObject` (#320) +- Added `BasePlayer.SurfingPlayerObject` (#324) +- Added `Server.GetServerTickRate` (#295) +- Added automatic detection for command and command group names (#273) +- Added command parameter attribute `NullableParam` to indicate a `BasePlayer` or `BaseVehicle` argument is allowed to be null, enum values can be marked as nullable by using nullable enums like `VehicleModelType?` (#268/#290) +- Added `Server.GetWeaponName` (#311) +- Added `CommandAttribute.IsGroupHelp`, if this value is true, the command will run if the command group is entered by the player without a specified command in the command group +- **breaking** Added `PlayerCancelClickTextDraw` event which is called when player presses ESC while selecting textdraws, `PlayerClickTextDraw` is no longer called when ESC is pressed (#304/#321) +- Updated `VehicleModelInfo` to include seat count and a missing entry for ID 611, Utility Trailer (#302) +- Updated minimum .NET Standard version to 2.0 +- **breaking** Changed `BasePlayer.CameraTargetObject` to `BasePlayer.CameraTargetGlobalObject` (#320) +- **breaking** Changed `BasePlayer.SurfingObject` to `BasePlayer.SurfingGlobalObject` (#324) +- **breaking** Changed `BaseMode.PlayerPickUp` event to have event arguments of type `PickUpPickupEventArgs` and changed the sender of event from the pickup to the player (#319) +- **breaking** Changed `Pickup.PickUp` event to have event arguments of type `PickUpPickupEventArgs` (#319) +- Fixed `Quaternion` coordinate system not matching SA-MP coordinate system +- Fixed `Edited` and `Selected` on `GlobalObject` and `PlayerObject` not being fired (#303/#306) +- Fixed `Color.FromInteger` with `ColorFormat.RGB` returning a value with 0 alpha +- Fixed conversion from `Color` to `Vector3` not returning decimal values +- Fixed enum numeric values not being recognized as a command argument if an enum value name contains the numeric value (#274) +- **breaking** Removed `ObjectModel` enum because it was too big and might not be complete + +### SampSharp.Entities +- Initial version + +### Plugin +- Updated sampgdk to 4.6.2 +- Changed maximum native arguments to 64 +- Fixed server in multi-process run mode freezing when calling native which calls a callback which calls a native +- Fixed intermission script getting stuck between runs + +--- + +## Older Versions + +Detailed history for 0.8.x and earlier versions can be found in the individual changelog files in the `changelogs/` directory. From ea81adcb16be25a83f53590d09346027bd00b624 Mon Sep 17 00:00:00 2001 From: Tim Potze Date: Thu, 30 Apr 2026 00:16:30 +0200 Subject: [PATCH 04/15] update pipeline branches --- .github/workflows/component-linux.yml | 8 ++++++-- .github/workflows/component-win.yml | 8 ++++++-- .github/workflows/dotnet-legacy.yml | 8 ++++++-- .github/workflows/dotnet.yml | 8 ++++++-- .github/workflows/plugin-legacy-linux.yml | 8 ++++++-- .github/workflows/plugin-legacy-win32.yml | 8 ++++++-- 6 files changed, 36 insertions(+), 12 deletions(-) diff --git a/.github/workflows/component-linux.yml b/.github/workflows/component-linux.yml index 0a6155c35..1e2aaa57b 100644 --- a/.github/workflows/component-linux.yml +++ b/.github/workflows/component-linux.yml @@ -5,13 +5,17 @@ name: CI - Component x64 Linux (Coming Soon) on: push: - branches: [ develop ] + branches: + - master + - release/1.* paths: - .github/workflows/component-linux.yml - src/sampsharp-component/** pull_request: - branches: [ develop ] + branches: + - master + - release/1.* paths: - src/sampsharp-component/** diff --git a/.github/workflows/component-win.yml b/.github/workflows/component-win.yml index 59835780d..8dac2609b 100644 --- a/.github/workflows/component-win.yml +++ b/.github/workflows/component-win.yml @@ -5,13 +5,17 @@ name: CI - Component x64 (Coming Soon) on: push: - branches: [ develop ] + branches: + - master + - release/1.* paths: - .github/workflows/component-win.yml - src/sampsharp-component/** pull_request: - branches: [ develop ] + branches: + - master + - release/1.* paths: - src/sampsharp-component/** diff --git a/.github/workflows/dotnet-legacy.yml b/.github/workflows/dotnet-legacy.yml index ffbe7d041..975feaa5e 100644 --- a/.github/workflows/dotnet-legacy.yml +++ b/.github/workflows/dotnet-legacy.yml @@ -2,7 +2,9 @@ name: CI - Legacy Libraries on: push: - branches: [ master ] + branches: + - master + - release/0.* paths: - .github/workflows/dotnet-legacy.yml - src/legacy/** @@ -11,7 +13,9 @@ on: - build.sh pull_request: - branches: [ master ] + branches: + - master + - release/0.* paths: - .github/workflows/dotnet-legacy.yml - src/legacy/** diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 8704a1664..33b88f9f5 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -5,13 +5,17 @@ name: CI - New SampSharp (Coming Soon) on: push: - branches: [ develop ] + branches: + - master + - release/1.* paths: - .github/workflows/dotnet.yml - src/sampsharp/** pull_request: - branches: [ develop ] + branches: + - master + - release/1.* paths: - src/sampsharp/** diff --git a/.github/workflows/plugin-legacy-linux.yml b/.github/workflows/plugin-legacy-linux.yml index ddb104422..83968e228 100644 --- a/.github/workflows/plugin-legacy-linux.yml +++ b/.github/workflows/plugin-legacy-linux.yml @@ -2,7 +2,9 @@ name: CI - Plugin Legacy (Linux) on: push: - branches: [ master ] + branches: + - master + - release/0.* paths: - .github/workflows/plugin-legacy-linux.yml - src/legacy/SampSharp/** @@ -11,7 +13,9 @@ on: - '0.*' pull_request: - branches: [ master ] + branches: + - master + - release/0.* paths: - .github/workflows/plugin-legacy-linux.yml - src/legacy/SampSharp/** diff --git a/.github/workflows/plugin-legacy-win32.yml b/.github/workflows/plugin-legacy-win32.yml index 0aa14144c..fbc71fc12 100644 --- a/.github/workflows/plugin-legacy-win32.yml +++ b/.github/workflows/plugin-legacy-win32.yml @@ -2,7 +2,9 @@ name: CI - Plugin Legacy (Windows) on: push: - branches: [ master ] + branches: + - master + - release/0.* paths: - .github/workflows/plugin-legacy-win32.yml - src/legacy/SampSharp/** @@ -11,7 +13,9 @@ on: - '0.*' pull_request: - branches: [ master ] + branches: + - master + - release/0.* paths: - .github/workflows/plugin-legacy-win32.yml - src/legacy/SampSharp/** From d33006372386dcf6df7c4eba422481e13355e957 Mon Sep 17 00:00:00 2001 From: Tim Potze Date: Thu, 30 Apr 2026 00:20:53 +0200 Subject: [PATCH 05/15] update readme --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9df6021d1..689b71493 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,11 @@ SampSharp [![Join us on Discord](https://discordapp.com/api/guilds/758751593725558794/widget.png?style=banner2)](https://discord.gg/gwcHpqp) -SampSharp is a plugin and library that allows you to write San Andreas: Multiplayer(SA-MP) gamemodes in C#. SampSharp's aim is to allow you to enjoy all features of object-oriented programming and .NET. SampSharp uses the .NET runtime which allows the plugin to run on both Windows and Linux server. For information about installing and building SampSharp, check the documentation. If you have any questions, feel free to join our Discord chat or file an issue. +SampSharp is a plugin and library that allows you to write gamemodes in C# for open.mp and SA-MP servers using the .NET runtime. SampSharp's aim is to provide all features of object-oriented programming and modern .NET development. + +SampSharp for open.mp (v1.x) is the actively developed version and is recommended for new projects. The original SampSharp (v0.x), created in 2014 for SA-MP, remains available with limited support for critical bug fixes and security patches. If you're currently running SA-MP, you can continue using the legacy version, but migration to open.mp is recommended to benefit from ongoing development and improvements. + +For information about installing and building SampSharp, check the documentation. If you have any questions, feel free to join our Discord chat or file an issue. Documentation ---------- From 1a0d30cad5cc1b377cfdf20dd89d6f81e9e4848f Mon Sep 17 00:00:00 2001 From: Tim Potze Date: Thu, 30 Apr 2026 00:22:38 +0200 Subject: [PATCH 06/15] added branch for testing workflows --- .github/workflows/component-linux.yml | 1 + .github/workflows/component-win.yml | 1 + .github/workflows/dotnet-legacy.yml | 1 + .github/workflows/dotnet.yml | 1 + .github/workflows/plugin-legacy-linux.yml | 1 + .github/workflows/plugin-legacy-win32.yml | 1 + 6 files changed, 6 insertions(+) diff --git a/.github/workflows/component-linux.yml b/.github/workflows/component-linux.yml index 1e2aaa57b..312f96a6d 100644 --- a/.github/workflows/component-linux.yml +++ b/.github/workflows/component-linux.yml @@ -7,6 +7,7 @@ on: push: branches: - master + - legacy-sampsharp-migration - release/1.* paths: - .github/workflows/component-linux.yml diff --git a/.github/workflows/component-win.yml b/.github/workflows/component-win.yml index 8dac2609b..112c706c8 100644 --- a/.github/workflows/component-win.yml +++ b/.github/workflows/component-win.yml @@ -7,6 +7,7 @@ on: push: branches: - master + - legacy-sampsharp-migration - release/1.* paths: - .github/workflows/component-win.yml diff --git a/.github/workflows/dotnet-legacy.yml b/.github/workflows/dotnet-legacy.yml index 975feaa5e..9c19b6513 100644 --- a/.github/workflows/dotnet-legacy.yml +++ b/.github/workflows/dotnet-legacy.yml @@ -4,6 +4,7 @@ on: push: branches: - master + - legacy-sampsharp-migration - release/0.* paths: - .github/workflows/dotnet-legacy.yml diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 33b88f9f5..03a0f3436 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -7,6 +7,7 @@ on: push: branches: - master + - legacy-sampsharp-migration - release/1.* paths: - .github/workflows/dotnet.yml diff --git a/.github/workflows/plugin-legacy-linux.yml b/.github/workflows/plugin-legacy-linux.yml index 83968e228..3a8867ce3 100644 --- a/.github/workflows/plugin-legacy-linux.yml +++ b/.github/workflows/plugin-legacy-linux.yml @@ -4,6 +4,7 @@ on: push: branches: - master + - legacy-sampsharp-migration - release/0.* paths: - .github/workflows/plugin-legacy-linux.yml diff --git a/.github/workflows/plugin-legacy-win32.yml b/.github/workflows/plugin-legacy-win32.yml index fbc71fc12..699c2b640 100644 --- a/.github/workflows/plugin-legacy-win32.yml +++ b/.github/workflows/plugin-legacy-win32.yml @@ -4,6 +4,7 @@ on: push: branches: - master + - legacy-sampsharp-migration - release/0.* paths: - .github/workflows/plugin-legacy-win32.yml From 8fc5274edb7ede13691f4bf38b1cea11dc3319d4 Mon Sep 17 00:00:00 2001 From: Tim Potze Date: Thu, 30 Apr 2026 00:26:49 +0200 Subject: [PATCH 07/15] Set execute permissions on shell scripts --- build.sh | 0 src/legacy/SampSharp/build.sh | 0 src/legacy/SampSharp/publish.sh | 0 3 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 build.sh mode change 100644 => 100755 src/legacy/SampSharp/build.sh mode change 100644 => 100755 src/legacy/SampSharp/publish.sh diff --git a/build.sh b/build.sh old mode 100644 new mode 100755 diff --git a/src/legacy/SampSharp/build.sh b/src/legacy/SampSharp/build.sh old mode 100644 new mode 100755 diff --git a/src/legacy/SampSharp/publish.sh b/src/legacy/SampSharp/publish.sh old mode 100644 new mode 100755 From 6c9edac0f4d3e1715b5f2865cbdca6811f53d128 Mon Sep 17 00:00:00 2001 From: Tim Potze Date: Thu, 30 Apr 2026 00:28:42 +0200 Subject: [PATCH 08/15] Update CI workflows to build with publish and upload artifacts --- .github/workflows/dotnet-legacy.yml | 9 +++++++++ .github/workflows/plugin-legacy-linux.yml | 2 +- .github/workflows/plugin-legacy-win32.yml | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dotnet-legacy.yml b/.github/workflows/dotnet-legacy.yml index 9c19b6513..c1817cc55 100644 --- a/.github/workflows/dotnet-legacy.yml +++ b/.github/workflows/dotnet-legacy.yml @@ -39,5 +39,14 @@ jobs: - name: Build legacy libraries run: ./build.sh legacy-libraries + - name: Pack legacy libraries + run: ./build.sh legacy-libraries publish + - name: Test run: cd src/legacy && dotnet test SampSharp.sln --no-build --verbosity normal + + - name: Upload NuGet packages + uses: actions/upload-artifact@v4 + with: + name: sampsharp-legacy-nuget-packages + path: build/artifacts/packages/ diff --git a/.github/workflows/plugin-legacy-linux.yml b/.github/workflows/plugin-legacy-linux.yml index 3a8867ce3..6b7d35c83 100644 --- a/.github/workflows/plugin-legacy-linux.yml +++ b/.github/workflows/plugin-legacy-linux.yml @@ -35,7 +35,7 @@ jobs: sudo apt-get install -y gcc g++ cmake gcc-multilib g++-multilib - name: Build legacy plugin - run: ./build.sh legacy-plugin + run: ./build.sh legacy-plugin publish - name: Upload artifacts uses: actions/upload-artifact@v4 diff --git a/.github/workflows/plugin-legacy-win32.yml b/.github/workflows/plugin-legacy-win32.yml index 699c2b640..9697376fb 100644 --- a/.github/workflows/plugin-legacy-win32.yml +++ b/.github/workflows/plugin-legacy-win32.yml @@ -33,7 +33,7 @@ jobs: uses: lukka/get-cmake@latest - name: Build legacy plugin - run: .\build.cmd legacy-plugin + run: .\build.cmd legacy-plugin publish - name: Upload artifacts uses: actions/upload-artifact@v4 From f8bec24ba0d96b069e33ec8827a5e25d6671a301 Mon Sep 17 00:00:00 2001 From: Tim Potze Date: Thu, 30 Apr 2026 00:31:33 +0200 Subject: [PATCH 09/15] Fix build.sh function definitions scope issue --- build.sh | 68 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/build.sh b/build.sh index bc13edca2..21c6bc514 100755 --- a/build.sh +++ b/build.sh @@ -6,6 +6,39 @@ set -e +show_usage() { + echo "" + echo "Usage:" + echo " build.sh legacy-plugin - Build legacy x86 plugin" + echo " build.sh legacy-plugin publish - Build and publish legacy x86 plugin" + echo " build.sh legacy-libraries - Build legacy C# libraries" + echo " build.sh legacy-libraries publish - Build and pack legacy C# libraries" + echo " build.sh component - Build component x64 plugin (not implemented)" + echo " build.sh component-libraries - Build component C# libraries (not implemented)" + echo " build.sh clean - Delete build directory contents" +} + +build_legacy_libraries() { + local SCRIPTDIR="$1" + cd "$SCRIPTDIR/src/legacy" + + echo "" + echo "Building C# libraries..." + dotnet build SampSharp.sln -c Release +} + +pack_legacy_libraries() { + local SCRIPTDIR="$1" + cd "$SCRIPTDIR/src/legacy" + + echo "" + echo "Packing C# libraries..." + dotnet pack SampSharp.sln -c Release + + echo "" + echo "NuGet packages created in: $SCRIPTDIR/build/artifacts/packages" +} + TARGET="${1}" ACTION="${2}" SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" @@ -31,9 +64,9 @@ case "$TARGET" in ;; legacy-libraries) if [ -z "$ACTION" ]; then - build_legacy_libraries + build_legacy_libraries "$SCRIPTDIR" elif [ "$ACTION" = "publish" ]; then - pack_legacy_libraries + pack_legacy_libraries "$SCRIPTDIR" else show_usage exit 1 @@ -60,34 +93,3 @@ esac echo "Build complete." exit 0 - -show_usage() { - echo "" - echo "Usage:" - echo " build.sh legacy-plugin - Build legacy x86 plugin" - echo " build.sh legacy-plugin publish - Build and publish legacy x86 plugin" - echo " build.sh legacy-libraries - Build legacy C# libraries" - echo " build.sh legacy-libraries publish - Build and pack legacy C# libraries" - echo " build.sh component - Build component x64 plugin (not implemented)" - echo " build.sh component-libraries - Build component C# libraries (not implemented)" - echo " build.sh clean - Delete build directory contents" -} - -build_legacy_libraries() { - cd "$SCRIPTDIR/src/legacy" - - echo "" - echo "Building C# libraries..." - dotnet build SampSharp.sln -c Release -} - -pack_legacy_libraries() { - cd "$SCRIPTDIR/src/legacy" - - echo "" - echo "Packing C# libraries..." - dotnet pack SampSharp.sln -c Release - - echo "" - echo "NuGet packages created in: $SCRIPTDIR/build/artifacts/packages" -} From dd949746a866a261af2d6f2be602ae8e1f5f6995 Mon Sep 17 00:00:00 2001 From: Tim Potze Date: Thu, 30 Apr 2026 00:33:22 +0200 Subject: [PATCH 10/15] Remove unit tests from dotnet-legacy workflow --- .github/workflows/dotnet-legacy.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/dotnet-legacy.yml b/.github/workflows/dotnet-legacy.yml index c1817cc55..84dac1d5e 100644 --- a/.github/workflows/dotnet-legacy.yml +++ b/.github/workflows/dotnet-legacy.yml @@ -42,9 +42,6 @@ jobs: - name: Pack legacy libraries run: ./build.sh legacy-libraries publish - - name: Test - run: cd src/legacy && dotnet test SampSharp.sln --no-build --verbosity normal - - name: Upload NuGet packages uses: actions/upload-artifact@v4 with: From 6896214e94060be56238a13c02da97aa94ae2061 Mon Sep 17 00:00:00 2001 From: Tim Potze Date: Wed, 26 Mar 2025 14:29:30 +0100 Subject: [PATCH 11/15] Create FUNDING.yml --- .github/FUNDING.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..eac236c33 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,2 @@ +github: ikkentim +ko_fi: ikkentim From e0df633233ee6e1af332604de4d1e3a41b163816 Mon Sep 17 00:00:00 2001 From: Damien Date: Sun, 14 Sep 2025 17:31:34 +0200 Subject: [PATCH 12/15] Wrong array size cause IndexOutOfRangeException (#453) Fixes #452 --- .../SAMP/Middleware/PlayerSelectObjectMiddleware.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerSelectObjectMiddleware.cs b/src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerSelectObjectMiddleware.cs index baa49245c..9d80f290d 100644 --- a/src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerSelectObjectMiddleware.cs +++ b/src/legacy/SampSharp.Entities/SAMP/Middleware/PlayerSelectObjectMiddleware.cs @@ -17,7 +17,7 @@ namespace SampSharp.Entities.SAMP; internal class PlayerSelectObjectMiddleware { - private readonly ArgumentsOverrideEventContext _context = new(3); + private readonly ArgumentsOverrideEventContext _context = new(4); private readonly EventDelegate _next; public PlayerSelectObjectMiddleware(EventDelegate next) From 3814f358de9f15a838aea8070652c8316d93a4b2 Mon Sep 17 00:00:00 2001 From: Tim Potze Date: Thu, 30 Apr 2026 00:46:38 +0200 Subject: [PATCH 13/15] Add versioning to release workflow and build.sh only --- .github/workflows/release-legacy.yml | 2 ++ build.sh | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-legacy.yml b/.github/workflows/release-legacy.yml index a9e3611f0..fbde3ac8e 100644 --- a/.github/workflows/release-legacy.yml +++ b/.github/workflows/release-legacy.yml @@ -98,6 +98,8 @@ jobs: - name: Pack NuGet packages run: ./build.sh legacy-libraries publish + env: + CiVersion: ${{ env.VERSION }} - name: Publish to NuGet run: | diff --git a/build.sh b/build.sh index 21c6bc514..020f5739f 100755 --- a/build.sh +++ b/build.sh @@ -24,7 +24,11 @@ build_legacy_libraries() { echo "" echo "Building C# libraries..." - dotnet build SampSharp.sln -c Release + if [ -n "$CiVersion" ]; then + dotnet build SampSharp.sln -c Release "/p:CiVersion=$CiVersion" + else + dotnet build SampSharp.sln -c Release + fi } pack_legacy_libraries() { @@ -33,7 +37,11 @@ pack_legacy_libraries() { echo "" echo "Packing C# libraries..." - dotnet pack SampSharp.sln -c Release + if [ -n "$CiVersion" ]; then + dotnet pack SampSharp.sln -c Release "/p:CiVersion=$CiVersion" + else + dotnet pack SampSharp.sln -c Release + fi echo "" echo "NuGet packages created in: $SCRIPTDIR/build/artifacts/packages" From 2be3a71e1154f13ed908899aa26edc64703538b3 Mon Sep 17 00:00:00 2001 From: Tim Potze Date: Thu, 30 Apr 2026 00:51:16 +0200 Subject: [PATCH 14/15] Removed old files and updated readme --- CHANGELOG.md | 223 ------------------- README.md | 7 +- changelogs/CHANGES-SampSharp.Core.md | 106 ---------- changelogs/CHANGES-SampSharp.Entities.md | 43 ---- changelogs/CHANGES-SampSharp.GameMode.md | 259 ----------------------- changelogs/CHANGES-plugin.md | 33 --- 6 files changed, 2 insertions(+), 669 deletions(-) delete mode 100644 CHANGELOG.md delete mode 100644 changelogs/CHANGES-SampSharp.Core.md delete mode 100644 changelogs/CHANGES-SampSharp.Entities.md delete mode 100644 changelogs/CHANGES-SampSharp.GameMode.md delete mode 100644 changelogs/CHANGES-plugin.md diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 4e99c6276..000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,223 +0,0 @@ -# SampSharp Changelog - -All notable changes to this project will be documented in this file. - -## [0.11.1] - 2026-04-15 - -### SampSharp.Core -- Fixed an error which occurs when a callback has an empty string as argument (#450) - -### SampSharp.GameMode -- (No changes) - -### SampSharp.Entities -- (No changes) - -### Plugin -- (No changes) - ---- - -## [0.11.0] - 2026-03-20 - -### SampSharp.Core -- Added `TaskHelper.SwitchToMainThread` (#402) -- Improved performance of callbacks by 25%-30% (#399, #401) -- Minor improvement of natives performance -- Fixed encoding of strings in callback arguments ignoring game mode builder configuration -- Removed multi-process mode - -### SampSharp.GameMode -- Added `VehicleModelInfo.VehicleModelInfo` -- Fixed missing Flatbed in `VehicleModelInfo` (#407) - -### SampSharp.Entities -- Added `AddComponent` method that takes an instance as parameter (#427) -- Fixed issues related to open dialogs when a player disconnects (#434) -- Fixed an issue where player entity may stay alive when an exception is thrown in `OnPlayerDisconnect` event -- Fixed an issue where an error may occur when `OnDialogResponse` is called without an active dialog (#443) - -### Plugin -- Added interop API (#399, #401) -- Added non-standard implementation of reading open.mp config.json -- Removed callback registration (#399, #401) -- Removed multi-process mode - ---- - -## [0.10.1] - 2026-01-05 - -### SampSharp.Core -- Fixed a possible crash when calling natives which return a string - -### SampSharp.GameMode -- (No changes) - -### SampSharp.Entities -- (No changes) - -### Plugin -- (No changes) - ---- - -## [0.10.0] - 2025-12-20 - -### SampSharp.Core -- Added support for "fastnative" calls, improves native call performance by 95% (#365) -- Added support for varargs in "fastnative" calls (#260) -- Added `IGameModeClient.NativeObjectProxyFactory` -- Added option `NativeMethodAttribute.ReferenceIndices` which provides the option to invoke a native with input parameters which should be passed by reference -- Added embedded codepages into the library which are available through `GameModeBuilder.UseEncodingCodePage(string pageName)` -- Updated to .NET Standard 2.1 -- Removed setter from `IGameModeClient.NativeLoader` -- Fixed HostedGameModeClient.ServerPath not returning correct path -- Deprecated multi-process mode and native-handle related types and methods - -### SampSharp.GameMode -- Added `BasePlayer.CancelEdit` (#362) -- Added `BasePlayer.SetMapIcon` and `BasePlayer.RemoveMapIcon` (#364) -- Added `ListDialog` (#383, #395) -- Updated to .NET Standard 2.1 -- Updated documentation links from SA-MP wiki to open.mp docs -- Fixed `PlayerTextLabel.Text`, `PlayerTextLabel.AttachedPlayer` and `PlayerTextLabel.AttachedVehicle` not being set -- Fixed command group help commands not being invoked in some cases (#361) -- Fixed command overloading not working in some cases (#344) -- Fixed `BasePlayer.IsNPC` not returning `true` when the NPC has not yet connected (#346) -- Fixed typo in `Server.GetWeaponName` result for `Weapon.ThermalGoggles` (#380) -- Fixed a problem which caused successive calls to `ShowAsync` not to show the dialog (#384, #389) - -### SampSharp.Entities -- Added support for player names as command arguments (#354) -- Added timers (#326) -- Updated to .NET Standard 2.1 -- Updated documentation links from SA-MP wiki to open.mp docs -- Fixed `OnDestroyComponent` not being called when the component is destroyed, but the entities remains alive (#358) -- Fixed an error which could occur when event's occur with IDs of entities which don't exist, but aren't 0 (#355, #353, #352, #350) -- Fixed exception thrown when a dialog is shown with no `null` button2 text (#376) -- Fixed components not being removed from global component registry when destroying an entity - -### Plugin -- Added automatic coreclr and gamemode detection -- Added support for "fastnative" calls (#365) -- Added callback name to "Callback parameters count mismatch" error (#342) -- Added coreclr detection based on `SAMPSHARP_RUNTIME` environment variable -- Changed hosted mode to be the default, multi-process mode can be enabled with the `use_multi_process_mode=1` server setting -- Fixed a possible server crash when a callback is handled with an unexpected parameter count -- Fixed a possible server crash when calling the `CallRemoveFunction` native (#363) -- Codepage files are no longer provided in the plugin release package. Codepages are available as embedded resources in SampSharp.Core via the `GameModeBuilder.UseEncodingCodePage` method. The codepage files are available in [the codepages repository](https://github.com/SampSharp/codepages) if you still need these files for some reason - ---- - -## [0.9.3] - 2025-10-15 - -### SampSharp.Core -- No changes - -### SampSharp.GameMode -- No changes - -### SampSharp.Entities -- Fixed player- textdraws, labels and objects not working as intended - -### Plugin -- (No changes) - ---- - -## [0.9.2] - 2025-10-10 - -### SampSharp.Core -- No changes - -### SampSharp.GameMode -- No changes - -### SampSharp.Entities -- Fixed exception thrown when trying to destroy all components twice (#333) -- Fixed dialog response not being handled if the dialog was shown as a response to another dialog - -### Plugin -- (No changes) - ---- - -## [0.9.1] - 2025-10-05 - -### SampSharp.Core -- Fixed GMX startup behaviour not reconnecting to the SA-MP server properly - -### SampSharp.GameMode -- Removed unused `PlayerDisconnectReason` enum in favour of `DisconnectReason` enum (#330) - -### SampSharp.Entities -- Added code annotations -- Fixed server freezing when destroying an entity after destroying its components in a specific order -- Fixed command being called with component not in entity would cause the command not to be called but still succeed (#331) -- Removed unused `PlayerDisconnectReason` enum in favour of `DisconnectReason` enum (#330) - -### Plugin -- (No changes) - ---- - -## [0.9.0] - 2025-09-20 - -### SampSharp.Core -- Added `IGameModeClient.RegisterCallback` overloads which allows the arguments of the callback to be provided as an `object[]` to the specified method -- Added option to specify the index at which the identifier arguments are located within natives of native objects -- Added notice to multi-process run mode: "for development purposes only", use hosted mode for production environments -- Added callback name to the `IGameModeClient.UnhandledException` event -- Added unhandled exception handling in hosted mode -- Added unhandled exception handling in multi-process mode for ticks and synchronisations -- Added `IfHosted` and `IfMultiProcess` methods to `GameModeBuilder` -- Updated minimum .NET Standard version to 2.0 -- Improved shutdown behaviour of multi-process run mode -- Improved number of memory allocations during handling of callbacks and native calls in hosted run mode -- Changed hosted mode to not automatically redirect console output to the server_log.txt, use `GameModeBuilder.RedirectConsoleOutput()` to reenable logging to the server log -- Removed `GameModeBuilder.BuildWith` -- Fixed `GameModeBuilder.RedirectConsoleOutput` causing errors during startup in multi-process mode -- Fixed garbage strings being returned when no string is set to out string parameters (#323) - -### SampSharp.GameMode -- Added `Vector3.XY` which returns a `Vector2` with the x and y components (#299/#300) -- Added `Color.Brightness` property (#309) -- Added `Color.AddGrammaCorrection`, `Color.RemoveGammaCorrection`, `Color.Grayscale` methods (#309) -- Added `blendAlpha` option to `Color.Lerp`, `Color.Darken` and `Color.Lighten` (#305/#310) -- Added `Timer.Run` and `Timer.RunOnce` overloads with an `int` or `double` interval in milliseconds (#315) -- Added `BasePlayer.PickUpPickup` event (#319) -- Added `BasePlayer.CameraTargetPlayerObject` (#320) -- Added `BasePlayer.SurfingPlayerObject` (#324) -- Added `Server.GetServerTickRate` (#295) -- Added automatic detection for command and command group names (#273) -- Added command parameter attribute `NullableParam` to indicate a `BasePlayer` or `BaseVehicle` argument is allowed to be null, enum values can be marked as nullable by using nullable enums like `VehicleModelType?` (#268/#290) -- Added `Server.GetWeaponName` (#311) -- Added `CommandAttribute.IsGroupHelp`, if this value is true, the command will run if the command group is entered by the player without a specified command in the command group -- **breaking** Added `PlayerCancelClickTextDraw` event which is called when player presses ESC while selecting textdraws, `PlayerClickTextDraw` is no longer called when ESC is pressed (#304/#321) -- Updated `VehicleModelInfo` to include seat count and a missing entry for ID 611, Utility Trailer (#302) -- Updated minimum .NET Standard version to 2.0 -- **breaking** Changed `BasePlayer.CameraTargetObject` to `BasePlayer.CameraTargetGlobalObject` (#320) -- **breaking** Changed `BasePlayer.SurfingObject` to `BasePlayer.SurfingGlobalObject` (#324) -- **breaking** Changed `BaseMode.PlayerPickUp` event to have event arguments of type `PickUpPickupEventArgs` and changed the sender of event from the pickup to the player (#319) -- **breaking** Changed `Pickup.PickUp` event to have event arguments of type `PickUpPickupEventArgs` (#319) -- Fixed `Quaternion` coordinate system not matching SA-MP coordinate system -- Fixed `Edited` and `Selected` on `GlobalObject` and `PlayerObject` not being fired (#303/#306) -- Fixed `Color.FromInteger` with `ColorFormat.RGB` returning a value with 0 alpha -- Fixed conversion from `Color` to `Vector3` not returning decimal values -- Fixed enum numeric values not being recognized as a command argument if an enum value name contains the numeric value (#274) -- **breaking** Removed `ObjectModel` enum because it was too big and might not be complete - -### SampSharp.Entities -- Initial version - -### Plugin -- Updated sampgdk to 4.6.2 -- Changed maximum native arguments to 64 -- Fixed server in multi-process run mode freezing when calling native which calls a callback which calls a native -- Fixed intermission script getting stuck between runs - ---- - -## Older Versions - -Detailed history for 0.8.x and earlier versions can be found in the individual changelog files in the `changelogs/` directory. diff --git a/README.md b/README.md index 689b71493..acaadfce3 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Building for Developers ### Building Legacy SampSharp -The legacy SampSharp code (v1) is located in the `src/legacy/` directory. Use the build scripts in the root to build components: +The legacy SampSharp code (v0.x) is located in the `src/legacy/` directory. Use the build scripts in the root to build components: **On Windows:** ``` @@ -54,10 +54,7 @@ The legacy SampSharp code (v1) is located in the `src/legacy/` directory. Use th ./build.sh clean # Clean build directory ``` -Artifacts are placed in `build/artifacts/` and `build/bin/`: -- Plugin binaries: `build/artifacts/sampsharp-legacy/` -- NuGet packages: `build/artifacts/packages/` -- C# libraries: `build/bin/SampSharp.*/Release/net6.0/` +Artifacts are placed in `build/artifacts/`. **Requirements:** - **.NET SDK 6.0** (for building C# libraries) diff --git a/changelogs/CHANGES-SampSharp.Core.md b/changelogs/CHANGES-SampSharp.Core.md deleted file mode 100644 index f0f3cc48d..000000000 --- a/changelogs/CHANGES-SampSharp.Core.md +++ /dev/null @@ -1,106 +0,0 @@ -### 0.11.1 -- Fixed an error which occurs when a callback has an empty string as argument (#450) - -### 0.11.0 -- Added `TaskHelper.SwitchToMainThread` (#402) -- Improved performance of callbacks by 25%-30% (#399, #401) -- Minor improvement of natives performance -- Fixed encoding of strings in callback arguments ignooring game mode builder configuration -- Removed multi-process mode - -### 0.10.1 -- Fixed a possible crash when calling natives which return a string - -### 0.10.0 -- Added support for "fastnative" calls, this improves time consumed by calls to native functions by 95% (#365) -- Added support for varargs in "fastnative" calls (#260) -- Added `IGameModeClient.NativeObjectProxyFactory` -- Added option `NativeMethodAttribute.ReferenceIndices` which provides the option to invoke a native with input parameters which should be passed by reference. -- Added embedded codepages into the library which are available through `GameModeBuilder.UseEncodingCodePage(string pageName)` -- Updated to .NET Standard 2.1 -- Removed setter from `IGameModeClient.NativeLoader` -- Fixed HostedGameModeClient.ServerPath not returning correct path -- Deprecated multi-process mode and native-handle related types and methods - -### 0.10.0-alpha2 -- Fixed HostedGameModeClient.ServerPath not returning correct path - -### 0.10.0-alpha1 -- Added support for "fastnative" calls, this improves time consumed by calls to native functions by 95% (#365) -- Added support for varargs in "fastnative" calls (#260) -- Added `IGameModeClient.NativeObjectProxyFactory` -- Added option `NativeMethodAttribute.ReferenceIndices` which provides the option to invoke a native with input parameters which should be passed by reference. -- Added embedded codepages into the library which are available through `GameModeBuilder.UseEncodingCodePage(string pageName)` -- Updated to .NET Standard 2.1 -- Removed setter from `IGameModeClient.NativeLoader` -- Deprecated multi-process mode and native-handle related types and methods - -### 0.9.3 -- No changes - -### 0.9.2 -- No changes - -### 0.9.1 -- Fixed GMX startup behaviour not reconnecting to the SA-MP server properly - -### 0.9.0 -- Added `IGameModeClient.RegisterCallback` overloads which allows the arguments of the callback to be provided as an `object[]` to the specified method -- Added option to specify the index at which the identifier arguments are located within natives of native objects -- Added notice to multi-process run mode: "for development purposes only", use hosted hosted mode for production environments -- Added callback name to the `IGameModeClient.UnhandledException` event -- Added unhandled exception handling in hosted mode -- Added unhandled exception handling in multi-process mode for ticks and synchronisations -- Added `IfHosted` and `IfMultiProcess` methods to `GameModeBuilder` -- Updated minimum .NET Standard version to 2.0 -- Improved shutdown behaviour of multi-process run mode -- Improved number of memory allocations during handling of callbacks and native calls in hosted run mode -- Changed hosted mode to not automatically redirect console output to the server_log.txt, use `GameModeBuilder.RedirectConsoleOutput()` to reenable logging to the server log -- Removed `GameModeBuilder.BuildWith` -- Fixed `GameModeBuilder.RedirectConsoleOutput` causing errors during startup in multi-process mode -- Fixed garbage strings being returned when no string is set to out string parameters (#323) - -### 0.8.0 -- Initial version - -### 0.8.0-alpha10 -- Added `IGameModeClient.ServerPath` (#292) -- Improved state resetting with intermission script -- Increased native argument buffer size from 32 to 128 (#279) -- Fixed missing framework log messages -- Fixed "Duplicate typename within an assembly" exception being thrown in some cases when loading a gamemode when players are already connect (#258) -- Fixed crash which occurs when using running gmx in non-hosted mode (#280) - -### 0.8.0-alpha8 -- Added option to host game mode inside samp-server process (experimental) -- Renamed `GameModeClient` to `MultiProcessGameModeClient` -- Changed `GameModeBuilder.UseLogStream(Stream stream)` to `GameModeBuilder.UseLogWriter(TextWriter textWriter)` -- Fixed an `ArgumentOutOfRangeException` being thrown in certain cases when calling a native -- Fixed exceptions from tasks not being sent to the `IGameModeClient.UnhandledException` event -- Fixed log messages from SampSharp not being redirect to the SA-MP server when `RedirectConsoleOutput()` was used - -### 0.8.0-alpha7 -- Possibly fixed "Duplicate type name within an assembly." error - -### 0.8.0-alpha6 -- Fixed random server freezes while waiting for a response from the server -- Fixed callbacks called during the `OnGameModeInit` callback not being called - -### 0.8.0-alpha5 -- Added a separate buffer for native results so the native arguments don't get overwritten by the native when it is writing the output (plugin) -- Changed natives to provide all results in array references instead of just the written values. The unwritten values are 0 by default -- Fixed deadlocks when calling natives which call callbacks which call natives -- Fixed a crash caused by a recursive non-recursive-mutex locking issue (plugin) - -### 0.8.0-alpha4 -- Fixed array arguments in natives not working - -### 0.8.0-alpha3 -- Fixed a threading issue (#220) -- Fixed a communication buffer overflow when pausing the server using a debugger. Set `com_debug 1` in server.cfg to avoid these overflows. - -### 0.8.0-alpha2 -- Fixed FakeGMX not reconnecting players (#221) - -### 0.8.0-alpha1 -- Initial version diff --git a/changelogs/CHANGES-SampSharp.Entities.md b/changelogs/CHANGES-SampSharp.Entities.md deleted file mode 100644 index 347dee5f2..000000000 --- a/changelogs/CHANGES-SampSharp.Entities.md +++ /dev/null @@ -1,43 +0,0 @@ -### 0.11.0 -- Added `AddComponent` method that takes an instance as parameter (#427) -- Fixed issues related to open dialogs when a player disconnects (#434) -- Fixed an issue where player entity may stay alive when an exception is thrown in `OnPlayerDisconnect` event -- Fixed an issue where an error may occur when `OnDialogResponse` is called without an active dialog (#443) - -### 0.10.0 -- Added support for player names as command arguments (#354) -- Added timers (#326) -- Updated to .NET Standard 2.1 -- Updated documentation links from SA-MP wiki to open.mp docs -- Fixed `OnDestroyComponent` not being called when the component is destroyed, but the entities remains alive (#358) -- Fixed an error which could occur when event's occur with IDs of entities which don't exist, but aren't 0 (#355, #353, #352, #350) -- Fixed exception thrown when a dialog is shown with no `null` button2 text (#376) -- Fixed components not being removed from global component registry when destroying an entity - -### 0.10.0-alpha2 -- Fixed components not being removed from global component registry when destroying an entity - -### 0.10.0-alpha1 -- Added support for player names as command arguments (#354) -- Added timers (#326) -- Updated to .NET Standard 2.1 -- Updated documentation links from SA-MP wiki to open.mp docs -- Fixed `OnDestroyComponent` not being called when the component is destroyed, but the entities remains alive (#358) -- Fixed an error which could occur when event's occur with IDs of entities which don't exist, but aren't 0 (#355, #353, #352, #350) -- Fixed exception thrown when a dialog is shown with no `null` button2 text (#376) - -### 0.9.3 -- Fixed player- textdraws, labels and objects not working as intended - -### 0.9.2 -- Fixed exception thrown when trying to destroy all components twice (#333) -- Fixed dialog response not being handled if the dialog was shown as a response to another dialog - -### 0.9.1 -- Added code annotations -- Fixed server freezing when destroying an entity after destroying its components in a specific order -- Fixed command being called with component not in entity would cause the command not te be called but still succeed (#331) -- Removed unused `PlayerDisconnectReason` enum in favour of `DisconnectReason` enum (#330) - -### 0.9.0 -- Initial version diff --git a/changelogs/CHANGES-SampSharp.GameMode.md b/changelogs/CHANGES-SampSharp.GameMode.md deleted file mode 100644 index 68bfd8a9e..000000000 --- a/changelogs/CHANGES-SampSharp.GameMode.md +++ /dev/null @@ -1,259 +0,0 @@ -### 0.11.0 -- Added `VehicleModelInfo.VehicleModelInfo` -- Fixed missing Flatbed in `VehicleModelInfo` (#407) - -### 0.10.0 -- Added `BasePlayer.CancelEdit` (#362) -- Added `BasePlayer.SetMapIcon` and `BasePlayer.RemoveMapIcon` (#364) -- Added `ListDialog` (#383, #395) -- Updated to .NET Standard 2.1 -- Updated documentation links from SA-MP wiki to open.mp docs -- Fixed `PlayerTextLabel.Text`, `PlayerTextLabel.AttachedPlayer` and `PlayerTextLabel.AttachedVehicle` not being set -- Fixed command group help commands not being invoked in some cases (#361) -- Fixed command overloading not working in some cases (#344) -- Fixed `BasePlayer.IsNPC` not returning `true` when the NPC has not yet connected (#346) -- Fixed typo in `Server.GetWeaponName` result for `Weapon.ThermalGoggles` (#380) -- Fixed a problem which caused successive calls to `ShowAsync` not to show the dialog (#384, #389) - -### 0.10.0-alpha2 -- Added `ListDialog` (#383, #395) - -### 0.10.0-alpha1 -- Added `BasePlayer.CancelEdit` (#362) -- Added `BasePlayer.SetMapIcon` and `BasePlayer.RemoveMapIcon` (#364) -- Updated to .NET Standard 2.1 -- Updated documentation links from SA-MP wiki to open.mp docs -- Fixed `PlayerTextLabel.Text`, `PlayerTextLabel.AttachedPlayer` and `PlayerTextLabel.AttachedVehicle` not being set -- Fixed command group help commands not being invoked in some cases (#361) -- Fixed command overloading not working in some cases (#344) -- Fixed `BasePlayer.IsNPC` not returning `true` when the NPC has not yet connected (#346) -- Fixed typo in `Server.GetWeaponName` result for `Weapon.ThermalGoggles` (#380) -- Fixed a problem which caused successive calls to `ShowAsync` not to show the dialog (#384, #389) - -### 0.9.1 -- Removed unused `PlayerDisconnectReason` enum in favour of `DisconnectReason` enum (#330) - -### 0.9.0 -- Added `Vector3.XY` which returns a `Vector2` with the x and y components (#299/#300) -- Added `Color.Brightness` property (#309) -- Added `Color.AddGrammaCorrection`, `Color.RemoveGammaCorrection`, `Color.Grayscale` methods (#309) -- Added `blendAlpha` option to `Color.Lerp`, `Color.Darken` and `Color.Lighten` (#305/#310) -- Added `Timer.Run` and `Timer.RunOnce` overloads with an `int` or `double` internal in miliseconds. (#315) -- Added `BasePlayer.PickUpPickup` event (#319) -- Added `BasePlayer.CameraTargetPlayerObject` (#320) -- Added `BasePlayer.SurfingPlayerObject` (#324) -- Added `Server.GetServerTickRate` (#295) -- Added automatic detection for command and command group names (#273) -- Added command parameter attribute `NullableParam` to indicate a `BasePlayer` or `BaseVehicle` argument is allowed to be null, enum values can be marked as nullable by using nullable enums like `VehicleModelType?` (#268/#290) -- Added `Server.GetWeaponName` (#311) -- Added `CommandAttribute.IsGroupHelp`, if this value is true, the command will run if the command group is entered by the player without a specified command in the command group -- *breaking* Added `PlayerCancelClickTextDraw` event which is called when player presses ESC while selecting textdraws, `PlayerClickTextDraw` is no longer called when ESC is pressed (#304/#321) -- Updated `VehicleModelInfo` to include seat count and a missing entry for ID 611, Utility Trailer (#302) -- Updated minimum .NET Standard version to 2.0 -- *breaking* Changed `BasePlayer.CameraTargetObject` to `BasePlayer.CameraTargetGlobalObject` (#320) -- *breaking* Changed `BasePlayer.SurfingObject` to `BasePlayer.SurfingGlobalObject` (#324) -- *breaking* Changed `BaseMode.PlayerPickUp` event to have event arguments of type `PickUpPickupEventArgs` and changed the sender of event from the pickup to the player (#319) -- *breaking* Changed `Pickup.PickUp` event to have event arguments of type `PickUpPickupEventArgs` (#319) -- Fixed `Quaternion` coordinate system not matching SA-MP coordinate system -- Fixed `Edited` and `Selected` on `GlobalObject` and `PlayerObject` not being fired (#303/#306) -- Fixed `Color.FromInteger` with `ColorFormat.RGB` returning a value with 0 alpha -- Fixed conversion from `Color` to `Vector3` not returning decimal values -- Fixed enum numeric values not being recognized as an command argument if an enum value name contains the numeric value (#274) -- *breaking* Removed `ObjectModel` enum because it was too big and might not be complete - -### 0.8.0 -- Initial .NET Core version -- Added `Weapon.Suicide` definition -- Added `Color(byte, byte, byte, float)` constructor -- Added ExplosionType enum (#234) -- Added netstat properties to the `BasePlayer` class (#238) -- Added `VehicleColor` enum and `Color.FromVehicleColor` (#270) -- Added support for `BaseVehicle` or derived types in command parameters (#276) -- Added `MapIcon` enum (#206/#288) -- Added `ObjectModel` enum and `PickupType` enum (#291) -- Changed Dialog.ShowAsync to throw `PlayerDisconnectedException` instead of `TaskCancelledException` -- Fixed `Dialog.Hide` not working (#212) -- Fixed `BaseVehicle.CreateStatic(VehicleModelType, Vector3, float, int, int)` overload not creating static vehicle -- Fixed `OnPlayerEnterCheckpoint` callback not being processed - -### 0.8.0-alpha10 -- Added `VehicleColor` enum and `Color.FromVehicleColor` (#270) -- Added support for `BaseVehicle` or derived types in command parameters (#276) -- Added `MapIcon` enum (#206/#288) -- Added `ObjectModel` enum and `PickupType` enum (#291) -- Fixed `OnPlayerEnterCheckpoint` callback not being processed - -### 0.8.0-alpha8 -- Fixed `BaseVehicle.CreateStatic(VehicleModelType, Vector3, float, int, int)` overload not creating static vehicle - -### 0.8.0-alpha7 -- Fixed timer executed multiple times - -### 0.8.0-alpha6 -- Added ExplosionType enum (#234) -- Added netstat properties to the `BasePlayer` class (#238) - -### 0.8.0-alpha2 -- Added `Weapon.Suicide` definition -- Added `Color(byte, byte, byte, float)` constructor -- Changed Dialog.ShowAsync to throw `PlayerDisconnectedException` instead of `TaskCancelledException` -- Fixed `Dialog.Hide` not working (#212) -- Fixed NuGet package referencing invalid build version 0.0.0-localbuild of SampSharp.Core - -### 0.8.0-alpha1 -- Changes for "named pipes" version - -### 0.7.6221.37952 -- Changed the default virtual world of `TextLabel` instances from -1 to 0, which is the expected behavior -- Fixed a bug which caused previous colors and zoom levels in `TextDraw`/`PlayerTextDraw` instances to be set at every refresh -- Fixed a bug which caused `PlayerTextDraw` instances to disappear at odd times -- Fixed a possible crash when loading envirionment variables in the plugin -- Fixed a crash during shutdown by disabling unloading DLLs, this consequently also disabled RCON shutdown signals (RCON commands `sampsharpstop` and `sampsharpstart`) - -### 0.7.6133.31753-alpha -- Added `Matrix` struct -- Added `Quaternion` struct -- Added `Vector4` struct -- Added various calcuation methods to the `Vector2` and `Vector3` structs and `MathHelper` class -- Added `AddItem` and `AddItems` methods to the `ListDialog` class -- Added support for setting the debugger address and the starting game mode using environment variables -- Fixed a bug which caused the permission system of commands not to work -- Fixed a bug where using the debugger would cause the server to crash on startup -- Fixed a bug where sending an empty string to a native would cause the server to crash - - -### 0.7.6119.35177-alpha -- Fixed random debug messages being displayed in the server output - -### 0.7.6119.33589-alpha -- Added `NativeObjectSingleton` class for easy access to singleton native object instances -- Added mono soft debugger support -- Added a virtual `Initialize` method to all pooled types (BasePlayer, BaseVehicle, etc.). You can override this function to initialize your instance. If you have custom initialization logic in subclasses of `BaseVehicle` or `Globalobject` for example, the `Id` of the instance will not have been set yet. In these cases, you can override `Initialize` to provide your own initialization logic. -- Updated mono to 4.6 -- Changed visibility of `LinqHelper` and `VehicleParameterValueHelper` from public to internal -- Fixed textdraw(global/player) properties not updating properly when changed -- Fixed a bug where the `.All` accessors of pooled types may cause exceptions when an item is added to it during iteration - -If you encounter problems or crashes, please ensure you have installed mono 4.6. If you use -the standalone Windows version of mono, you can download an updated version here: http://deploy.timpotze.nl/packages/mono-portable46.zip -Simply extract the contents of the archive to your server directory. - -### 0.7.6107.37493-alpha -- Fixed an error when generating a proxy object for virtual methods for -- Renamed `BasePlayer.GetPlayerLastShotVectors` to `BasePlayer.GetLastShot` - -### 0.7.6107.36375-alpha -- Added abstraction layer between interop and implementation - -### 0.7.6104.38929-alpha -- Added support for using any codepage -- Added server configuration reader -- Added support for boolean reference native argument type -- Added `BaseVehicleFactory` -- Added system for automatically loading extensions -- Added support for SA-MP 0.3.7R2 -- Added a way of automatically loading controllers -- Added `BasePlayer.IsSelectingTextDraw` -- Added `BasePlayer.GetPlayerLastShotVectors` -- Added missing documentation -- Added mechanism for extension dependencies -- Rewritten the command processor -- Rewritten the way native calls are handled -- Improved performance of of all pooling types -- Renamed `GtaPlayer` to `BasePlayer` -- Renamed `GtaVehicle` to `BaseVehicle` -- Renamed `GtaPlayerController` to `BasePlayerController` -- Renamed `GtaVehicleController` to `BaseVehicleController` -- Fixed the the diploma font not being available -- Removed setters from Vector2/Vector3 - -### 0.6.2 -- Added various `Color` constructors and operators (including `Color * float`). -- Added `Color.Lerp()`, `Color.Lighten()` and `Color.Darken()`. -- Added `MathHelper` class. -- Added `BaseMode.CallbackException` event. This event is raised if an exception has been thrown in a callback without being handled. -- Changed sender of menu related events to player. -- Fixed a bug where `Sync.Run()` causes a `NullReferenceException` if called before controllers are loaded. -- Fixed a bug where `LogWriter` (used by Console.Write) causes buffer overflow errors when handling long strings. -- Fixed a bug causing .mdb files not to be loaded properly. - -### 0.6.1 -- Fixed a bug in return value conversion of callbacks. -- Fixed a bug where using the build-in MapAndreas might crash the server. - -### 0.6 -- Added `Dialog.ShowAsync`. -- Added `InputDialog`, `ListDialog`, `MessageDialog` and `TabListDialog` classes which contain useful methods for it's type of dialog. -- Added `Vector2` structure. -- Updated vehicle parameter setters to use the `VehicleParameterValue` to maintain the proper states of other vehicle parameters. -- Updated mono API used to 4.0.0. **The minimum mono version required is 4.0 now**. -- **breaking** The `Vector` structure has been renamed to `Vector3`. -- Removed `GetHashCode` from wrapper classes. -- Removed `double` constructors from `Vector3` sructure. -- Fixed auto loading of empty filterscript (which allows `OnRconCommand` to be used) -- Fixed a small memory leak in the initialization script in the plugin. -- Fixed a bug where Callnative array throws errors when a `out float[]` argument is used. -- Fixed `TextEventArgs.SendToPlayers` (#118). -- (incomplete) Started creating interfaces of wrapper classes. - -### 0.5 -- Added `GtaPlayer.DefaultClientMessageColor` -- Added the ability to add commands in a class derived from `GtaPlayer` class without the method having to be static. -- Added a basic `IServiceProvider` to `BaseMode` class. -- Updated for SA-MP 0.3.7: - - Added `Actor` class. - - Added constructors to `Dialog` class for tab lists. - - Added siren related arguments to `GtaVehicle.Create` and `GtaVehicle.CreateStatic`. - - Added door/window parameter properties and methods to `GtaVehicle` class. - - Added various other new methods and properties. -- Renamed `GtaVehicle.GetParams` to `GtaVehicle.GetParameters`. -- Renamed `GtaVehicle.SetParams` to `GtaVehicle.SetParameters`. -- Added overload of `GtaVehicle.GetParameters` which properly takes care of the 'unset' (-1) values the parameters may contain. -- Removed deprecated methods. -- Removed unused and out-of-date documentation from the `Native` class. - -### 0.4.1 -- Fixed extensions failing to load before the initialization ended. (Resolves #90) - -### 0.4 -- Added Native.NativeExists -- Renamed `Color.GetColorFromValue` and `Color.GetColorValue` and add `Color.FromString`. (Resolves #87) -- Renamed Disposable.CheckDisposed to Disposable.AssertNotDisposed -- Improved documentation. -- Improved console messages. -- Improved command system. (Resolves #86 #89 #77) -- Improved build-in MapAndreas. If a suitable MapAndreas plugin is loaded, the plugin is used instead of the build-in logic. -- Fixed PlayerObject and PlayerTextDraw staying in pools after player disconnects (Resolves #82) -- Fixed various memory leaks. -- Fixed various crashes related to calls to custom natives. -- Fixed crashes related to `gmx`/`Native.GameModeExit()`. - -### 0.3.1 -- Added missing documentation -- Added Bone enumerator -- Add setters to vehicle params Engine, Lights, Alarm, Doors, Bonnet, Boot, Objective -- Updated some methods that used IDs to use objects/enumerators instead -- Updated most events - - Makes most EventArgs classes cleaner - - Removes repeated .Find/.FindOrCreate calls -- Removed logic from Native class. It now only contains external calls. - -### 0.3 -- Added priorities to keyhandlers -- Added Server.ToggleDebugOutput(toggle) to output Debug.* calls to the console -- Added a number of other functions to the Server class -- Fixed a couple of bugs with timers -- Changed visibility and and names of event raisers in BaseMode class -- Changed various *EventArgs property names and logic -- Improved Sync class and allow make Sync.Run calls awaitable -- Console.* and Debug.* now automatically sync to the main thread when this is required -- Updated sampgdk which resolves some compatibility issues -- Various other improvements and fixes - -### 0.2 -- Added GtaVehicle.Health property -- Added support for different languages -- Added a per-key press/release handler: GtaPlayer.Key - -### 0.1 -- Initial version diff --git a/changelogs/CHANGES-plugin.md b/changelogs/CHANGES-plugin.md deleted file mode 100644 index d5c662c36..000000000 --- a/changelogs/CHANGES-plugin.md +++ /dev/null @@ -1,33 +0,0 @@ -### 0.11.0 -- Added interop API (#399, #401) -- Added non-standard implementation of reading open.mp config.json -- Removed callback registration (#399, #401) -- Removed multi-process mode - -### 0.10.0 -- Added automatic coreclr and gamemode detection -- Added support for "fastnative" calls (#365) -- Added callback name to "Callback parameters count mismatch" error (#342) -- Added coreclr detection based on `SAMPSHARP_RUNTIME` environment variable -- Changed hosted mode to be the default, multi-process mode can be enabled with the `use_multi_process_mode=1` server setting -- Fixed a possible server crash when a callback is handled with an unexpected parameter count -- Fixed a possible server crash when calling the `CallRemoveFunction` native (#363) -- Codepage files are no longer provided in the plugin release package. Codepages are available as embedded resources in SampSharp.Core via the `GameModeBuilder.UseEncodingCodePage` method. The codepage files are available in [the codepages repository](https://github.com/SampSharp/codepages) if you still need these files for some reason. - -### 0.10.0-alpha2 -- Added coreclr detection based on `SAMPSHARP_RUNTIME` environment variable - -### 0.10.0-alpha1 -- Added automatic coreclr and gamemode detection -- Added support for "fastnative" calls (#365) -- Added callback name to "Callback parameters count mismatch" error (#342) -- Changed hosted mode to be the default, multi-process mode can be enabled with the `use_multi_process_mode=1` server setting -- Fixed a possible server crash when a callback is handled with an unexpected parameter count -- Fixed a possible server crash when calling the `CallRemoveFunction` native (#363) -- Codepage files are no longer provided in the plugin release package. Codepages are available as embedded resources in SampSharp.Core via the `GameModeBuilder.UseEncodingCodePage` method. The codepage files are available in [the codepages repository](https://github.com/SampSharp/codepages) if you still need these files for some reason. - -### 0.9.0 -- Updated sampgdk to 4.6.2 -- Changed maximum native arguments to 64 -- Fixed server in multi-process run mode freezing when calling native which calls a callback which calls a native -- Fixed intermission script getting stuck between runs From e9c6ffb874ab01b9cb6d1d2ce94dec35c273c799 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 13:29:27 +0000 Subject: [PATCH 15/15] Remove legacy-sampsharp-migration branch from all CI workflows Agent-Logs-Url: https://github.com/ikkentim/SampSharp/sessions/bebad4cf-4c26-4537-9bde-2a06c6ef83e2 Co-authored-by: ikkentim <2820647+ikkentim@users.noreply.github.com> --- .github/workflows/component-linux.yml | 1 - .github/workflows/component-win.yml | 1 - .github/workflows/dotnet-legacy.yml | 1 - .github/workflows/dotnet.yml | 1 - .github/workflows/plugin-legacy-linux.yml | 1 - .github/workflows/plugin-legacy-win32.yml | 1 - 6 files changed, 6 deletions(-) diff --git a/.github/workflows/component-linux.yml b/.github/workflows/component-linux.yml index 312f96a6d..1e2aaa57b 100644 --- a/.github/workflows/component-linux.yml +++ b/.github/workflows/component-linux.yml @@ -7,7 +7,6 @@ on: push: branches: - master - - legacy-sampsharp-migration - release/1.* paths: - .github/workflows/component-linux.yml diff --git a/.github/workflows/component-win.yml b/.github/workflows/component-win.yml index 112c706c8..8dac2609b 100644 --- a/.github/workflows/component-win.yml +++ b/.github/workflows/component-win.yml @@ -7,7 +7,6 @@ on: push: branches: - master - - legacy-sampsharp-migration - release/1.* paths: - .github/workflows/component-win.yml diff --git a/.github/workflows/dotnet-legacy.yml b/.github/workflows/dotnet-legacy.yml index 84dac1d5e..2eccc11e0 100644 --- a/.github/workflows/dotnet-legacy.yml +++ b/.github/workflows/dotnet-legacy.yml @@ -4,7 +4,6 @@ on: push: branches: - master - - legacy-sampsharp-migration - release/0.* paths: - .github/workflows/dotnet-legacy.yml diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 03a0f3436..33b88f9f5 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -7,7 +7,6 @@ on: push: branches: - master - - legacy-sampsharp-migration - release/1.* paths: - .github/workflows/dotnet.yml diff --git a/.github/workflows/plugin-legacy-linux.yml b/.github/workflows/plugin-legacy-linux.yml index 6b7d35c83..45cb885b9 100644 --- a/.github/workflows/plugin-legacy-linux.yml +++ b/.github/workflows/plugin-legacy-linux.yml @@ -4,7 +4,6 @@ on: push: branches: - master - - legacy-sampsharp-migration - release/0.* paths: - .github/workflows/plugin-legacy-linux.yml diff --git a/.github/workflows/plugin-legacy-win32.yml b/.github/workflows/plugin-legacy-win32.yml index 9697376fb..83d445c6a 100644 --- a/.github/workflows/plugin-legacy-win32.yml +++ b/.github/workflows/plugin-legacy-win32.yml @@ -4,7 +4,6 @@ on: push: branches: - master - - legacy-sampsharp-migration - release/0.* paths: - .github/workflows/plugin-legacy-win32.yml