add public CS2EventHandler? GetEventHandlerForEvent(CS2Event cs2Event)

This commit is contained in:
glax 2024-01-17 20:26:32 +01:00
parent 996255b490
commit 316cc815b5
2 changed files with 36 additions and 87 deletions

View File

@ -56,93 +56,42 @@ public class CS2GSI
private void InvokeEvent(ValueTuple<CS2Event, CS2EventArgs> cs2Event) private void InvokeEvent(ValueTuple<CS2Event, CS2EventArgs> cs2Event)
{ {
switch (cs2Event.Item1) GetEventHandlerForEvent(cs2Event.Item1)?.Invoke(cs2Event.Item2);
}
public CS2EventHandler? GetEventHandlerForEvent(CS2Event cs2Event)
{
return cs2Event switch
{ {
case CS2Event.OnKill: CS2Event.OnKill => this.OnKill,
OnKill?.Invoke(cs2Event.Item2); CS2Event.OnHeadshot => this.OnHeadshot,
break; CS2Event.OnDeath => this.OnDeath,
case CS2Event.OnHeadshot: CS2Event.OnFlashed => this.OnFlashed,
OnHeadshot?.Invoke(cs2Event.Item2); CS2Event.OnBurning => this.OnBurning,
break; CS2Event.OnSmoked => this.OnSmoked,
case CS2Event.OnDeath: CS2Event.OnRoundStart => this.OnRoundStart,
OnDeath?.Invoke(cs2Event.Item2); CS2Event.OnRoundOver => this.OnRoundOver,
break; CS2Event.OnRoundWin => this.OnRoundWin,
case CS2Event.OnFlashed: CS2Event.OnRoundLoss => this.OnRoundLoss,
OnFlashed?.Invoke(cs2Event.Item2); CS2Event.OnDamageTaken => this.OnDamageTaken,
break; CS2Event.OnMatchStart => this.OnMatchStart,
case CS2Event.OnBurning: CS2Event.OnMatchOver => this.OnMatchOver,
OnBurning?.Invoke(cs2Event.Item2); CS2Event.OnMoneyChange => this.OnMoneyChange,
break; CS2Event.OnHealthChange => this.OnHealthChange,
case CS2Event.OnSmoked: CS2Event.OnArmorChange => this.OnArmorChange,
OnSmoked?.Invoke(cs2Event.Item2); CS2Event.OnHelmetChange => this.OnHelmetChange,
break; CS2Event.OnEquipmentValueChange => this.OnEquipmentValueChange,
case CS2Event.OnRoundStart: CS2Event.OnTeamChange => this.OnTeamChange,
OnRoundStart?.Invoke(cs2Event.Item2); CS2Event.OnPlayerChange => this.OnPlayerChange,
break; CS2Event.OnHalfTime => this.OnHalfTime,
case CS2Event.OnRoundOver: CS2Event.OnFreezeTime => this.OnFreezeTime,
OnRoundOver?.Invoke(cs2Event.Item2); CS2Event.OnBombPlanted => this.OnBombPlanted,
break; CS2Event.OnBombDefused => this.OnBombDefused,
case CS2Event.OnRoundWin: CS2Event.OnBombExploded => this.OnBombExploded,
OnRoundWin?.Invoke(cs2Event.Item2); CS2Event.AnyEvent => this.AnyEvent,
break; CS2Event.AnyMessage => this.AnyMessage,
case CS2Event.OnRoundLoss: _ => throw new ArgumentException("Unknown Event", nameof(cs2Event))
OnRoundLoss?.Invoke(cs2Event.Item2); };
break;
case CS2Event.OnDamageTaken:
OnDamageTaken?.Invoke(cs2Event.Item2);
break;
case CS2Event.OnMatchStart:
OnMatchStart?.Invoke(cs2Event.Item2);
break;
case CS2Event.OnMatchOver:
OnMatchOver?.Invoke(cs2Event.Item2);
break;
case CS2Event.OnMoneyChange:
OnMoneyChange?.Invoke(cs2Event.Item2);
break;
case CS2Event.OnHealthChange:
OnHealthChange?.Invoke(cs2Event.Item2);
break;
case CS2Event.OnArmorChange:
OnArmorChange?.Invoke(cs2Event.Item2);
break;
case CS2Event.OnHelmetChange:
OnHelmetChange?.Invoke(cs2Event.Item2);
break;
case CS2Event.OnEquipmentValueChange:
OnEquipmentValueChange?.Invoke(cs2Event.Item2);
break;
case CS2Event.OnTeamChange:
OnTeamChange?.Invoke(cs2Event.Item2);
break;
case CS2Event.OnPlayerChange:
OnPlayerChange?.Invoke(cs2Event.Item2);
break;
case CS2Event.OnFreezeTime:
OnFreezeTime?.Invoke(cs2Event.Item2);
break;
case CS2Event.OnHalfTime:
OnHalfTime?.Invoke(cs2Event.Item2);
break;
case CS2Event.OnBombDefused:
OnBombDefused?.Invoke(cs2Event.Item2);
break;
case CS2Event.OnBombExploded:
OnBombExploded?.Invoke(cs2Event.Item2);
break;
case CS2Event.OnBombPlanted:
OnBombPlanted?.Invoke(cs2Event.Item2);
break;
case CS2Event.AnyEvent:
AnyEvent?.Invoke(cs2Event.Item2);
break;
case CS2Event.AnyMessage:
AnyMessage?.Invoke(cs2Event.Item2);
break;
default:
this._logger?.Log(LogLevel.Error, $"Unknown Event {cs2Event}");
return;
}
} }
public enum CS2Event { public enum CS2Event {

View File

@ -4,7 +4,7 @@
<TargetFramework>net7.0</TargetFramework> <TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<Version>1.0.5</Version> <Version>1.0.6</Version>
<Title>CS2GSI</Title> <Title>CS2GSI</Title>
<Authors>Glax</Authors> <Authors>Glax</Authors>
<RepositoryUrl>https://github.com/C9Glax/CS2GSI</RepositoryUrl> <RepositoryUrl>https://github.com/C9Glax/CS2GSI</RepositoryUrl>