Date: 2025/02/18 17:32:00 UTC-08:00
Type: Denizen Script
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Character_RPC_AppSend:
type: task
script:
- if !<player.has_flag[character.rpc.name]>:
- define fail:->:name
- if !<player.has_flag[character.rpc.description]>:
- define fail:->:description
- if !<player.has_flag[character.rpc.lore]>:
- define fail:->:lore
- if !<player.has_flag[character.rpc.age]>:
- define fail:->:age
- if !<player.has_flag[character.rpc.height]>:
- define fail:->:height
- if !<player.has_flag[character.rpc.profession]>:
- define fail:->:profession
- if <[fail]||null> != null:
- narrate "<red>You are missing these features<&co><&sp><gold><[fail].comma_separated.to_titlecase>"
- stop
- definemap app_data:
player_name: <player.name>
name: <player.flag[character.rpc.name]>
description: <player.flag[character.rpc.description]>
lore: <player.flag[character.rpc.lore]>
age: <player.flag[character.rpc.age]>
height: <player.flag[character.rpc.height]>
profession: <player.flag[character.rpc.profession]>
- narrate "<green>Processing Application..."
- define formatted "Character Name<&co><&sp><[app_data].get[name]><n>
Basic Description<&co><&sp><[app_data].get[description]><n>
Character Lore<&co><&sp><[app_data].get[lore].get[1].strip_color>...<n>
Character Age<&co><&sp><[app_data].get[age]><n>
Character Height<&co><&sp><[app_data].get[height]><n>
Character Profession<&co><&sp><[app_data].get[profession]>"
- definemap options:
1:
label: Accepted
value: accept
description: Applicant has been accepted.
emoji: 🙂
2:
label: Needs Info
value: info_needed
description: Applicant needs to add more information.
emoji: 😃
3:
label: Denied
value: deny
description: Applicant has been denied. They need to ask staff for more information.
emoji: 🤩
- define menu <discord_selection.with[id].as[application_menu].with[options].as[<[options]>]>
- define embed <discord_embed.with_map[title=<[app_data].get[player_name]><&sq>s<&sp>Application;description=<[formatted]>;timestamp=<util.time_now>;color=#00FFFF]>
- discordmessage id:mybot channel:1341502905554964550 <[embed]> rows:<[menu]> save:application_message
#- run Character_RPC_Discord_Menu def:<entry[application_message].message>
- wait 15s
- narrate "<green>Application Sent!"
Character_RPC_Discord_Menu_Events:
type: world
events:
on discord selection used id:application_menu:
- ~discordinteraction defer interaction:<context.interaction>
- define player_name <context.message.embed.get[1].map.get[title].before[context.message.embed.get[1].map.get[title].before[']>
- choose <context.option.get[value]>:
- case accept:
- define message "Application was Accepted!"
- flag <server.match_player[<[player_name]>].if_null[<server.match_offline_player[<[player_name]>]>]> character.rpc.status:accepted
- if <server.match_player[<[player_name]>]||null> != null:
- narrate targets:<server.match_player[<[player_name]>]||null> "<green>Your application has been accepted!"
- case info_needed:
- define message "Application needs more information."
- flag <server.match_player[<[player_name]>].if_null[<server.match_offline_player[<[player_name]>]>]> character.rpc.status:info_needed
- if <server.match_player[<[player_name]>]||null> != null:
- narrate targets:<server.match_player[<[player_name]>]||null> "<yellow>Your application needs more information, please ask staff for more information."
- case deny:
- define message "Application was Denied."
- flag <server.match_player[<[player_name]>].if_null[<server.match_offline_player[<[player_name]>]>]> character.rpc.status:denied
- if <server.match_player[<[player_name]>]||null> != null:
- narrate targets:<server.match_player[<[player_name]>]||null> "<red>Your application has been denied, please ask staff for more information."
- ~discordinteraction reply interaction:<context.interaction> "<[player_name]>'s <[message]> ; Reviewed by<&co><context.user>"