ds4/src/module/hooks/hotbar-drop.ts

29 lines
1.1 KiB
TypeScript
Raw Normal View History

import { DS4Item } from "../item/item";
import { DS4ItemData } from "../item/item-data";
import { createItemMacro } from "../macros/item-macro";
import notifications from "../ui/notifications";
export default function registerHotbarHook(): void {
Hooks.on("hotbarDrop", async (hotbar: Hotbar, data: { type: string } & Record<string, unknown>, slot: string) => {
switch (data.type) {
case "Item": {
if (!("data" in data)) {
return notifications.warn(game.i18n.localize("DS4.WarningMacrosCanOnlyBeCreatedForOwnedItems"));
}
const itemData = data.data as DS4ItemData;
if (!DS4Item.rollableItemTypes.includes(itemData.type)) {
return notifications.warn(
game.i18n.format("DS4.WarningItemIsNotRollable", {
name: itemData.name,
id: itemData._id,
type: itemData.type,
}),
);
}
await createItemMacro(itemData, slot);
}
}
});
}