1
- local function safeSendToReceivers (entity , netName )
1
+ local function safeSendToReceivers (entity )
2
2
if entity .receivers and # entity .receivers > 0 then net .Send (entity .receivers ) end
3
3
end
4
4
@@ -49,6 +49,11 @@ function ENT:setWelcomeMessage(value)
49
49
end
50
50
51
51
function ENT :setStock (itemType , value )
52
+ if not lia .item .list [itemType ] then
53
+ print (" [Vendor] Warning: Cannot set stock for non-existent item '" .. itemType .. " '" )
54
+ return
55
+ end
56
+
52
57
self .items [itemType ] = self .items [itemType ] or {}
53
58
if not self .items [itemType ][VENDOR_MAXSTOCK ] then self :setMaxStock (itemType , value ) end
54
59
self .items [itemType ][VENDOR_STOCK ] = math .Clamp (value , 0 , self .items [itemType ][VENDOR_MAXSTOCK ])
@@ -59,12 +64,22 @@ function ENT:setStock(itemType, value)
59
64
end
60
65
61
66
function ENT :addStock (itemType , value )
67
+ if not lia .item .list [itemType ] then
68
+ print (" [Vendor] Warning: Cannot add stock for non-existent item '" .. itemType .. " '" )
69
+ return
70
+ end
71
+
62
72
local current = self :getStock (itemType )
63
73
if not current then return end
64
74
self :setStock (itemType , self :getStock (itemType ) + (value or 1 ))
65
75
end
66
76
67
77
function ENT :takeStock (itemType , value )
78
+ if not lia .item .list [itemType ] then
79
+ print (" [Vendor] Warning: Cannot take stock for non-existent item '" .. itemType .. " '" )
80
+ return
81
+ end
82
+
68
83
if not self .items [itemType ] or not self .items [itemType ][VENDOR_MAXSTOCK ] then return end
69
84
self :addStock (itemType , - (value or 1 ))
70
85
end
@@ -133,6 +148,11 @@ function ENT:setName(name)
133
148
end
134
149
135
150
function ENT :setTradeMode (itemType , mode )
151
+ if not lia .item .list [itemType ] then
152
+ print (" [Vendor] Warning: Cannot set trade mode for non-existent item '" .. itemType .. " '" )
153
+ return
154
+ end
155
+
136
156
if not ALLOWED_MODES [mode ] then mode = nil end
137
157
self .items [itemType ] = self .items [itemType ] or {}
138
158
self .items [itemType ][VENDOR_MODE ] = mode
@@ -143,6 +163,11 @@ function ENT:setTradeMode(itemType, mode)
143
163
end
144
164
145
165
function ENT :setItemPrice (itemType , value )
166
+ if not lia .item .list [itemType ] then
167
+ print (" [Vendor] Warning: Cannot set price for non-existent item '" .. itemType .. " '" )
168
+ return
169
+ end
170
+
146
171
if not isnumber (value ) or value < 0 then value = nil end
147
172
self .items [itemType ] = self .items [itemType ] or {}
148
173
self .items [itemType ][VENDOR_PRICE ] = value
@@ -153,6 +178,11 @@ function ENT:setItemPrice(itemType, value)
153
178
end
154
179
155
180
function ENT :setItemStock (itemType , value )
181
+ if not lia .item .list [itemType ] then
182
+ print (" [Vendor] Warning: Cannot set stock for non-existent item '" .. itemType .. " '" )
183
+ return
184
+ end
185
+
156
186
if not isnumber (value ) or value < 0 then value = nil end
157
187
self .items [itemType ] = self .items [itemType ] or {}
158
188
self .items [itemType ][VENDOR_STOCK ] = value
@@ -163,6 +193,11 @@ function ENT:setItemStock(itemType, value)
163
193
end
164
194
165
195
function ENT :setItemMaxStock (itemType , value )
196
+ if not lia .item .list [itemType ] then
197
+ print (" [Vendor] Warning: Cannot set max stock for non-existent item '" .. itemType .. " '" )
198
+ return
199
+ end
200
+
166
201
if not isnumber (value ) or value < 0 then value = nil end
167
202
self .items [itemType ] = self .items [itemType ] or {}
168
203
self .items [itemType ][VENDOR_MAXSTOCK ] = value
@@ -235,10 +270,14 @@ function ENT:applyPreset(name)
235
270
if not preset then return end
236
271
self .items = {}
237
272
for itemType , data in pairs (preset ) do
238
- if data .mode ~= nil then self :setTradeMode (itemType , data .mode ) end
239
- if data .price ~= nil then self :setItemPrice (itemType , data .price ) end
240
- if data .maxStock ~= nil then self :setMaxStock (itemType , data .maxStock ) end
241
- if data .stock ~= nil then self :setStock (itemType , data .stock ) end
273
+ if lia .item .list [itemType ] then
274
+ if data .mode ~= nil then self :setTradeMode (itemType , data .mode ) end
275
+ if data .price ~= nil then self :setItemPrice (itemType , data .price ) end
276
+ if data .maxStock ~= nil then self :setMaxStock (itemType , data .maxStock ) end
277
+ if data .stock ~= nil then self :setStock (itemType , data .stock ) end
278
+ else
279
+ print (" [Vendor] Warning: Skipping invalid item '" .. itemType .. " ' when applying preset '" .. name .. " ' to vendor." )
280
+ end
242
281
end
243
282
244
283
if self .receivers then
0 commit comments