29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
|
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);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|