An OpenMod / Unturned plugin which implements additional events and allows developers to easily implement their own events interface. Created primarily for developers use.
Run this command: openmod install OMD.Events
You can implement you custom handler classes by inheriting from OMD.Events.Models.EventsHandler
Here's an example on how to do so:
using OMD.Events.Models;
using OMD.Events.Services;
using SDG.Unturned;
using OpenMod.Unturned.Players;
using Action = System.Action;
namespace Your.Namespace;
internal sealed class YourCustomEventsHandler : EventsHandler
{
private static event Action? SomeEventFromPatching;
// Make sure you implement a constructor with IEventsService parameter and pass it to the base constructor
internal YourCustomEventsHandler(IEventsService eventsService) : base(eventsService) { }
public override void Subscribe()
{
// Subscribe to events you want
SomeClass.SomeEvent += Events_Handler;
SomeEventFromPatching += Events_PatchingHandler;
}
public override void Unsubscribe()
{
// Make sure you unsubscribe from them
SomeClass.SomeEvent -= Events_Handler;
SomeEventFromPatching -= Events_PatchingHandler;
}
private void Events_Handler(Player player)
{
UnturnedPlayer unturnedPlayer = GetUnturnedPlayer(player); // get UnturnedPlayer instance from SDG.Unturned.Player one
YourCustomEvent @event = new YourCustomEvent(unturnedPlayer);
Emit(@event); // emit your event and handle it whereever you want
}
private void Events_PatchingHandler()
{
// Same idea as in Events_Handler method
}
// You can also use harmony patches
// OpenMod will patch it automatically, if YourCustomEventsHandler is declared in plugin assembly
[HarmonyPatch(typeof(TargetTypeToPatch))]
private static class YourPatch
{
[HarmonyPrefix]
[HarmonyPatch("TargetMethod")]
private static void YourPrefix()
{
SomeEventFromPatching?.Invoke();
}
}
}
internal sealed class YourCustomEventListener : IEventListener<YourCustomEvent>
{
// Now you can easily handle your event using OpenMod's event listeners
// https://openmod.github.io/openmod-docs/devdoc/concepts/events.html
}
OMD.Events plugin will scan through all types in every loaded plugin. And call Subscribe()
and Unsubscribe()
, so you can focus on creating your plugin.
UnturnedPlayerChangedFiremodeEvent
fired when player changed his weapons fire modeUnturnedPlayer Player
- player's instanceUseableGun Gun
- weapon which player is holdingEFireMode Firemode
- new weapons fire mode
UnturnedPlayerChangedMagazineEvent
fired when player changed his weapons magazineUnturnedPlayer Player
- player's instanceUseableGun Gun
- weapon which player is holdingItemJar ItemJar
- item jar of new weapons magazine
UnturnedPlayerInspectingWeaponEvent
fired when player start to inspect his weaponUnturnedPlayer Player
- player's instanceUseableGun Gun
- weapon which player is holding
UnturnedPlayerSpawnedBulletEvent
- fired when player shoot from his weaponUnturnedPlayer Player
- player's instanceUseableGun Gun
- weapon which player is holdingBulletInfo BulletInfo
- information about the fired bullet
UnturnedPlayerUseableConsumedEvent
fired when player ate, drank or used any medicine on himself or other playerUnturnedPlayer Player
- instigator's instanceUnturnedPlayer Target
- instance of player on whom useable has been usedItemConsumeableAsset Asset
- asset info of useable which has been used
UnturnedPlayerUseableConsumingEvent
fired before player ate, drank or used any medicine on himself or other playerUnturnedPlayer Player
- instigator's instanceUnturnedPlayer Target
- instance of player on whom useable is going to be usedItemConsumeableAsset Asset
- asset info of useable which is going to be usedbool IsCancelled
- property, which defines, does the execution of consuming is going to be terminated
OMD.Events.Permissions | Works only with rocketmodIntegration:permissionSystem
set to OpenMod
in openmod.unturned.yaml
| Might change it in future
UnturnedPlayerPermissionAddedEvent
fired when player got a permissionUnturnedPlayer Player
- player's instancestring Permission
- permission which has been granted
UnturnedPlayerPermissionRemovedEvent
fired when player's permission has been taken awayUnturnedPlayer Player
- player's instancestring Permission
- permission which has been taken away
UnturnedPlayerNPCEventTriggeredEvent
fired when player triggered NPC eventUnturnedPlayer Player
- player's instancestring EventId
- Id of triggered event