@@ -33,7 +33,7 @@ protected override void Load()
3333 MessageColor = UnturnedChat . GetColorFromName ( Configuration . Instance . MessageColor , Color . green ) ;
3434 ItemManager . onServerSpawningItemDrop += OnServerSpawningItemDrop ;
3535 ItemManager . onTakeItemRequested += OnTakeItemRequested ;
36- PlayerCrafting . onCraftBlueprintRequested += OnCraftBlueprintRequested ;
36+ PlayerCrafting . OnCraftBlueprintRequestedV2 += OnCraftingBlueprintRequested ;
3737
3838 Logger . Log ( $ "{ Name } { Assembly . GetName ( ) . Version } has been loadded!", ConsoleColor . Yellow ) ;
3939 }
@@ -42,11 +42,32 @@ protected override void Unload()
4242 {
4343 ItemManager . onServerSpawningItemDrop -= OnServerSpawningItemDrop ;
4444 ItemManager . onTakeItemRequested -= OnTakeItemRequested ;
45- PlayerCrafting . onCraftBlueprintRequested -= OnCraftBlueprintRequested ;
45+ PlayerCrafting . OnCraftBlueprintRequestedV2 -= OnCraftingBlueprintRequested ;
4646
4747 Logger . Log ( $ "{ Name } has been unloaded!", ConsoleColor . Yellow ) ;
4848 }
4949
50+ private void OnCraftingBlueprintRequested ( PlayerCrafting crafting , ref Blueprint blueprint , ref bool shouldAllow )
51+ {
52+ UnturnedPlayer untPlayer = UnturnedPlayer . FromPlayer ( crafting . player ) ;
53+ if ( HasBypassPermission ( untPlayer ) )
54+ {
55+ return ;
56+ }
57+
58+ IEnumerable < BlacklistItem > blacklistItems = Configuration . Instance . BlacklistItems . Where ( x => ! x . CanCraft ) ;
59+ foreach ( BlueprintOutput output in blueprint . outputs )
60+ {
61+ ItemAsset outputItemAsset = output . FindItemAsset ( ) ;
62+ if ( blacklistItems . Any ( x => x . ItemId == outputItemAsset . id ) )
63+ {
64+ shouldAllow = false ;
65+ UnturnedChat . Say ( untPlayer , Translate ( "CantBeCrafted" , outputItemAsset . itemName ) , MessageColor ) ;
66+ return ;
67+ }
68+ }
69+ }
70+
5071 internal bool HasBypassPermission ( UnturnedPlayer player )
5172 {
5273 if ( ! Configuration . Instance . EnableBypassPermission )
@@ -85,37 +106,6 @@ private void OnServerSpawningItemDrop(Item item, ref Vector3 location, ref bool
85106 }
86107 }
87108
88- private void OnCraftBlueprintRequested ( PlayerCrafting crafting , ref ushort itemID , ref byte blueprintIndex , ref bool shouldAllow )
89- {
90- UnturnedPlayer untPlayer = UnturnedPlayer . FromPlayer ( crafting . player ) ;
91-
92- if ( HasBypassPermission ( untPlayer ) )
93- {
94- return ;
95- }
96-
97- ItemAsset asset = Assets . find ( EAssetType . ITEM , itemID ) as ItemAsset ;
98- BlueprintOutput [ ] ouputs = asset . blueprints [ blueprintIndex ] . outputs ;
99-
100- IEnumerable < BlacklistItem > blacklistItems = Configuration . Instance . BlacklistItems . Where ( x => ! x . CanCraft ) ;
101-
102- foreach ( BlueprintOutput output in ouputs )
103- {
104- if ( blacklistItems . Any ( x => x . ItemId == output . id ) )
105- {
106- shouldAllow = false ;
107-
108- ItemAsset asset2 = Assets . find ( EAssetType . ITEM , itemID ) as ItemAsset ;
109- if ( asset2 != null )
110- {
111- UnturnedChat . Say ( untPlayer , Translate ( "CantBeCrafted" , asset2 . itemName ) , MessageColor ) ;
112- }
113-
114- return ;
115- }
116- }
117- }
118-
119109 public override TranslationList DefaultTranslations => new TranslationList ( )
120110 {
121111 { "CantBeCrafted" , "{0} can't be crafted!" } ,
0 commit comments