Roles and copy
This commit is contained in:
parent
db0088ee2f
commit
810384d3fe
12
Bot/Bot.fs
12
Bot/Bot.fs
@ -102,6 +102,12 @@ let asdf _ (event : DSharpPlus.EventArgs.InteractionCreateEventArgs) =
|
|||||||
:> Task
|
:> Task
|
||||||
//hackerBattleBot.add_InteractionCreated(AsyncEventHandler(asdf))
|
//hackerBattleBot.add_InteractionCreated(AsyncEventHandler(asdf))
|
||||||
|
|
||||||
|
jpegBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
||||||
|
GuildEnvironment.botClientJpeg <- Some jpegBot
|
||||||
|
|
||||||
|
storeBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
||||||
|
GuildEnvironment.botClientStore <- Some storeBot
|
||||||
|
|
||||||
hackerBattleBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
hackerBattleBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
||||||
GuildEnvironment.botClientHacker <- Some hackerBattleBot
|
GuildEnvironment.botClientHacker <- Some hackerBattleBot
|
||||||
|
|
||||||
@ -110,12 +116,6 @@ adminBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
|||||||
inviterBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
inviterBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
||||||
GuildEnvironment.botClientRecruit <- Some inviterBot
|
GuildEnvironment.botClientRecruit <- Some inviterBot
|
||||||
|
|
||||||
storeBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
|
||||||
GuildEnvironment.botClientStore <- Some storeBot
|
|
||||||
|
|
||||||
jpegBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
|
||||||
GuildEnvironment.botClientJpeg <- Some jpegBot
|
|
||||||
|
|
||||||
slotsBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
slotsBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
||||||
GuildEnvironment.botClientSlots <- Some slotsBot
|
GuildEnvironment.botClientSlots <- Some slotsBot
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ let getStoreItems (storeId : string) =
|
|||||||
|> Sql.connect
|
|> Sql.connect
|
||||||
|> Sql.parameters [ "sid", Sql.string storeId ]
|
|> Sql.parameters [ "sid", Sql.string storeId ]
|
||||||
|> Sql.query """
|
|> Sql.query """
|
||||||
SELECT store_id,stock,available,limit_stock,i.id,name,description,icon_url,image_url,category,
|
SELECT store_id,stock,available,limit_stock,i.id,name,description,icon_url,image_url,category,require_role,require_invites,
|
||||||
buy_price,sell_price,rate_limit,expiration,drop_chance,can_trade,can_consume,attack_power,defense_power,class_name,max_stack,mods
|
buy_price,sell_price,rate_limit,expiration,drop_chance,can_trade,can_consume,attack_power,defense_power,class_name,max_stack,mods
|
||||||
FROM store_item
|
FROM store_item
|
||||||
JOIN item i on store_item.item_id = i.id
|
JOIN item i on store_item.item_id = i.id
|
||||||
@ -116,8 +116,8 @@ let getStoreItems (storeId : string) =
|
|||||||
Stock = reader.int "stock"
|
Stock = reader.int "stock"
|
||||||
LimitStock = reader.bool "limit_stock"
|
LimitStock = reader.bool "limit_stock"
|
||||||
Available = reader.bool "available"
|
Available = reader.bool "available"
|
||||||
RequiresInvites = None
|
RequiresInvites = reader.intOrNone "require_invites"
|
||||||
RequiresRole = None
|
RequiresRole = reader.stringOrNone "require_role" |> Option.map uint64
|
||||||
StoreItem.Item = readItem reader
|
StoreItem.Item = readItem reader
|
||||||
})
|
})
|
||||||
|> Async.AwaitTask
|
|> Async.AwaitTask
|
||||||
@ -126,7 +126,7 @@ let getAllActiveStoreItems () =
|
|||||||
connStr
|
connStr
|
||||||
|> Sql.connect
|
|> Sql.connect
|
||||||
|> Sql.query """
|
|> Sql.query """
|
||||||
SELECT store_id,stock,available,limit_stock,i.id,name,description,icon_url,image_url,category,
|
SELECT store_id,stock,available,limit_stock,i.id,name,description,icon_url,image_url,category,require_role,require_invites,
|
||||||
buy_price,sell_price,rate_limit,expiration,drop_chance,can_trade,can_consume,attack_power,defense_power,class_name,max_stack,mods
|
buy_price,sell_price,rate_limit,expiration,drop_chance,can_trade,can_consume,attack_power,defense_power,class_name,max_stack,mods
|
||||||
FROM store_item
|
FROM store_item
|
||||||
JOIN item i on store_item.item_id = i.id
|
JOIN item i on store_item.item_id = i.id
|
||||||
@ -137,8 +137,8 @@ let getAllActiveStoreItems () =
|
|||||||
Stock = reader.int "stock"
|
Stock = reader.int "stock"
|
||||||
LimitStock = reader.bool "limit_stock"
|
LimitStock = reader.bool "limit_stock"
|
||||||
Available = reader.bool "available"
|
Available = reader.bool "available"
|
||||||
RequiresInvites = None
|
RequiresInvites = reader.intOrNone "require_invites"
|
||||||
RequiresRole = None
|
RequiresRole = reader.stringOrNone "require_role" |> Option.map uint64
|
||||||
StoreItem.Item = readItem reader
|
StoreItem.Item = readItem reader
|
||||||
})
|
})
|
||||||
|> Async.AwaitTask
|
|> Async.AwaitTask
|
||||||
@ -148,7 +148,7 @@ let getStoreItemBySymbol (itemSymbol : string) =
|
|||||||
|> Sql.connect
|
|> Sql.connect
|
||||||
|> Sql.parameters [ "iid", Sql.string itemSymbol ]
|
|> Sql.parameters [ "iid", Sql.string itemSymbol ]
|
||||||
|> Sql.query """
|
|> Sql.query """
|
||||||
SELECT store_id,stock,available,limit_stock,i.id,name,description,icon_url,image_url,category,
|
SELECT store_id,stock,available,limit_stock,i.id,name,description,icon_url,image_url,category,require_role,require_invites,
|
||||||
buy_price,sell_price,rate_limit,expiration,drop_chance,can_trade,can_consume,attack_power,defense_power,class_name,max_stack,mods
|
buy_price,sell_price,rate_limit,expiration,drop_chance,can_trade,can_consume,attack_power,defense_power,class_name,max_stack,mods
|
||||||
FROM store_item
|
FROM store_item
|
||||||
JOIN item i on store_item.item_id = i.id
|
JOIN item i on store_item.item_id = i.id
|
||||||
@ -159,8 +159,8 @@ let getStoreItemBySymbol (itemSymbol : string) =
|
|||||||
Stock = reader.int "stock"
|
Stock = reader.int "stock"
|
||||||
LimitStock = reader.bool "limit_stock"
|
LimitStock = reader.bool "limit_stock"
|
||||||
Available = reader.bool "available"
|
Available = reader.bool "available"
|
||||||
RequiresInvites = None
|
RequiresInvites = reader.intOrNone "require_invites"
|
||||||
RequiresRole = None
|
RequiresRole = reader.stringOrNone "require_role" |> Option.map uint64
|
||||||
StoreItem.Item = readItem reader
|
StoreItem.Item = readItem reader
|
||||||
})
|
})
|
||||||
|> Async.AwaitTask
|
|> Async.AwaitTask
|
||||||
|
@ -272,7 +272,23 @@ let checkHasRequiredInvites storeItem player =
|
|||||||
if amount <= totalInvites then
|
if amount <= totalInvites then
|
||||||
return Ok ()
|
return Ok ()
|
||||||
else
|
else
|
||||||
return "" |> embedWithError
|
let embedError =
|
||||||
|
let embed = DiscordEmbedBuilder()
|
||||||
|
embed.Description <- $"""
|
||||||
|
❌ **Degen**, can’t you **READ**?!
|
||||||
|
⚠️ **__Entry Requirements:__** 1x Invited User
|
||||||
|
|
||||||
|
To Enter this Raffle you must have **__INVITED__** 1 Degen.
|
||||||
|
☑️ Go to <#{GuildEnvironment.channelRecruitment}>
|
||||||
|
☑️ Invite just 1 Degen!
|
||||||
|
|
||||||
|
Then try again…
|
||||||
|
"""
|
||||||
|
DiscordFollowupMessageBuilder()
|
||||||
|
.AsEphemeral()
|
||||||
|
.AddEmbed(embed)
|
||||||
|
|> Error
|
||||||
|
return embedError
|
||||||
| None -> return Ok ()
|
| None -> return Ok ()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,13 +298,21 @@ let checkHasRequiredRole storeItem (user : DiscordMember) =
|
|||||||
if user.Roles |> Seq.exists (fun r -> r.Id = roleId) then
|
if user.Roles |> Seq.exists (fun r -> r.Id = roleId) then
|
||||||
Ok ()
|
Ok ()
|
||||||
else
|
else
|
||||||
let builder = DiscordFollowupMessageBuilder().AsEphemeral()
|
|
||||||
let embed = DiscordEmbedBuilder()
|
let embed = DiscordEmbedBuilder()
|
||||||
embed.Description <- $"""
|
embed.Description <- $"""
|
||||||
|
❌ **Degen**, can’t you **READ**?!
|
||||||
|
⚠️ **__Entry Requirements:__** Have the <@&{GuildEnvironment.roleMagicEden}>
|
||||||
|
|
||||||
"""
|
To get the <@&{GuildEnvironment.roleMagicEden}> role:
|
||||||
builder.AddEmbed(embed)
|
☑️ Upvote us on magic here: https://magiceden.io/drops/degenz_game
|
||||||
"" |> embedWithError
|
☑️ Post Proof in <#{GuildEnvironment.channelQuestProof}>
|
||||||
|
|
||||||
|
Then try again…
|
||||||
|
"""
|
||||||
|
DiscordFollowupMessageBuilder()
|
||||||
|
.AsEphemeral()
|
||||||
|
.AddEmbed(embed)
|
||||||
|
|> Error
|
||||||
| None -> Ok ()
|
| None -> Ok ()
|
||||||
|
|
||||||
// TODO: When you buy a shield, prompt the user to activate it
|
// TODO: When you buy a shield, prompt the user to activate it
|
||||||
@ -409,7 +433,7 @@ let sendBackalleyEmbed (ctx : IDiscordContext) =
|
|||||||
embed.ImageUrl <- "https://s7.gifyu.com/images/ezgif.com-gif-maker-23203b9dca779ba7cf.gif"
|
embed.ImageUrl <- "https://s7.gifyu.com/images/ezgif.com-gif-maker-23203b9dca779ba7cf.gif"
|
||||||
embed.Title <- "🎟️ Raffle Store"
|
embed.Title <- "🎟️ Raffle Store"
|
||||||
embed.Color <- DiscordColor.Black
|
embed.Color <- DiscordColor.Black
|
||||||
embed.Description <- $"Hey, what do you want, kid??\nI ain’t got all day… <:JpegJohnny:973507064217337856>"
|
embed.Description <- $"Hey, what do you want, kid?\nI ain’t got all day…"
|
||||||
builder.AddEmbed embed |> ignore
|
builder.AddEmbed embed |> ignore
|
||||||
let button1 = DiscordButtonComponent(ButtonStyle.Danger, $"ShowStore-0-BACKALLEY1", $"NFT Raffles") :> DiscordComponent
|
let button1 = DiscordButtonComponent(ButtonStyle.Danger, $"ShowStore-0-BACKALLEY1", $"NFT Raffles") :> DiscordComponent
|
||||||
let button2 = DiscordButtonComponent(ButtonStyle.Success, $"ShowStore-0-BACKALLEY2", $"Whitelist Raffles") :> DiscordComponent
|
let button2 = DiscordButtonComponent(ButtonStyle.Success, $"ShowStore-0-BACKALLEY2", $"Whitelist Raffles") :> DiscordComponent
|
||||||
|
@ -45,7 +45,7 @@ let channelSubmitWallet = getId "CHANNEL_SUBMIT_WALLET"
|
|||||||
let channelAnnouncements = getId "CHANNEL_ANNOUNCEMENTS"
|
let channelAnnouncements = getId "CHANNEL_ANNOUNCEMENTS"
|
||||||
let channelGeneral = getId "CHANNEL_GENERAL"
|
let channelGeneral = getId "CHANNEL_GENERAL"
|
||||||
let channelQuests = getId "CHANNEL_QUESTS"
|
let channelQuests = getId "CHANNEL_QUESTS"
|
||||||
|
let channelQuestProof = getId "CHANNEL_QUEST_PROOF"
|
||||||
//let channelThievery = getId "CHANNEL_THIEVERY"
|
//let channelThievery = getId "CHANNEL_THIEVERY"
|
||||||
let botIdHackerBattle = getId "BOT_HACKER_BATTLE"
|
let botIdHackerBattle = getId "BOT_HACKER_BATTLE"
|
||||||
let botIdArmory = getId "BOT_ARMORY"
|
let botIdArmory = getId "BOT_ARMORY"
|
||||||
@ -59,6 +59,7 @@ let roleWhiteOGPending = getId "ROLE_WHITEOG_PENDING"
|
|||||||
let roleWhitelist = getId "ROLE_WHITELIST"
|
let roleWhitelist = getId "ROLE_WHITELIST"
|
||||||
let roleWhiteOG = getId "ROLE_WHITEOG"
|
let roleWhiteOG = getId "ROLE_WHITEOG"
|
||||||
let roleAdmin = getId "ROLE_ADMIN"
|
let roleAdmin = getId "ROLE_ADMIN"
|
||||||
|
let roleMagicEden = getId "ROLE_MAGICEDEN"
|
||||||
let mutable botClientRecruit : DiscordClient option = None
|
let mutable botClientRecruit : DiscordClient option = None
|
||||||
let mutable botClientHacker : DiscordClient option = None
|
let mutable botClientHacker : DiscordClient option = None
|
||||||
let mutable botClientSlots : DiscordClient option = None
|
let mutable botClientSlots : DiscordClient option = None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user