1- using Exiled . Events . EventArgs . Player ;
1+ using Exiled . API . Enums ;
2+ using Exiled . API . Extensions ;
3+ using Exiled . API . Features ;
4+ using Exiled . Events . EventArgs . Item ;
5+ using Exiled . Events . EventArgs . Player ;
6+ using PlayerRoles . PlayableScps . Scp079 . Cameras ;
27using SecretAPI . Features . UserSettings ;
3- using SillySCP . API . Features ;
48using SillySCP . API . Interfaces ;
59using SillySCP . API . Modules ;
10+ using SillySCP . API . Settings ;
11+ using UnityEngine ;
612using UserSettings . ServerSpecific ;
13+ using Camera = Exiled . API . Features . Camera ;
714
815namespace SillySCP . Handlers
916{
@@ -14,12 +21,51 @@ public void Init()
1421 Exiled . Events . Handlers . Player . Verified += OnVerified ;
1522 ServerSpecificSettingsSync . ServerOnSettingValueReceived += SettingRecieved ;
1623
17- CustomSetting . Register ( new ExclusiveColorSetting ( ) , new StruggleSetting ( ) ) ;
24+ CustomSetting . Register ( new ExclusiveColorSetting ( ) , new StruggleSetting ( ) , new JailbirdSetting ( ) ) ;
25+
26+ // jailbird handler
27+
28+ Exiled . Events . Handlers . Item . Swinging += OnJailbirdSwing ;
29+
30+ string sillyAudiosLocation = Path . Combine ( Paths . Configs , "Silly Audios" ) ;
31+
32+ AudioClipStorage . LoadClip ( Path . Combine ( sillyAudiosLocation , "kali 1.ogg" ) , "meow 1" ) ;
33+ AudioClipStorage . LoadClip ( Path . Combine ( sillyAudiosLocation , "kali 2.ogg" ) , "meow 2" ) ;
34+ AudioClipStorage . LoadClip ( Path . Combine ( sillyAudiosLocation , "cyn 1.ogg" ) , "meow 3" ) ;
35+ AudioClipStorage . LoadClip ( Path . Combine ( sillyAudiosLocation , "cyn 2.ogg" ) , "meow 4" ) ;
1836 }
1937
2038 public void Unregister ( )
2139 {
2240 Exiled . Events . Handlers . Player . Verified -= OnVerified ;
41+
42+ Exiled . Events . Handlers . Item . Swinging -= OnJailbirdSwing ;
43+ }
44+
45+ private void OnJailbirdEvent ( Exiled . API . Features . Player player )
46+ {
47+ AudioPlayer audioPlayer = AudioPlayer . CreateOrGet ( $ "Jailbird { player . Nickname } ",
48+ condition : hub =>
49+ {
50+ LabApi . Features . Wrappers . Player plr = LabApi . Features . Wrappers . Player . Get ( hub ) ;
51+ if ( plr == null ) return true ;
52+ JailbirdSetting setting = CustomSetting . GetPlayerSetting < JailbirdSetting > ( JailbirdSetting . SettingId , plr ) ;
53+ return setting == null || setting . IsOptionA ;
54+ } ,
55+ onIntialCreation : p =>
56+ {
57+ p . transform . parent = player . Transform ;
58+ Speaker speaker = p . AddSpeaker ( "Jailbird Speaker" , isSpatial : true , minDistance : 5f , maxDistance : 15f ) ;
59+ speaker . transform . parent = player . Transform ;
60+ speaker . transform . localPosition = Vector3 . zero ;
61+ }
62+ ) ;
63+ audioPlayer . AddClip ( AudioClipStorage . AudioClips . Values . GetRandomValue ( data => data . Name . Contains ( "meow" ) ) . Name , 3 ) ;
64+ }
65+
66+ private void OnJailbirdSwing ( SwingingEventArgs ev )
67+ {
68+ OnJailbirdEvent ( ev . Player ) ;
2369 }
2470
2571 private void OnVerified ( VerifiedEventArgs ev )
0 commit comments