2024-05-07 13:12:03 -07:00
2024-05-02 18:34:49 -07:00
local QBCore = exports [ 'qb-core' ]: GetCoreObject ()
2023-12-07 15:45:48 -08:00
GlobalState.WeedPlant = Config.WeedPlant
Citizen.CreateThread ( function ()
for _ , v in pairs ( Config.WeedPlant ) do
v.taken = false
end
end )
function WeedCooldown ( loc )
CreateThread ( function ()
Wait ( Config.respawnTime * 1000 )
Config.WeedPlant [ loc ]. taken = false
GlobalState.WeedPlant = Config.WeedPlant
Wait ( 1000 )
TriggerClientEvent ( 'weed:respawnCane' , - 1 , loc )
2024-07-16 14:14:48 -07:00
Log ( 'Weed Plant Respawned At ' .. Config.WeedPlant [ loc ]. location , 'weed' )
2023-12-07 15:45:48 -08:00
end )
end
RegisterNetEvent ( "weed:pickupCane" )
AddEventHandler ( "weed:pickupCane" , function ( loc )
2024-05-02 18:34:49 -07:00
local playerPed = GetPlayerPed ( source )
if CheckDist ( source , playerPed , Config.WeedPlant [ loc ]. location ) then return end
2023-12-07 15:45:48 -08:00
if not Config.WeedPlant [ loc ]. taken then
Config.WeedPlant [ loc ]. taken = true
GlobalState.WeedPlant = Config.WeedPlant
TriggerClientEvent ( "weed:removeCane" , - 1 , loc )
WeedCooldown ( loc )
local Player = QBCore.Functions . GetPlayer ( source )
2024-05-02 18:34:49 -07:00
AddItem ( 'wetcannabis' , 1 )
2024-07-16 14:14:48 -07:00
Log ( Player.PlayerData . charinfo.firstname .. ' ' .. Player.PlayerData . charinfo.lastname .. ' Picked Weed With a distance of ' .. dist ( source , playerPed , Config.WeedPlant [ loc ]. location ) .. ' vectors' , 'weed' )
2023-12-07 15:45:48 -08:00
end
end )
--------------- events
RegisterServerEvent ( 'md-drugs:server:dryoutweed' , function ()
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
2024-05-02 18:34:49 -07:00
if RemoveItem ( "wetcannabis" , 1 ) then
AddItem ( "drycannabis" , 1 )
2024-07-16 14:14:48 -07:00
Log ( Player.PlayerData . charinfo.firstname .. ' ' .. Player.PlayerData . charinfo.lastname .. ' Dried Weed' , 'weed' )
2024-05-02 18:34:49 -07:00
else
Notifys ( Lang.Weed . nodry , "error" )
2023-12-07 15:45:48 -08:00
end
end )
RegisterServerEvent ( 'md-drugs:server:makebutter' , function ()
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
2024-05-07 13:12:03 -07:00
local recipe = { 'mdbutter' , 'grindedweed' }
local have = 0
for k , v in pairs ( recipe ) do
if Itemcheck ( Player , v , 1 , 'true' ) then have = have + 1 end
end
if have == 2 then
2024-05-02 18:34:49 -07:00
RemoveItem ( 'mdbutter' , 1 )
RemoveItem ( 'grindedweed' , 1 )
AddItem ( 'cannabutter' , 1 )
2024-07-16 14:14:48 -07:00
Log ( Player.PlayerData . charinfo.firstname .. ' ' .. Player.PlayerData . charinfo.lastname .. ' Made Canna Butter ' , 'weed' )
2024-05-07 13:12:03 -07:00
end
2023-12-07 15:45:48 -08:00
end )
RegisterServerEvent ( 'md-drugs:server:makebrownies' , function ()
2024-05-02 18:34:49 -07:00
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
2024-05-07 13:12:03 -07:00
local recipe = { 'cannabutter' , 'flour' , 'chocolate' }
local have = 0
for k , v in pairs ( recipe ) do
if Itemcheck ( Player , v , 1 , 'true' ) then have = have + 1 end
end
if have == 3 then
2024-05-02 18:34:49 -07:00
RemoveItem ( 'cannabutter' , 1 )
RemoveItem ( 'flour' , 1 )
RemoveItem ( 'chocolate' , 1 )
AddItem ( 'specialbrownie' , 1 )
2024-07-16 14:14:48 -07:00
Log ( Player.PlayerData . charinfo.firstname .. ' ' .. Player.PlayerData . charinfo.lastname .. ' Made Special Brownies ' , 'weed' )
2024-05-07 13:12:03 -07:00
end
2023-12-07 15:45:48 -08:00
end )
RegisterServerEvent ( 'md-drugs:server:makecookies' , function ()
2024-05-02 18:34:49 -07:00
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
2024-05-07 13:12:03 -07:00
local recipe = { 'cannabutter' , 'flour' }
local have = 0
for k , v in pairs ( recipe ) do
if Itemcheck ( Player , v , 1 , 'true' ) then have = have + 1 end
end
if have == 2 then
2024-05-02 18:34:49 -07:00
RemoveItem ( 'cannabutter' , 1 )
RemoveItem ( 'flour' , 1 )
AddItem ( 'specialcookie' , 1 )
2024-07-16 14:14:48 -07:00
Log ( Player.PlayerData . charinfo.firstname .. ' ' .. Player.PlayerData . charinfo.lastname .. ' Made Special Cookies ' , 'weed' )
2024-05-07 13:12:03 -07:00
end
2023-12-07 15:45:48 -08:00
end )
RegisterServerEvent ( 'md-drugs:server:makechocolate' , function ()
2024-05-02 18:34:49 -07:00
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
2024-05-07 13:12:03 -07:00
local recipe = { 'cannabutter' , 'chocolate' }
local have = 0
for k , v in pairs ( recipe ) do
if Itemcheck ( Player , v , 1 , 'true' ) then have = have + 1 end
end
if have == 2 then
2024-05-02 18:34:49 -07:00
RemoveItem ( 'cannabutter' , 1 )
RemoveItem ( 'chocolate' , 1 )
AddItem ( 'specialchocolate' , 1 )
2024-07-16 14:14:48 -07:00
Log ( Player.PlayerData . charinfo.firstname .. ' ' .. Player.PlayerData . charinfo.lastname .. ' Made Special Chocolate ' , 'weed' )
2024-05-07 13:12:03 -07:00
end
2023-12-07 15:45:48 -08:00
end )
RegisterServerEvent ( 'md-drugs:server:makemuffin' , function ()
2024-05-02 18:34:49 -07:00
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
2024-05-07 13:12:03 -07:00
local recipe = { 'cannabutter' , 'flour' }
local have = 0
for k , v in pairs ( recipe ) do
if Itemcheck ( Player , v , 1 , 'true' ) then have = have + 1 end
end
if have == 2 then
2024-05-02 18:34:49 -07:00
RemoveItem ( 'cannabutter' , 1 )
RemoveItem ( 'flour' , 1 )
AddItem ( 'specialmuffin' , 1 )
2024-07-16 14:14:48 -07:00
Log ( Player.PlayerData . charinfo.firstname .. ' ' .. Player.PlayerData . charinfo.lastname .. ' Made Special Muffin ' , 'weed' )
2024-05-07 13:12:03 -07:00
end
2023-12-07 15:45:48 -08:00
end )
RegisterServerEvent ( 'md-drugs:server:makeoil' , function ()
2024-05-02 18:34:49 -07:00
local src = source
2024-05-07 13:12:03 -07:00
local Player = QBCore.Functions . GetPlayer ( src )
local recipe = { 'grindedweed' , 'butane' }
local have = 0
for k , v in pairs ( recipe ) do
if Itemcheck ( Player , v , 1 , 'true' ) then have = have + 1 end
end
if have == 2 then
2024-05-02 18:34:49 -07:00
RemoveItem ( 'butane' , 1 )
RemoveItem ( 'grindedweed' , 1 )
2024-05-07 13:12:03 -07:00
AddItem ( 'shatter' , 1 )
2024-07-16 14:14:48 -07:00
Log ( Player.PlayerData . charinfo.firstname .. ' ' .. Player.PlayerData . charinfo.lastname .. ' Made Shatter ' , 'weed' )
2024-05-07 13:12:03 -07:00
end
2023-12-07 15:45:48 -08:00
end )
RegisterServerEvent ( 'md-drugs:server:rollblunt' , function ()
2024-05-02 18:34:49 -07:00
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
2024-05-07 13:12:03 -07:00
local recipe = { 'bluntwrap' , 'grindedweed' }
local have = 0
for k , v in pairs ( recipe ) do
if Itemcheck ( Player , v , 1 , 'true' ) then have = have + 1 end
end
if have == 2 then
2024-05-02 18:34:49 -07:00
TriggerClientEvent ( "md-drugs:client:rollanim" , src )
RemoveItem ( 'bluntwrap' , 1 )
RemoveItem ( 'grindedweed' , 1 )
2024-05-07 13:12:03 -07:00
AddItem ( 'blunt' , 1 )
2024-07-16 14:14:48 -07:00
Log ( Player.PlayerData . charinfo.firstname .. ' ' .. Player.PlayerData . charinfo.lastname .. ' Rolled A Blunt ' , 'weed' )
2024-05-07 13:12:03 -07:00
end
2023-12-07 15:45:48 -08:00
end )
RegisterServerEvent ( 'md-drugs:server:rollleanblunt' , function ()
2024-05-02 18:34:49 -07:00
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
local chance = math.random ( 1 , 10 )
2024-05-07 13:12:03 -07:00
local recipe = { 'bluntwrap' , 'mdlean' }
local have = 0
for k , v in pairs ( recipe ) do
if Itemcheck ( Player , v , 1 , 'true' ) then have = have + 1 end
end
if have == 2 then
2024-05-02 18:34:49 -07:00
TriggerClientEvent ( "md-drugs:client:rollanim" , src )
RemoveItem ( "bluntwrap" , 1 )
AddItem ( "leanbluntwrap" , 1 )
2024-07-16 14:14:48 -07:00
Log ( Player.PlayerData . charinfo.firstname .. ' ' .. Player.PlayerData . charinfo.lastname .. ' Rolled A Lean Blunt ' , 'weed' )
2024-05-02 18:34:49 -07:00
if chance > 8 then
RemoveItem ( "mdlean" , 1 )
2023-12-07 15:45:48 -08:00
end
2024-05-07 13:12:03 -07:00
end
2023-12-07 15:45:48 -08:00
end )
RegisterServerEvent ( 'md-drugs:server:rolldextroblunt' , function ()
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
local chance = math.random ( 1 , 10 )
2024-05-07 13:12:03 -07:00
local chance = math.random ( 1 , 10 )
local recipe = { 'mdreddextro' , 'mdlean' }
local have = 0
for k , v in pairs ( recipe ) do
if Itemcheck ( Player , v , 1 , 'true' ) then have = have + 1 end
end
if have == 2 then
2024-05-02 18:34:49 -07:00
RemoveItem ( "bluntwrap" , 1 )
AddItem ( "dextrobluntwrap" , 1 )
TriggerClientEvent ( "md-drugs:client:rollanim" , src )
2024-07-16 14:14:48 -07:00
Log ( Player.PlayerData . charinfo.firstname .. ' ' .. Player.PlayerData . charinfo.lastname .. ' Rolled A Dextro Blunt ' , 'weed' )
2024-05-02 18:34:49 -07:00
if chance > 8 then
Player.Functions . RemoveItem ( "mdreddextro" , 1 )
end
2024-05-07 13:12:03 -07:00
end
2023-12-07 15:45:48 -08:00
end )
RegisterServerEvent ( 'md-drugs:server:rollchewyblunt' , function ()
2024-05-02 18:34:49 -07:00
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
2024-05-07 13:12:03 -07:00
local recipe = { 'bluntwrap' , 'loosecoke' , 'grindedweed' }
local have = 0
for k , v in pairs ( recipe ) do
if Itemcheck ( Player , v , 1 , 'true' ) then have = have + 1 end
end
if have == 3 then
2024-05-02 18:34:49 -07:00
RemoveItem ( "bluntwrap" , 1 )
RemoveItem ( "loosecoke" , 1 )
RemoveItem ( "grindedweed" , 1 )
AddItem ( "chewyblunt" , 1 )
TriggerClientEvent ( "md-drugs:client:rollanim" , src )
2024-07-16 14:14:48 -07:00
Log ( Player.PlayerData . charinfo.firstname .. ' ' .. Player.PlayerData . charinfo.lastname .. ' Rolled A Chewy Blunt ' , 'weed' )
2024-05-07 13:12:03 -07:00
end
2023-12-07 15:45:48 -08:00
end )
------------------------ usuable items
QBCore.Functions . CreateUseableItem ( "leanbluntwrap" , function ( source , item )
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
local keef = Player.Functions . GetItemByName ( "grindedweed" )
if keef and keef.amount > 0 then
if Player.Functions . RemoveItem ( 'grindedweed' , 1 ) then
TriggerClientEvent ( "md-drugs:client:rollanim" , src )
Player.Functions . RemoveItem ( "leanbluntwrap" , 1 )
Player.Functions . AddItem ( 'leanblunts' , 1 )
TriggerClientEvent ( 'inventory:client:ItemBox' , src , QBCore.Shared . Items [ 'leanblunts' ], "add" , 1 )
TriggerClientEvent ( 'inventory:client:ItemBox' , src , QBCore.Shared . Items [ 'grindedweed' ], "remove" , 1 )
TriggerClientEvent ( 'inventory:client:ItemBox' , src , QBCore.Shared . Items [ 'leanbluntwrap' ], "remove" , 1 )
2024-07-16 14:14:48 -07:00
2023-12-07 15:45:48 -08:00
end
else
2024-05-02 18:34:49 -07:00
Notifys ( Lang.Weed . noweed , "error" )
2023-12-07 15:45:48 -08:00
end
end )
QBCore.Functions . CreateUseableItem ( "dextrobluntwrap" , function ( source , item )
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
local keef = Player.Functions . GetItemByName ( "grindedweed" )
if keef and keef.amount > 0 then
if Player.Functions . RemoveItem ( 'grindedweed' , 1 ) then
TriggerClientEvent ( "md-drugs:client:rollanim" , src )
Player.Functions . RemoveItem ( "dextrobluntwrap" , 1 )
Player.Functions . AddItem ( 'dextroblunts' , 1 )
TriggerClientEvent ( 'inventory:client:ItemBox' , src , QBCore.Shared . Items [ 'dextroblunts' ], "add" , 1 )
TriggerClientEvent ( 'inventory:client:ItemBox' , src , QBCore.Shared . Items [ 'grindedweed' ], "remove" , 1 )
TriggerClientEvent ( 'inventory:client:ItemBox' , src , QBCore.Shared . Items [ 'dextrobluntwrap' ], "remove" , 1 )
end
else
2024-05-02 18:34:49 -07:00
Notifys ( Lang.Weed . noweed , "error" )
2023-12-07 15:45:48 -08:00
end
end )
QBCore.Functions . CreateUseableItem ( "dabrig" , function ( source , item )
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
if Player.Functions . GetItemByName ( "butanetorch" ) then
2023-12-07 22:10:05 -08:00
if Player.Functions . RemoveItem ( "shatter" , 1 ) then
TriggerClientEvent ( 'inventory:client:ItemBox' , src , QBCore.Shared . Items [ "shatter" ], "remove" , 1 )
TriggerClientEvent ( "md-drugs:client:dodabs" , src )
2024-05-02 18:34:49 -07:00
else
Notifys ( Lang.Weed . noshat , "error" )
2023-12-07 22:29:01 -08:00
end
2023-12-07 15:45:48 -08:00
else
2024-05-02 18:34:49 -07:00
Notifys ( Lang.Weed . notorch , "error" )
2023-12-07 15:45:48 -08:00
end
end )
QBCore.Functions . CreateUseableItem ( "bluntwrap" , function ( source , item )
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
TriggerClientEvent ( 'md-drugs:client:bluntwraps' , src )
end )
QBCore.Functions . CreateUseableItem ( "weedgrinder" , function ( source , item )
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
if Player.Functions . RemoveItem ( "drycannabis" , 1 ) then
Player.Functions . AddItem ( "grindedweed" , 1 )
TriggerClientEvent ( 'inventory:client:ItemBox' , src , QBCore.Shared . Items [ "grindedweed" ], "add" , 1 )
2024-05-02 18:34:49 -07:00
TriggerClientEvent ( "md-drugs:client:grind" , src )
2023-12-07 15:45:48 -08:00
end
end )
QBCore.Functions . CreateUseableItem ( "mdwoods" , function ( source , item )
local src = source
local Player = QBCore.Functions . GetPlayer ( src )
2024-05-02 18:34:49 -07:00
TriggerClientEvent ( "md-drugs:client:rollanim" , src )
Wait ( 4000 )
2023-12-07 15:45:48 -08:00
if Player.Functions . RemoveItem ( "mdwoods" , 1 ) then
Player.Functions . AddItem ( "bluntwrap" , 5 )
Player.Functions . AddItem ( "tobacco" , 5 )
TriggerClientEvent ( 'inventory:client:ItemBox' , src , QBCore.Shared . Items [ "bluntwrap" ], "add" , 1 )
TriggerClientEvent ( 'inventory:client:ItemBox' , src , QBCore.Shared . Items [ "tobacco" ], "add" , 1 )
end
end )
2024-05-07 13:12:03 -07:00