Repository navigation
Releases: ikkentim/SampSharp
Release list
SampSharp 1.0.0-prerelease2
This release solves a number of bugs and crashes.
Most notable changes:
- The EntryPoint you'll have added manually in 1.0.0-prerelease1 can be removed
- Added support for a number of nullable parameter types in command parameters, such as
int?,float?, etc. - Support for the
IConfigurationabstraction was added - Fixed player gang zones being visible to other players
- Fixed various use-after-free crashes
- (breaking)
IConfigurationwas added as 2nd paramter in the ConfigureServices function
For a full list of changes, see the commit log.
public class Startup : IEcsStartup
{
public void Initialize(IStartupContext context)
{
context.UseEntities().UseCommands();
}
public void ConfigureServices(IServiceCollection services, IConfiguration configuration) // <-- the 2nd parameter was added
{
}
public void Configure(IEcsBuilder builder)
{
}
}What's Changed
- Ensure release package includes Windows SampSharp.pdb artifact by @Copilot in #571
- Pack SampSharp analyzer packages as Roslyn analyzers (not regular libs) by @Copilot in #570
- Improve configurations for workflows and IDE by @ikkentim in #572
- Improves devcontainer by @ikkentim in #573
- Add Nullable support to command parameter parser selection by @Copilot in #575
- Fix typo in 'unknown error' message in managed-host.cpp by @ikkentim in #576
- Added IConfiguration to ECS by @ikkentim in #577
- Fix launchSettings arguments for paths containing spaces by @NeekoGta in #578
- Add launch instructions for VS Code by @ikkentim in #579
- Bind configuration section 'Logger' to logger, added mapping options for LogLevel by @ikkentim in #581
- Adjust logger namespaces by @ikkentim in #584
- Fix
SampSharp.EcsGameMode.OpenMptemplate startup signature and remove redundant usings by @Copilot in #583 - Make per player pickups/gang zones methods specific to owner by @ikkentim in #585
- Get environment from standard environment variable names by @ikkentim in #586
- Cleanup the test mode a little bit by @ikkentim in #587
- Improve test coverage and fix found bugs by @ikkentim in #588
- Fix use-after-free bugs in components by @ikkentim in #589
- Update branding to 1.0.0-prerelease2 by @ikkentim in #590
New Contributors
Full Changelog: 1.0.0-prerelease1...1.0.0-prerelease2
1.0.0-prerelease1
This is a complete rewrite of the framework for open.mp (64-bit) and .NET 10.
What's new:
- Full open.mp support with direct access to the open.mp API
- Support for the .NET 10 runtime and future x64 runtime versions
- SampSharp 0.x will no longer receive major upgrades or features
Since this is a prerelease, expect crashes and bugs. Please report any issues on GitHub (https://github.com/ikkentim/sampsharp/issues) or via #sampsharp-prerelease.
Documentation is being finalized and can be found at https://sampsharp.net. If you find any issues or mistakes in the documentation, please create an issue on https://github.com/sampsharp/docs/issues
Questions about the prerelease or how to use it? Ask in #sampsharp-prerelease.
Find us on Discord:
0.11.1
0.11.0
SampSharp 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
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.Entities
- Added
AddComponentmethod 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
OnPlayerDisconnectevent - Fixed an issue where an error may occur when
OnDialogResponseis called without an active dialog (#443)
SampSharp.GameMode
- Added
VehicleModelInfo.VehicleModelInfo - Fixed missing Flatbed in
VehicleModelInfo(#407)
0.10.1
0.10.0
SampSharp 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_RUNTIMEenvironment variable - Changed hosted mode to be the default, multi-process mode can be enabled with the
use_multi_process_mode=1server setting - Fixed a possible server crash when a callback is handled with an unexpected parameter count
- Fixed a possible server crash when calling the
CallRemoveFunctionnative (#363) - Codepage files are no longer provided in the plugin release package. Codepages are available as embedded resources in SampSharp.Core via the
GameModeBuilder.UseEncodingCodePagemethod. The codepage files are available in the codepages repository if you still need these files for some reason.
SampSharp.Core
- 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.ReferenceIndiceswhich 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.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
OnDestroyComponentnot 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
nullbutton2 text (#376) - Fixed components not being removed from global component registry when destroying an entity
SampSharp.GameMode
- Added
BasePlayer.CancelEdit(#362) - Added
BasePlayer.SetMapIconandBasePlayer.RemoveMapIcon(#364) - Added
ListDialog<T>(#383, #395) - Updated to .NET Standard 2.1
- Updated documentation links from SA-MP wiki to open.mp docs
- Fixed
PlayerTextLabel.Text,PlayerTextLabel.AttachedPlayerandPlayerTextLabel.AttachedVehiclenot 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.IsNPCnot returningtruewhen the NPC has not yet connected (#346) - Fixed typo in
Server.GetWeaponNameresult forWeapon.ThermalGoggles(#380) - Fixed a problem which caused successive calls to
ShowAsyncnot to show the dialog (#384, #389)
0.10.0-alpha2
SampSharp plugin
- Added coreclr detection based on
SAMPSHARP_RUNTIMEenvironment variable
SampSharp.Core
- Fixed HostedGameModeClient.ServerPath not returning correct path
SampSharp.Entities
- Fixed components not being removed from global component registry when destroying an entity
SampSharp.GameMode
0.10.0-alpha1
SampSharp plugin
- 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=1server setting - Fixed a possible server crash when a callback is handled with an unexpected parameter count
- Fixed a possible server crash when calling the
CallRemoteFunctionnative (#363) - Codepage files are no longer provided in the plugin release package. Codepages are available as embedded resources in SampSharp.Core via the
GameModeBuilder.UseEncodingCodePagemethod. The codepage files are available in the codepages repository if you still need these files for some reason.
SampSharp.Core
- 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.ReferenceIndiceswhich 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
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
OnDestroyComponentnot 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
nullbutton2 text (#376)
SampSharp.GameMode
- Added
BasePlayer.CancelEdit(#362) - Added
BasePlayer.SetMapIconandBasePlayer.RemoveMapIcon(#364) - Updated to .NET Standard 2.1
- Updated documentation links from SA-MP wiki to open.mp docs
- Fixed
PlayerTextLabel.Text,PlayerTextLabel.AttachedPlayerandPlayerTextLabel.AttachedVehiclenot 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.IsNPCnot returningtruewhen the NPC has not yet connected (#346) - Fixed typo in
Server.GetWeaponNameresult forWeapon.ThermalGoggles(#380) - Fixed a problem which caused successive calls to
ShowAsyncnot to show the dialog (#384, #389)
0.9.3
SampSharp.Entities
- Fixed player- textdraws, labels and objects not working as intended
note: no changes were made to the SampSharp plugin for 0.9.3
0.9.2
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
note: no changes were made to the SampSharp plugin for 0.9.2
