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
|
||||
//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
|
||||
GuildEnvironment.botClientHacker <- Some hackerBattleBot
|
||||
|
||||
@ -110,12 +116,6 @@ adminBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
||||
inviterBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously
|
||||
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
|
||||
GuildEnvironment.botClientSlots <- Some slotsBot
|
||||
|
||||
|
@ -105,7 +105,7 @@ let getStoreItems (storeId : string) =
|
||||
|> Sql.connect
|
||||
|> Sql.parameters [ "sid", Sql.string storeId ]
|
||||
|> 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
|
||||
FROM store_item
|
||||
JOIN item i on store_item.item_id = i.id
|
||||
@ -116,8 +116,8 @@ let getStoreItems (storeId : string) =
|
||||
Stock = reader.int "stock"
|
||||
LimitStock = reader.bool "limit_stock"
|
||||
Available = reader.bool "available"
|
||||
RequiresInvites = None
|
||||
RequiresRole = None
|
||||
RequiresInvites = reader.intOrNone "require_invites"
|
||||
RequiresRole = reader.stringOrNone "require_role" |> Option.map uint64
|
||||
StoreItem.Item = readItem reader
|
||||
})
|
||||
|> Async.AwaitTask
|
||||
@ -126,7 +126,7 @@ let getAllActiveStoreItems () =
|
||||
connStr
|
||||
|> Sql.connect
|
||||
|> 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
|
||||
FROM store_item
|
||||
JOIN item i on store_item.item_id = i.id
|
||||
@ -137,8 +137,8 @@ let getAllActiveStoreItems () =
|
||||
Stock = reader.int "stock"
|
||||
LimitStock = reader.bool "limit_stock"
|
||||
Available = reader.bool "available"
|
||||
RequiresInvites = None
|
||||
RequiresRole = None
|
||||
RequiresInvites = reader.intOrNone "require_invites"
|
||||
RequiresRole = reader.stringOrNone "require_role" |> Option.map uint64
|
||||
StoreItem.Item = readItem reader
|
||||
})
|
||||
|> Async.AwaitTask
|
||||
@ -148,7 +148,7 @@ let getStoreItemBySymbol (itemSymbol : string) =
|
||||
|> Sql.connect
|
||||
|> Sql.parameters [ "iid", Sql.string itemSymbol ]
|
||||
|> 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
|
||||
FROM store_item
|
||||
JOIN item i on store_item.item_id = i.id
|
||||
@ -159,8 +159,8 @@ let getStoreItemBySymbol (itemSymbol : string) =
|
||||
Stock = reader.int "stock"
|
||||
LimitStock = reader.bool "limit_stock"
|
||||
Available = reader.bool "available"
|
||||
RequiresInvites = None
|
||||
RequiresRole = None
|
||||
RequiresInvites = reader.intOrNone "require_invites"
|
||||
RequiresRole = reader.stringOrNone "require_role" |> Option.map uint64
|
||||
StoreItem.Item = readItem reader
|
||||
})
|
||||
|> Async.AwaitTask
|
||||
|
@ -272,7 +272,23 @@ let checkHasRequiredInvites storeItem player =
|
||||
if amount <= totalInvites then
|
||||
return Ok ()
|
||||
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 ()
|
||||
}
|
||||
|
||||
@ -282,13 +298,21 @@ let checkHasRequiredRole storeItem (user : DiscordMember) =
|
||||
if user.Roles |> Seq.exists (fun r -> r.Id = roleId) then
|
||||
Ok ()
|
||||
else
|
||||
let builder = DiscordFollowupMessageBuilder().AsEphemeral()
|
||||
let embed = DiscordEmbedBuilder()
|
||||
embed.Description <- $"""
|
||||
|
||||
"""
|
||||
builder.AddEmbed(embed)
|
||||
"" |> embedWithError
|
||||
❌ **Degen**, can’t you **READ**?!
|
||||
⚠️ **__Entry Requirements:__** Have the <@&{GuildEnvironment.roleMagicEden}>
|
||||
|
||||
To get the <@&{GuildEnvironment.roleMagicEden}> role:
|
||||
☑️ Upvote us on magic here: https://magiceden.io/drops/degenz_game
|
||||
☑️ Post Proof in <#{GuildEnvironment.channelQuestProof}>
|
||||
|
||||
Then try again…
|
||||
"""
|
||||
DiscordFollowupMessageBuilder()
|
||||
.AsEphemeral()
|
||||
.AddEmbed(embed)
|
||||
|> Error
|
||||
| None -> Ok ()
|
||||
|
||||
// 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.Title <- "🎟️ Raffle Store"
|
||||
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
|
||||
let button1 = DiscordButtonComponent(ButtonStyle.Danger, $"ShowStore-0-BACKALLEY1", $"NFT 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 channelGeneral = getId "CHANNEL_GENERAL"
|
||||
let channelQuests = getId "CHANNEL_QUESTS"
|
||||
|
||||
let channelQuestProof = getId "CHANNEL_QUEST_PROOF"
|
||||
//let channelThievery = getId "CHANNEL_THIEVERY"
|
||||
let botIdHackerBattle = getId "BOT_HACKER_BATTLE"
|
||||
let botIdArmory = getId "BOT_ARMORY"
|
||||
@ -59,6 +59,7 @@ let roleWhiteOGPending = getId "ROLE_WHITEOG_PENDING"
|
||||
let roleWhitelist = getId "ROLE_WHITELIST"
|
||||
let roleWhiteOG = getId "ROLE_WHITEOG"
|
||||
let roleAdmin = getId "ROLE_ADMIN"
|
||||
let roleMagicEden = getId "ROLE_MAGICEDEN"
|
||||
let mutable botClientRecruit : DiscordClient option = None
|
||||
let mutable botClientHacker : DiscordClient option = None
|
||||
let mutable botClientSlots : DiscordClient option = None
|
||||
|
Loading…
x
Reference in New Issue
Block a user