-
Notifications
You must be signed in to change notification settings - Fork 0
/
ShopGuiPlus-Addon.Lua
67 lines (55 loc) · 1.93 KB
/
ShopGuiPlus-Addon.Lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import 'net.brcdev.shopgui.shop.ShopManager'
import 'net.brcdev.shopgui.shop.item.ShopItem'
name = "ShopGuiPlus-Addon"
version = "1.0.2"
author = "Dragon"
description = {"This addon will add", "Support for ShopGuiPlus boosting"}
local TYPE = "Sell"
local NAMESPACE = "SHOPGUIPLUS"
Shop_Category_Restriction = {
enabled = false,
categories = {"blocks", "armor", "food"} -- list the shop categories to apply boost to
}
Shop_Item_Restriction = {
enabled = false,
items = { -- list the shop items to apply boost to. Format: 'category:id...'
"blocks:1,4,5,9,10", "ores:3,5"}
}
utils.subscribeToEvent("net.brcdev.shopgui.event.ShopPreTransactionEvent", function(event)
if event:getShopAction() == ShopManager.ShopAction.BUY then
return
end
local amount = event:getPrice()
if amount <= 0 then
return
end
local multi = boosterUtils.getMulti(event:getPlayer():getPlayer(), TYPE, NAMESPACE)
if multi > 0 and canBoost(event) then
event:setPrice(boosterUtils.calculateAmount(amount, multi))
end
end)
function canBoost(event)
if not Shop_Item_Restriction.enabled and not Shop_Category_Restriction.enabled then
return true
end
if Shop_Category_Restriction.enabled then
for _, category in ipairs(Shop_Category_Restriction.categories) do
if category == event.shopItem.shop.id then
return true
end
end
end
if Shop_Item_Restriction.enabled then
for _, item in ipairs(Shop_Item_Restriction.items) do
local category, ids = item:match("([^:]+):(.+)")
if category == event.shopItem.shop.id then
for id in ids:gmatch("%d+") do
if id == event.shopItem.id then
return true
end
end
end
end
end
return false
end