Paste #121245: announcement system

Date: 2024/03/23 13:01:47 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


AnnouncementSystem:
  type: task
  script:
    - define prefix "&#FF0000[Minecraft Server] "
    - define messages <list[
        "&#FF5555Join our discord for help, giveaways, and so much more!",
        "&#55FF55Do /menu to see our custom features!",
        "&#5555FFFound a bug? Have a suggestion? Contact a staff member.",
        "&#FFFF55Purchase something from our store to help support us!",
        "&#FF55FFSign up for our forums to get support, appeal a punishment, and more!"list[
        "&#FF5555Join our discord for help, giveaways, and so much more!",
        "&#55FF55Do /menu to see our custom features!",
        "&#5555FFFound a bug? Have a suggestion? Contact a staff member.",
        "&#FFFF55Purchase something from our store to help support us!",
        "&#FF55FFSign up for our forums to get support, appeal a punishment, and more!"
      ]>
    - define index 1
    - while true:
        - foreach <server.online_players> as:player:
            - if <player.flag[announcement_<[index]>].as_boolean> || <player.flag[all_announcements].as_boolean||false>:
                - narrate "<[prefix]><[messages.get[<[index]>]>]" targets:<[player]> per_player
        - if <[index]> >= <[messages].size>:
            - define index 1
        - else:
            - define index <[index].add[1]>
        - wait 1m


ToggleAnnouncementCommand:
  type: command
  name: toggleannouncement
  script:
    - if <context.args.is_empty>:
        - narrate "Usage: /toggleannouncement [all/message_number]" color:red
        - stop
    - if <context.args.get[1]> == "all":
        - if <player.flag[all_announcements]>:
            - flag player all_announcements:!
            - narrate "All announcements have been disabled." color:green
        - else:
            - flag player all_announcements:true
            - narrate "All announcements have been enabled." color:green
    - else:
        - try:
            - if <player.flag[announcement_<context.args.get[1]>]>:
                - flag player announcement_<context.args.get[1]>:!
                - narrate "Announcement #<context.args.get[1]> has been disabled." color:green
            - else:
                - flag player announcement_<context.args.get[1]>:true
                - narrate "Announcement #<context.args.get[1]> has been enabled." color:green
          catch:
            - narrate "Invalid announcement number." color:red