Skip to content

Releases: ikkentim/SampSharp

SampSharp 1.0.0-prerelease2

Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 May 19:08
1d40d9e

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 IConfiguration abstraction was added
  • Fixed player gang zones being visible to other players
  • Fixed various use-after-free crashes
  • (breaking) IConfiguration was 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.OpenMp template 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

1.0.0-prerelease1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 May 18:50
b1bb796

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:

Join us on Discord

0.11.1

Choose a tag to compare

@ikkentim ikkentim released this 02 Mar 16:24

SampSharp.Core

  • Fixed an error which occurs when a callback has an empty string as argument (#450)

No changes were made in the plugin.

0.11.0

Choose a tag to compare

@ikkentim ikkentim released this 01 Mar 22:32
b3c3861

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 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)

SampSharp.GameMode

  • Added VehicleModelInfo.VehicleModelInfo
  • Fixed missing Flatbed in VehicleModelInfo (#407)

0.10.1

Choose a tag to compare

@ikkentim ikkentim released this 10 Apr 19:53

SampSharp.Core

  • Fixed a possible crash when calling natives which return a string

0.10.0

Choose a tag to compare

@ikkentim ikkentim released this 29 Mar 19:45

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_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 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.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.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

SampSharp.GameMode

  • Added BasePlayer.CancelEdit (#362)
  • Added BasePlayer.SetMapIcon and BasePlayer.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.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

0.10.0-alpha2 Pre-release
Pre-release

Choose a tag to compare

@ikkentim ikkentim released this 25 Mar 21:29

SampSharp plugin

  • Added coreclr detection based on SAMPSHARP_RUNTIME environment 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

0.10.0-alpha1 Pre-release
Pre-release

Choose a tag to compare

@ikkentim ikkentim released this 11 Mar 19:52

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=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 CallRemoteFunction 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 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.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

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)

SampSharp.GameMode

  • 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.3

Choose a tag to compare

@ikkentim-bot ikkentim-bot released this 07 Feb 18:35

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

Choose a tag to compare

@ikkentim-bot ikkentim-bot released this 06 Feb 12:08
d381cc1

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