gui_admin.yml (ES)

# ========================================== #
#   Configuración GUIs Administrador         #
# ========================================== #
# Define la apariencia y comportamiento de las
# GUIs usadas con /nreport admin.
#
# Placeholders Disponibles:
#   En Título/Items Estáticos Lista: {currentPage}, {totalPages}, {filterName},
#                                   {totalActiveReports}, {totalClosedReports}, {totalReports},
#                                   {displayedReportCount}, {totalReportsOverall}
#   En Items de Reporte: {reporterName}, {reportedName}, {reason}, {details}, {date},
#                        {status}, {reportId}, {reportIdShort}, {statusFormatted}, {onlineStatus},
#                        {assignee}
#   En Items de Detalle: Los de Reporte + {reporterUUIDShort}, {reportedUUIDShort},
#                        {date_detailed}, {onlineStatusFormatted}, {warnCount}
#   En Botones Filtro: {isActiveFilter}, {isClosedFilter}, {isAllFilter} (Insertan '&a&l▶ ' si activo, '&7' si no)
#   En Botones Ordenar: {sortArrowDate}, {sortArrowReporter}, {sortArrowReported} (Insertan flecha ej: '&a▲')
#
# RECOMENDACIÓN: Usar '#RRGGBB' para colores HEX y '&' para legacy (ej: '&a', '&l').

####################################################################################
# GUI: LISTA DE REPORTES (/nreport admin)
####################################################################################

admin_list_gui:
  # Título con placeholder para el filtro actual
  title: "#00BFFF&lReportes {filterName} #CCCCCC(Pág {currentPage}/{totalPages})"
  size: 54
  # Slots donde se colocarán los reportes (0-indexado). Dejar vacío para usar addItem()
  reports_per_page: 21 # Descomentar para forzar un número diferente a size-9

  # Slots donde se colocarán los reportes dinámicamente.
  report_item_slots: [
    10, 11, 12, 13, 14, 15, 16,
    19, 20, 21, 22, 23, 24, 25,
    28, 29, 30, 31, 32, 33, 34
  ]

  # Ítem si no hay reportes que coincidan con el filtro
  no_reports_item:
    enabled: true # Todos los items necesitan 'enabled: true' para mostrarse si el código lo chequea
    slot: 22 # Centro
    material: BARRIER
    name: "#AAAAAANo hay reportes {filterName}."
    lore: []

  # Ítem si la página está vacía (pero hay reportes en otras páginas del filtro)
  no_reports_on_page_item:
    enabled: true
    slot: 22 # Centro
    material: BARRIER
    name: "#AAAAAANo hay reportes {filterName} en esta página."
    lore: []

  # --- Items Estáticos (Filtros, Paginación, Info, Relleno) ---
  static_items:
    filter_active_button:
      enabled: true
      slot: 0
      material: LIME_DYE
      name: "{isActiveFilter}#55FF55&l■ Ver Activos"
      lore:
        - "#AAAAAA » &e{totalActiveReports} &7reportes activos"
      action: "set_filter_active"
      glow_if_active: true

    filter_closed_button:
      enabled: true
      slot: 1
      material: GRAY_DYE
      name: "{isClosedFilter}#AAAAAA&l■ Ver Cerrados"
      lore:
        - "#AAAAAA » &e{totalClosedReports} &7reportes cerrados"
      action: "set_filter_closed" # Nueva acción
      glow_if_active: true

    filter_all_button:
      enabled: true
      slot: 2
      material: LIGHT_BLUE_DYE
      name: "{isAllFilter}#AADDFF&l■ Ver Todos"
      lore:
        - "#AAAAAA » &e{totalReports} &7reportes totales ({filterName})"
      action: "set_filter_all" # Nueva acción
      glow_if_active: true

    # --- Botones de Ordenación ---
    sort_by_date_button:
      enabled: true
      slot: 6
      material: CLOCK
      name: "#FFD700Ordenar: &fFecha {sortArrowDate}"
      lore:
        - "&7 » Click para cambiar orden"
        - "&7   (Más nuevo ↔ Más viejo)"
      action: "set_sort"
      sort_key: DATE

    sort_by_reporter_button:
      enabled: true
      slot: 7
      material: NAME_TAG
      name: "#FFD700Ordenar: &fReportador {sortArrowReporter}"
      lore:
        - "&7 » Click para cambiar orden"
        - "&7   (A-Z ↔ Z-A)"
      action: "set_sort"
      sort_key: REPORTER

    sort_by_reported_button:
      enabled: true
      slot: 8
      material: PLAYER_HEAD
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzY5MTk3ZGNkYTkyYjYxYjY4YTRmYmYxYjlmYTI1OTE4N2E0ZjVmN2ZiYWM3MjFjNmM4MWRlNDE2Y2YxNTA4NiJ9fX0=" # Textura genérica 'ABC'
      name: "#FFD700Ordenar: &fReportado {sortArrowReported}"
      lore:
        - "&7 » Click para cambiar orden"
        - "&7   (A-Z ↔ Z-A)"
      action: "set_sort"
      sort_key: REPORTED

    # --- Paginación ---
    previous_page_button:
      enabled: true
      slot: 45 # Extremo izquierdo inferior
      material_active: ARROW
      material_inactive: LIGHT_GRAY_STAINED_GLASS_PANE
      name_active: "#AEC6FF« Página Anterior (&a{previousPage}#AEC6FF)"
      name_inactive: "#888888« Primera Página"
      lore_active:
        - "&7Click para ir a la pág. {previousPage}"
      action: "go_previous_page" # Acción para listener

    next_page_button:
      enabled: true
      slot: 53 # Extremo derecho inferior
      material_active: ARROW
      material_inactive: LIGHT_GRAY_STAINED_GLASS_PANE
      name_active: "#AEC6FFPágina Siguiente » (&a{nextPage}#AEC6FF)"
      name_inactive: "#888888Última Página »"
      lore_active:
        - "&7Click para ir a la pág. {nextPage}"
      action: "go_next_page"

    # --- Información ---
    info_item:
      enabled: true
      slot: 49 # Centro inferior
      material: BOOK
      name: "#E0E0E0Mostrando: &f{displayedReportCount} &8/&f {totalReportsOverall} #E0E0E0Reportes"
      lore:
        - "&7Filtro Actual: &e{filterName}"

    # --- Relleno ---
    filler:
      enabled: true
      # Usar lista de números YAML es más limpio que strings
      slots: [46, 47, 48, 50, 51, 52] # Slots entre botones paginación e info
      material: GRAY_STAINED_GLASS_PANE
      name: " "
      lore: []
  
  # --- Formato de Items de Reporte ---
  report_item_format:
    HACKS:
      material: IRON_SWORD
      name: "#FF5555Reporte contra: &f{reportedName}"
      lore:
        - "#AAAAAAReportado por: &f{reporterName}"
        - "#AAAAAARazón: #FF5555{reason} &7({details})"
        - "#AAAAAAFecha: &f{date}"
        - "#AAAAAAServidor: &b{server}"
        - "#AAAAAAEstado: {statusFormatted}" # Placeholder con color
        - "{onlineStatus}" # Placeholder con color
        - "#AAAAAAAsignado a: &f{assignee}"
        - " "
        - "#AADDFF▶ Click Izq: &7Detalles/Acciones"
        - "#FFDDAA▶ Shift+Click Der: &7Cerrar Rápido"
      glow_if_active: true
    SPAM_SCAM:
      material: WRITABLE_BOOK
      name: "#FFCC55Reporte contra: &f{reportedName}"
      lore:
        - "#AAAAAAReportado por: &f{reporterName}"
        - "#AAAAAARazón: #FFCC55{reason}"
        - "#AAAAAAFecha: &f{date}"
        - "#AAAAAAServidor: &b{server}"
        - "#AAAAAAEstado: {statusFormatted}"
        - "{onlineStatus}"
        - "#AAAAAAAsignado a: &f{assignee}"
        - " "
        - "#AADDFF▶ Click Izq: &7Detalles/Acciones"
        - "#FFDDAA▶ Shift+Click Der: &7Cerrar Rápido"
      glow_if_active: true
    INCOHERENT_MESSAGES:
      material: MAP
      name: "#55AAFFReporte contra: &f{reportedName}"
      lore:
        - "#AAAAAAReportado por: &f{reporterName}"
        - "#AAAAAARazón: #55AAFF{reason}"
        - "#AAAAAAFecha: &f{date}"
        - "#AAAAAAServidor: &b{server}"
        - "#AAAAAAEstado: {statusFormatted}"
        - "{onlineStatus}"
        - "#AAAAAAAsignado a: &f{assignee}"
        - " "
        - "#AADDFF▶ Click Izq: &7Detalles/Acciones"
        - "#FFDDAA▶ Shift+Click Der: &7Cerrar Rápido"
      glow_if_active: true
    DEFAULT: # Fallback por si hay otras razones de reporte
      material: PAPER
      name: "#FFFF55Reporte contra: &f{reportedName}"
      lore:
        - "#AAAAAAReportado por: &f{reporterName}"
        - "#AAAAAARazón: #FFFF55{reason} &7({details})"
        - "#AAAAAAFecha: &f{date}"
        - "#AAAAAAServidor: &b{server}"
        - "#AAAAAAEstado: {statusFormatted}"
        - "{onlineStatus}"
        - "#AAAAAAAsignado a: &f{assignee}"
        - " "
        - "#AADDFF▶ Click Izq: &7Detalles/Acciones"
        - "#FFDDAA▶ Shift+Click Der: &7Cerrar Rápido"
      glow_if_active: true

  # --- Formato Estado Online ---
  online_status_format:
    online: "#AAFFAA✔ Jugador Conectado"
    offline: "#FFAAAA✘ Jugador Desconectado"


# ========================================== #
#      Configuración GUI Detalles Reporte      #
# ========================================== #
admin_detail_gui:
  title: "#FFD700&lDetalles del Reporte"
  size: 27
  items:
    info:
      enabled: true
      slot: 4
      material: BOOK
      name: "#FFD700ID Reporte: &f{reportIdShort}"
      lore:
        - "&7Reportador: &f{reporterName} ({reporterUUIDShort})"
        - "&7Reportado: &f{reportedName} ({reportedUUIDShort})"
        - "&7Razón: &f{reason} &7({details})"
        - "&7Fecha: &f{date_detailed}"
        - "&7Servidor: &b{server}"
        - "&7Estado: {statusFormatted}"
        - "&7Conectado: {onlineStatusFormatted}"
        - "&6&lAdvertencias ({warnCount}):"
    teleport:
      enabled: true
      slot: 11
      material_online: ENDER_PEARL
      material_offline: ENDER_EYE
      name: "#AAAAFF✈ Teletransportarse a {reportedName}"
      lore_online:
        - "&7Click para ir al jugador."
      lore_offline:
        - "&cEl jugador no está conectado."
      action: "teleport"
    warn:
      enabled: true
      slot: 13
      material: YELLOW_WOOL
      name: "#FFEC8B&l⚠ Añadir Advertencia"
      lore:
        - "&7Añade una advertencia al jugador:"
        - "&f{reportedName}"
        - ""
        - "&7Advertencias Actuales: &e{warnCount}"
        - ""
        - "&eClick para iniciar el proceso."
        - "&7(Se te pedirá la razón en el chat,"
        - "&7 usando /nwarnconfirm <razón>)"
      action: "warn"
    close_report:
      enabled: true
      slot: 15
      show_if_status: ACTIVE
      material: REDSTONE_BLOCK
      name: "#FF5555■ Marcar como Cerrado"
      lore:
        - "&7Click para cerrar este reporte."
      action: "set_status_closed"
    open_report:
      enabled: true
      slot: 15
      show_if_status: CLOSED
      material: EMERALD_BLOCK
      name: "#55FF55▶ Marcar como Activo"
      lore:
        - "&7Click para re-abrir este reporte."
      action: "set_status_opened"
    assign_button:
      enabled: true
      slot: 19
      material: WRITABLE_BOOK
      name: "&a&l✔ Asignarme este Reporte"
      lore:
        - "&7Click para marcar este reporte"
        - "&7como que lo estás investigando tú."
        - ""
        - "&8(Oculta este botón para otros admins)"
      action: "assign_report"

    unassign_button:
      enabled: true
      slot: 19
      material: BOOK
      name: "&e&l↺ Liberar este Reporte"
      lore:
        - "&7Click para marcar este reporte"
        - "&7como no asignado nuevamente."
        - ""
        - "&8(Solo visible si está asignado a ti)"
      action: "unassign_report" # Nueva acción
    kick_player_button:
      enabled: true
      slot: 20
      material: IRON_BOOTS
      name: "#E74C3C&l👢 Kickear Jugador"
      lore:
        - "&7Expulsa al jugador reportado"
        - "&7del servidor (si está conectado)."
        - "&7Razón basada en el reporte."
      action: "kick_player"

    mute_player_button:
      enabled: true
      slot: 22
      material: NAME_TAG
      name: "#7F8C8D&l🔇 Mutear Jugador"
      lore:
        - "&7Silencia temporalmente al jugador"
        - "&7reportado (si aplica y está configurado)."
        - "&7Duración/Razón según config."
      action: "mute_player"

    ban_player_button:
      enabled: true
      slot: 24
      material: IRON_AXE
      name: "#FF8C00&l⚖ Banear Jugador"
      lore:
        - "&7Aplica un ban temporal basado"
        - "&7en la razón del reporte."
        - "&eHacks = 30 días"
        - "&eSpam/Incoherente = 10 días"
        - "&c¡Usar con precaución!"
      action: "ban_player"

    delete_report_button:
      enabled: true
      slot: 26
      material: TNT
      name: "&c&l☠ Eliminar Reporte"
      lore:
        - "&7Elimina permanentemente este reporte."
        - "&c¡Esta acción no se puede deshacer!"
        - "&8(Solo funciona en reportes cerrados)"
      action: "delete_report"

    back:
      enabled: true
      slot: 18
      material: ARROW
      name: "#CCCCCC« Volver a la lista"
      lore: []
      action: "back_to_list"

# ========================================== #
#       Configuración GUI Historial Jugador    #
# ========================================== #
player_history_gui:
  # Title usa {playerName} que pasaremos desde el comando
  title: "&5&lHistorial de {playerName} #CCCCCC(Pág {currentPage}/{totalPages})"
  size: 54 # O el tamaño que prefieras
  reports_per_page: 21 # Máximo de items de reporte por página (size - 9 por defecto)
  # Slots específicos para los reportes (opcional, dejar vacío para rellenar)
  report_item_slots: [
    10, 11, 12, 13, 14, 15, 16,
    19, 20, 21, 22, 23, 24, 25,
    28, 29, 30, 31, 32, 33, 34
  ]

  # Ítem si el jugador no tiene reportes en contra
  no_reports_item:
    enabled: true
    slot: 22 # Centro
    material: GLASS_BOTTLE # O el que quieras
    name: "#90EE90{playerName} está limpio."
    lore:
      - "&7Este jugador no tiene reportes"
      - "&7en su contra."

  # Ítems estáticos (Paginación, Volver, Info del Jugador)
  static_items:
    back_button: # Botón para cerrar la GUI de historial
      enabled: true
      slot: 45 # Esquina inferior izquierda
      material: BARRIER
      name: "#FF6347✘ Cerrar Historial"
      lore:
        - "&7Cierra esta ventana."
      action: "history_close" # Acción específica para cerrar

    previous_page_button:
      enabled: true
      slot: 48 # A la izquierda del centro inferior
      material_active: ARROW
      material_inactive: LIGHT_GRAY_STAINED_GLASS_PANE
      name_active: "#AAAAFF« Página Anterior (&a{previousPage}#AAAAFF)"
      name_inactive: "#777777« Primera Página"
      lore_active:
        - "&7Click para ir a la página {previousPage}"
      action: "history_go_previous" # Acción específica de paginación

    next_page_button:
      enabled: true
      slot: 50 # A la derecha del centro inferior
      material_active: ARROW
      material_inactive: LIGHT_GRAY_STAINED_GLASS_PANE
      name_active: "#AAAAFFPágina Siguiente (&a{nextPage}#AAAAFF)"
      name_inactive: "#777777Última Página"
      lore_active:
        - "&7Click para ir a la página {nextPage}"
      action: "history_go_next" # Acción específica de paginación

    player_info_item: # Muestra info básica del jugador visto
      enabled: true
      slot: 49 # Centro inferior
      material: PLAYER_HEAD # La cabeza del jugador
      # El nombre se puede poner aquí o dinámicamente en código
      name: "&eHistorial de: &f{playerName}"
      lore:
        - "&7ID Corto: &f{reportedUUIDShort}" # Placeholder de Report funciona aquí
        - "&7Reportes Totales: &f{displayedReportCount}" # Cuántos se listan
        - "&7Advertencias Totales: &f{warnCount}" # Añadir contador de warns

    # Relleno opcional para el resto de la fila inferior
    filler:
      enabled: true
      slots:
        - 46
        - 47
        - 51
        - 52
      material: BLACK_STAINED_GLASS_PANE
      name: " "
      lore: []

  # --- Formato para cada reporte en la lista del historial ---
  # Puedes simplificarlo respecto a la lista de admin si quieres
  history_report_item_format:
    material: PAPER # Material por defecto
    name: "&eReporte {reportIdShort} &7({date})"
    lore:
      - "&7Reportado por: &f{reporterName}"
      - "&7Razón: &f{reason} {detailsFormatted}" # Placeholder para detalles con paréntesis
      - "&7Servidor: &b{server}"
      - "&7Estado: {statusFormatted}"
      - "&7Asignado a: &f{assignee}"
      - ""
      - "&bClick para ver detalles completos" # Hacerlo clickeable es opcional
    glow_if_active: true # Resaltar reportes activos

Last updated