Skip to content

Commit 8f9549c

Browse files
Fix CanCraft option
1 parent 747e14e commit 8f9549c

File tree

2 files changed

+24
-34
lines changed

2 files changed

+24
-34
lines changed

BlacklistedItems/BlacklistedItems.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<TargetFramework>net48</TargetFramework>
55
<LangVersion>latest</LangVersion>
6-
<Version>1.0.0</Version>
6+
<Version>1.0.1</Version>
77
<RootNamespace>RestoreMonarchy.BlacklistedItems</RootNamespace>
88
</PropertyGroup>
99

BlacklistedItems/BlacklistedItemsPlugin.cs

Lines changed: 23 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)