Ya está aquí RoodyProxy v2.3.1Ver novedades →
RoodyProxy · Archivos

config.yml

# ============================================================
#  RoodyProxy · config.yml · by Roody
#  Texts: lang/<language>.yml. /rproxy reload reloads this file, lang/
#  and the modules. storage, redis and proxy-id need a proxy restart.
# ============================================================

# Language of the messages: the name of a file in lang/ (en, es, or your own). Kick screens,
# the console and Discord posts use this language.
language: en
# true = each player sees the messages in their Minecraft language when lang/ has that file
# (es_es.yml or es.yml...). On Discord, replies to slash commands and buttons use the language
# of each user's Discord client the same way.
per-player-language: false

# More names for each command. If another plugin already uses a name, that plugin keeps it.
command-aliases:
  roodyproxy: [rproxy]
  lobby: [hub]
  glist: []
  plist: []
  proxy: []
  pproxy: []
  find: []
  send: []
  alert: []
  maintenance: []
  staffchat: [sc]
  adminchat: [ac]
  scmute: []
  acmute: []
  stafflist: [slist]
  inspect: []
  helpop: []
  helpops: []
  helpop-claim: []
  helpop-reply: []
  helpop-close: []
  report: []
  reports: []
  report-claim: []
  report-reply: []
  report-close: []
  ticket: []
  stafftop: [topstaff]
  msg: [tell, w]
  reply: [r]
  ignore: []
  msgtoggle: []
  socialspy: []
  msglog: []
  friend: [f]
  link: []
  unlink: []
  linked: []
  stream: []
  streams: []
  twitch: []
  youtube: []
  tiktok: []

# Name of this proxy. With several proxies, each one needs a different one.
proxy-id: "proxy-1"

# Time zone for the dates of /msglog and /inspect ("" = the system's). Example: Europe/Madrid
time-zone: ""

storage:
  # mongodb or memory (memory keeps nothing after a restart: only for tests).
  type: mongodb
  mongodb:
    uri: "mongodb://localhost:27017"
    database: "RoodyProxy"

# Several proxies. With a single proxy leave it off.
redis:
  enabled: false
  host: "127.0.0.1"
  port: 6379
  password: ""
  database: 0
  ssl: false

modules:

  # Lobbies: where players go, what happens when they are kicked, and /lobby (/hub).
  lobbies:
    enabled: true
    servers:
      - "lobby-1"
    # Login servers: being kicked from here disconnects you, and leaving here takes you to
    # the emptiest lobby.
    ignored:
      - "auth"
    # Every how many seconds the lobbies are pinged to know which ones are up.
    ping-seconds: 10
    # Failed connections in a row (the kick included) before disconnecting the player.
    max-failures: 3
    # Maximum seconds without a server after a kick. 0 = no limit.
    max-limbo-seconds: 60

  # Joining the network and the commands glist, plist, proxy, pproxy, find, send, alert.
  network:
    enabled: true
    # "minimum", "latest" or a version ("1.18.2").
    min-version: "minimum"
    max-version: "latest"
    # When someone with that name is already connected:
    duplicate-session:
      # the old session is replaced by the new one if it comes from the same IP,
      replace-same-ip: true
      # or if the old one has been without a server (stuck) for these seconds.
      replace-without-server-seconds: 20
    # Bedrock players (Floodgate), recognised by the prefix of their name. Needs LuckPerms.
    bedrock:
      enabled: false
      prefix: "."
      add-permissions: []
      remove-permissions: []

  # Maintenance mode (/maintenance enable [seconds] | disable).
  maintenance:
    enabled: true
    # Seconds of the countdown when everyone is warned.
    warnings: [120, 60, 30, 15, 10, 5, 3, 2, 1]
    # Same variables as the MOTD: {online}, {max}, {proxy}, {countdown_<id>}
    motd:
      enabled: true
      motd: "<red><bold>Maintenance</bold><newline><gray>We will be back soon."
      version: "<dark_red>Maintenance"

  # MOTD of the server list. & codes and MiniMessage tags both work.
  motd:
    enabled: true
    # One or more; with several, one is picked at random on each ping.
    # Variables: {online}, {max}, {proxy}, {countdown_<id>}
    motds:
      - "<gradient:#00E0FF:#7D62FF><bold>My network</bold></gradient><newline><gray>{online} players online"
    players:
      online:
        mode: REAL       # REAL, STATIC or ADD (real + value)
        value: 0
      max:
        mode: STATIC     # STATIC, ONLINE_PLUS (online + value) or REAL (velocity.toml)
        value: 2000
      hover:
        enabled: false
        lines:
          - "<white>My network"
    version:
      enabled: false
      text: "<red>Maintenance"
      # -1 = the text is always shown; 0 = the client's protocol.
      protocol: -1
    # {countdown_<id>} in the MOTD: time left until a date, only the biggest unit.
    countdowns: {}
    #  opening:
    #    date: "2026-12-24 20:00:00"
    #    time-zone: "Europe/Madrid"
    #    formats:
    #      days: "{value} DAYS"
    #      day: "1 DAY"
    #      hours: "{value} HOURS"
    #      hour: "1 HOUR"
    #      minutes: "{value} MINUTES"
    #      minute: "1 MINUTE"
    #      finished: "OPEN NOW"

  # Staff: /sc, /ac, /scmute, /acmute, /stafflist, /inspect.
  staff:
    enabled: true
    # Tell the staff when a staff member joins, changes server or leaves.
    movements: true
    # Commands saved for /inspect.
    logged-commands: [ban, tempban, ipban, unban, mute, tempmute, unmute, kick, warn]
    inspect-page: 10

  # Help requests and reports (/helpop, /report, /ticket, /stafftop). Claiming one opens a chat
  # of its own between the player and the staff member. With the discord module, they can be
  # handled from Discord too.
  tickets:
    enabled: true
    # Hours a request can stay open without being closed.
    expire-hours: 120
    # Days closed ones are kept (for /stafftop and /ticket stats).
    keep-days: 365
    # When it is closed, the player can rate the help (1-5 stars).
    ratings: true
    top-size: 10
    chat:
      # Reminder in the action bar while you are in the chat of a request.
      actionbar: true
    helpop:
      cooldown: 60
      # Classic Discord webhook (no bot). With the discord module, leave it off.
      # {player} {server} {id}
      webhook:
        enabled: false
        url: ""
        username: "Helpop"
        avatar: "https://visage.surgeplay.com/head/512/{player}"
        author-icon: "https://visage.surgeplay.com/head/512/{player}"
        footer: "Sent by {player} on {server} | {id}"
        color: "#9f00ff"
    report:
      cooldown: 60
      webhook:
        enabled: false
        url: ""
        username: "Reports"
        avatar: "https://visage.surgeplay.com/head/512/{player}"
        author-icon: "https://visage.surgeplay.com/head/512/{player}"
        footer: "Sent by {player} on {server} | {id}"
        color: "#ff3b3b"

  # Private messages: /msg, /r, /ignore, /msgtoggle, /socialspy, /msglog.
  messaging:
    enabled: true
    msglog-page: 10

  # Friends: /friend (/f).
  friends:
    enabled: true
    limit: -1          # -1 = no limit
    list-page: 10
    request-expire-days: 7

  # Commands blocked for players. To allow one: roodyproxy.commandblocker.bypass.<command>
  command-blocker:
    enabled: true
    hide-in-tab: true
    commands:
      - "plugins"
      - "pl"
      - "version"
      - "ver"
      - "about"
      - "bukkit:pl"
      - "bukkit:plugins"
      - "bukkit:version"
      - "bukkit:ver"
      - "velocity"

  # Linking Minecraft and Discord accounts (needs the discord module, on this proxy or another).
  # In the game: /link gives a code to use on Discord, /link <code> uses one made on Discord,
  # /unlink and /linked [player]. On Discord: /link [code], /unlink and /linked [user|player]
  # (their names are in the lang file: /vincular... in Spanish). Turn it on in every proxy.
  # Permissions: roodyproxy.link.check (/linked of others), roodyproxy.link.admin (/unlink others).
  linking:
    enabled: false
    # Minutes a code lasts.
    code-minutes: 10
    # Players can unlink their own account.
    allow-unlink: true
    # Commands run in the proxy console: only proxy commands work (LuckPerms on Velocity: lpv).
    # {player} {uuid} {discord} (Discord user name) {discord_id}. For example:
    #   link: ["lpv user {player} parent add linked"]
    #   unlink: ["lpv user {player} parent remove linked"]
    commands:
      # Only the first time: each Minecraft account and each Discord account count once, so
      # unlinking and linking again, or with another account, gives nothing.
      first-link: []
      # Every time an account is linked or unlinked.
      link: []
      unlink: []
    discord:
      # Id of a role given when linking and taken when unlinking ("" = none). The bot needs
      # "Manage Roles" and its own role above this one.
      role: ""
      nickname:
        # The Discord nickname becomes the Minecraft name (needs "Manage Nicknames"; Discord
        # never lets a bot change the server owner's). Unlinking takes it away if it was not changed.
        enabled: false
        # {name} = Minecraft name, {discord} = Discord user name. 32 characters at most.
        format: "{name}"
      # Id of a channel where every link and unlink is posted. 0 = none.
      log-channel: 0
      # /linked of other people on Discord: true = anyone, false = admins only (Manage Server).
      # The answer is only seen by who asks.
      anyone-can-check: true

  # Streamers announce their live to the whole network: /stream <link> [title] (the platform
  # comes from the link), /stream <platform> <link|user> [title], the command of a platform
  # (/twitch, /youtube, /tiktok) and /stream stop. /streams lists who is live, with their links.
  # Only links of these platforms are taken (nobody can advertise another server with it).
  # Permissions: roodyproxy.stream.<platform> (twitch, youtube...), roodyproxy.stream.bypass
  # (no cooldown), roodyproxy.stream.admin (/stream stop <player>).
  streams:
    enabled: false
    # Seconds between two announcements of the same player.
    cooldown: 600
    # Minutes a live stays in /streams (or until /stream stop, or the player leaves).
    live-minutes: 180
    end-on-quit: true
    # Longest title, in characters.
    max-title: 80
    # Also show a title on everyone's screen.
    title: false
    # With the discord module: a post in this channel for each live (0 = none), and a role to
    # mention ("" = nobody).
    discord:
      channel: 0
      mention-role: ""
    # Your platforms (add or remove any). name and color (#RRGGBB) are shown in the messages;
    # domains = the links it takes; profile = the link of "/stream <platform> <user>" ({user});
    # command = a command of its own ("" = none; never one of your servers' commands, like kick).
    platforms:
      twitch:
        name: "Twitch"
        color: "#9146FF"
        domains: [twitch.tv]
        profile: "https://twitch.tv/{user}"
        command: twitch
      youtube:
        name: "YouTube"
        color: "#FF0000"
        domains: [youtube.com, youtu.be]
        profile: "https://www.youtube.com/@{user}/live"
        command: youtube
      tiktok:
        name: "TikTok"
        color: "#25F4EE"
        domains: [tiktok.com]
        profile: "https://www.tiktok.com/@{user}/live"
        command: tiktok
      kick:
        name: "Kick"
        color: "#53FC18"
        domains: [kick.com]
        profile: "https://kick.com/{user}"
        command: ""

  # Discord bot, built in: the staff chat and the admin chat in two Discord channels (both
  # ways), help requests and reports with buttons and a thread each, /staff, /stafftop and the
  # commands of modules.linking. Its texts are in the lang file (discord.*).
  # With several proxies, turn it on in ONE of them only.
  discord:
    enabled: false
    # How the proxy reaches Discord:
    #   token = with a bot of your own (the token below).
    #   roody = without a token: with the Roody bot (your Discord server needs the Roody Pro or Team
    #           plan) or with your own bot hosted by Roody. Choose which on plugins.roody.es > My
    #           account. The first time, the console shows a code for /roodyproxy link on Discord.
    #           The commands go inside one: /server staff, /server link... (lang: discord.commands.root).
    connection: token
    # Bot token (Discord Developer Portal > Bot). Turn on the "Message Content" intent there.
    # Only with connection: token.
    token: ""
    # Id of your Discord server (for the slash commands).
    guild: ""
    # Bot status, shown as "Watching ...". "" = none. Only with connection: token.
    activity: "the staff chat"
    chats:
      staffchat:
        # Channel id. 0 = this chat is not shared with Discord.
        channel: 0
        webhook:
          # "" = the bot creates a webhook in the channel (needs the "Manage Webhooks" permission).
          url: ""
          # {name} {server} {message}
          name: "{name} ({server})"
          avatar: "https://visage.surgeplay.com/head/512/{name}"
          content: "{message}"
      adminchat:
        channel: 0
        webhook:
          url: ""
          name: "{name} ({server})"
          avatar: "https://visage.surgeplay.com/head/512/{name}"
          content: "{message}"
    # Discord messages that go into the game.
    to-game:
      # Shown as the server: "(Nick - Discord) message".
      server-name: "Discord"
      max-characters: 256
    # Help requests and reports: a message with buttons and a thread for each one. What the
    # staff writes in the thread reaches the player.
    tickets:
      enabled: true
      channels:
        helpop: 0
        report: 0
      threads: true
      # Id of the role that can handle them ("" = anyone who sees the channel; admins always can).
      staff-role: ""
      # Id of the role mentioned when one comes in ("" = nobody).
      mention-role: ""
      colors:
        open: "#F1C40F"
        claimed: "#3498DB"
        closed: "#2ECC71"
    # /staff on Discord: who of the staff is online and where.
    staff-command:
      enabled: true
      # true = only the one who uses it sees the answer.
      private: true
      color: "#DE13FF"

# Tell the console and admins (permission roodyproxy.update) when a new version is out
# on plugins.roody.es.
check-updates: true