LogoyStore
yTerrenosAddons

yTerrenosBlocksAddon

Sistema de blocos para criação e expansão de terrenos no yTerrenos.

Visão geral

O yTerrenosBlocksAddon habilita o sistema de blocos do yTerrenos. Quando o addon está ativo, o plugin libera comandos e eventos extras para trabalhar com blocos como uma moeda interna usada na criação e expansão de terrenos.

No código, a ativação é detectada por:

BukkitBootstrap.isActivated("yTerrenosBlocksAddon")

Quando essa verificação retorna true, o yTerrenos registra:

  • Comando /blocks, com aliases configuráveis.
  • Listener de item de blocos ativável.
  • Ferramenta de seleção para criar e expandir terrenos visualmente.
  • Limpeza automática de previews de seleção ao sair, trocar item ou trocar mão.

Recursos habilitados

Sistema de blocos

Cada jogador possui um saldo de blocos armazenado no objeto PlayerTerreno.

Esse saldo pode ser usado para:

  • Consultar quantos blocos o jogador possui.
  • Enviar blocos para outros jogadores.
  • Receber blocos via item ativável.
  • Criar terrenos usando a ferramenta de seleção.
  • Expandir terrenos existentes usando a ferramenta de seleção.

Quando um terreno é criado pela ferramenta com selection-tool.use-blocks: true, o custo é:

tamanho * tamanho

Exemplo: um terreno 16x16 custa 256 blocos.

Quando um terreno é expandido pela ferramenta, o custo é incremental:

novo_tamanho^2 - tamanho_atual^2

Item de blocos

O addon permite gerar um item físico que representa uma quantidade de blocos.

Ao clicar com o botão direito segurando o item, o jogador ativa os blocos e o valor é somado ao saldo dele.

Ao clicar com shift + botão direito, o jogador compacta todos os itens de blocos do inventário em um único item, somando os valores contidos neles.

O item é identificado por NBT:

yTerrenos-Block

Ferramenta de seleção

A ferramenta de seleção permite criar ou expandir terrenos clicando em blocos do mundo.

Ela é entregue pelo comando:

/terreno tool
/terreno ferramenta
/terreno wand

A ferramenta é identificada por NBT:

yTerrenos-SelectionTool

Fluxo para criar um terreno:

  1. O jogador pega a ferramenta com /terreno tool.
  2. Clica com botão direito no primeiro canto.
  3. Mira ou clica no segundo canto para gerar a pré-visualização.
  4. Clica dentro da área selecionada para confirmar a criação.

Fluxo para expandir um terreno:

  1. O jogador segura a ferramenta.
  2. Clica na borda de um terreno próprio.
  3. Seleciona o novo canto externo da área.
  4. Clica dentro da área expandida para confirmar.

Durante a seleção, o addon renderiza fake-blocks para mostrar o estado da área:

EstadoMaterial usado
Área válidaselection-tool.preview-material
Área bloqueadaselection-tool.preview-material-blocked
Blocos insuficientesselection-tool.preview-material-no-blocks

O preview é limpo automaticamente quando o jogador:

  • Sai do servidor.
  • Troca o slot da hotbar segurando a ferramenta.
  • Usa a tecla de troca de mão, quando suportado pela versão do servidor.

Comandos

O comando principal do sistema de blocos é configurado em commands.yml:

commands:
  blocks: 'blocks|block|blocos|bloco'
ComandoDescriçãoPermissão
/blocksMostra o saldo de blocos do próprio jogador.yterrenos.blocks.use
/blocks topVer o ranking de blocos.yterrenos.blocks.use
/blocks <player>Mostra o saldo de blocos de outro jogador online.yterrenos.blocks.look
/blocks enviar <player> <quantia>Envia blocos do saldo do jogador para outro jogador online.yterrenos.blocks.send
/blocks add <player/all> <quantia>Adiciona blocos ao saldo de um jogador online ou de todos os jogadores online.yterrenos.blocks.add
/blocks remove <player> <quantia>Remove blocos do saldo de um jogador online.yterrenos.blocks.remove
/blocks set <player> <quantia>Define o saldo de blocos de um jogador online.yterrenos.blocks.set
/blocks give <player/all> <quantia>Entrega blocos em forma de item para um jogador online ou para todos os jogadores online.yterrenos.blocks.give
/blocks helpMostra a ajuda do comando de blocos.yterrenos.blocks.help
/terreno toolEntrega a ferramenta de seleção ao jogador.yterrenos.tool

Aliases do subcomando enviar:

send

Aliases do subcomando add:

add
adicionar

Aliases do subcomando remove:

remove
remover

Aliases do subcomando set:

set
setar

Aliases do subcomando give:

give

Aliases do subcomando help:

help
ajuda

Aliases do comando /terreno tool:

tool
ferramenta
wand

Requisitos do /terreno tool:

  • O executor precisa ser um jogador.
  • selection-tool.enabled precisa estar ativo.
  • O inventário do jogador precisa ter espaço livre.

Configuração

commands.yml

Define o comando e aliases do sistema de blocos:

commands:
  blocks: 'blocks|block|blocos|bloco'

config.yml - item de blocos

Seção responsável pelo item ativável de blocos:

block:
  material: '3173cb01a8185f4018e219c2e24c1f72140a7bace55aec93d5087b4d81860364'
  name: '&b+{amount} Blocos'
  lore:
    - ''
    - '&fQuantia: &b{amount}'
    - ''
    - '&7Clique com botao direito para ativar.'
    - ''
    - '&7Clique com shift + botao direito para compactar'
    - '&7todos os seus blocos no inventario em 1 so.'
    - ''

Placeholder disponível:

{amount}

config.yml - ferramenta de seleção

Seção responsável pela criação e expansão visual de terrenos:

selection-tool:
  enabled: true
  use-blocks: true
  item:
    material: 'DIAMOND_AXE'
    name: '&6Ferramenta de Selecao'
    lore:
      - '&7Clique direito: Selecionar canto'
      - '&7Dentro da area: Confirmar criacao'
  preview-material: 'GLASS'
  preview-material-blocked: 'REDSTONE_BLOCK'
  preview-material-no-blocks: 'BEDROCK'

Campos:

CampoDescrição
enabledAtiva ou desativa a ferramenta de seleção.
use-blocksQuando true, a ferramenta desconta blocos do saldo do jogador.
itemDefine o item entregue pelo comando /terreno tool.
preview-materialMaterial usado na pré-visualização válida.
preview-material-blockedMaterial usado quando a área não pode ser usada.
preview-material-no-blocksMaterial usado quando o jogador não tem blocos suficientes.

Quando use-blocks está como false, a criação e expansão passam a usar o fluxo normal de custo do yTerrenos, como buy-cost e demais regras internas.

Regras da ferramenta de seleção

Ao criar um terreno, a ferramenta respeita:

  • Mundos permitidos em general.allowed-worlds.
  • Permissão de mundo yterrenos.terreno.world.<mundo>.
  • Tamanho mínimo em general.terrain-min-size.
  • Tamanho máximo em general.terrain-max-size.
  • Distância mínima em general.terrain-min-distance.
  • Limites da world border.
  • Saldo de blocos, quando selection-tool.use-blocks está ativo.

Ao expandir um terreno, a ferramenta respeita:

  • Propriedade do terreno.
  • Tamanho máximo configurado.
  • Distância mínima de outros terrenos.
  • Limites da world border.
  • Saldo de blocos para o custo incremental.

Mensagens

As mensagens do addon ficam em messages.yml, dentro da seção chat.

Principais chaves:

selection-tool-off: '&cO sistema de ferramenta de selecao esta desativado.'
selection-tool-received: '&aVoce recebeu a Ferramenta de Selecao.'
selection-corner1: '&aCanto 1 definido em &f({x}, {y}, {z})&a.'
selection-corner2: '&aCanto 2 definido. Tamanho: &f{size}x{size} &a(&f{blocks} blocos&a). Clique dentro da area para confirmar.'
selection-confirm: '&aTerreno criado com sucesso via ferramenta de selecao.'
selection-cancelled: '&cSelecao cancelada.'
selection-not-enough-blocks: '&cVoce nao tem blocos suficientes. Necessario: &f{needed}&c, disponivel: &f{available}&c.'
selection-expand-mode: '&emodo de expansao ativado para o terreno &f{name}&e. Selecione os cantos da nova area.'
blocks: '&bVoce possui &f{blocks} blocos&b.'
blocks-player: '&bO jogador &f{player}&b possui &f{blocks} blocos&b.'
blocks-added: '&bVoce adicionou &f{blocks} blocos&b ao jogador &f{player}&b.'
blocks-removed: '&bVoce removeu &f{blocks} blocos&b do jogador &f{player}&b.'
blocks-set: '&bVoce setou &f{blocks} blocos&b para o jogador &f{player}&b.'
blocks-give: '&bVoce deu &f{blocks} &bblocos para o jogador &f{player}&b.'
blocks-converted: '&bVoce compactou todos seus blocos em 1.'
blocks-activated: '&bVoce ativou &f{blocks} blocos&b.'
blocks-sent: '&bVoce enviou &f{blocks} blocos&b para o jogador &f{player}&b.'
blocks-received: '&bVoce recebeu &f{blocks} blocos&b do jogador &f{player}&b.'

Permissões

PermissãoDescrição
yterrenos.blocks.usePermite ver o próprio saldo de blocos.
yterrenos.blocks.lookPermite ver o saldo de outro jogador online.
yterrenos.blocks.sendPermite enviar blocos para outro jogador.
yterrenos.blocks.addPermite adicionar blocos ao saldo de jogadores.
yterrenos.blocks.removePermite remover blocos do saldo de jogadores.
yterrenos.blocks.setPermite definir o saldo de blocos de jogadores.
yterrenos.blocks.givePermite entregar blocos como item.
yterrenos.blocks.helpPermite ver a ajuda do comando de blocos.
yterrenos.toolPermite pegar a ferramenta de seleção.
yterrenos.terreno.world.<mundo>Permite criar terrenos no mundo informado.

Observações técnicas

  • O addon precisa estar ativo no yPlugins/bootstrap para que os comandos e listeners sejam registrados.
  • O comando /blocks só é registrado quando yTerrenosBlocksAddon está ativo.
  • A maioria das operações administrativas de blocos trabalha apenas com jogadores online, pois usa Bukkit.getPlayerExact.
  • O item de blocos e a ferramenta de seleção dependem de NBT para identificação.
  • Os previews da ferramenta são fake-blocks enviados por pacote; eles não alteram os blocos reais do mundo.
  • Ao desligar o plugin, o yTerrenos salva snapshots de blocos e limpa seleções temporárias ativas.

Nesta página