Criar Eventos
Este guia é para o EliteMobs 10 e versões posteriores
O que são Eventos Customizados?
Eventos Customizados aqui se referem a eventos que ocorrem aleatoriamente dentro do jogo, seja com base em ações dos jogadores ou com um gatilho temporizado. O plugin já vem pré-carregado com vários Eventos Customizados, como o evento Balrog, o evento Kraken e os eventos Treasure Goblin, para citar alguns.
Este sistema é chamado de Eventos Customizados porque os eventos não só podem ser customizados como também criados do zero. O que se segue é um guia sobre como criar e customizar seus próprios eventos.
Criando Seus Eventos Customizados
Os arquivos de configuração de evento customizado devem ser criados em:
plugins/EliteMobs/customevents/
Os arquivos devem usar o formato .yml. O nome do arquivo (sem a extensão .yml) se torna o identificador do evento.
Exemplo: my_cool_event.yml é referenciado como my_cool_event
Configurações comuns
As configurações a seguir podem/devem ser usadas tanto para eventos de ação quanto para eventos temporizados.
isEnabled
Define se o evento está ativado.
| Chave | Valores | Padrão |
|---|---|---|
isEnabled | Boolean | true |
Exemplo
isEnabled: true
eventType
Define o tipo do evento.
| Chave | Valores | Padrão |
|---|---|---|
eventType | DEFAULT / BREAK_BLOCK / FISH / TILL_SOIL / TIMED | nenhum |
Note que BREAK_BLOCK, FISH e TILL_SOIL são Eventos de Ação e TIMED são Eventos Temporizados. DEFAULT é para eventos disparados por outros meios ou condições especiais.
Exemplo
eventType: BREAK_BLOCK
bossFilenames
Define a lista de bosses que serão spawnados. Obrigatório!
| Chave | Valores | Padrão |
|---|---|---|
bossFilenames | String List | nenhum |
Exemplo
bossFilenames:
- balrog.yml
- my_event_boss.yml
announcementPriority
Define a prioridade de anúncio.
| Chave | Valores | Padrão |
|---|---|---|
announcementPriority | Integer | 0 |
Exemplo
announcementPriority: 1
startMessage
Define a mensagem enviada no início do evento.
| Chave | Valores | Padrão |
|---|---|---|
startMessage | String | nenhum |
Exemplo
startMessage: An event has started!
![]()
endMessage
Define a mensagem enviada no final do evento.
| Chave | Valores | Padrão |
|---|---|---|
endMessage | String | nenhum |
Exemplo
endMessage: An event has ended!
eventStartCommands
Define os comandos que rodam no início do evento.
| Chave | Valores | Padrão |
|---|---|---|
eventStartCommands | String List | nenhum |
Exemplo
eventStartCommands:
- say The event now starts!!
- "$chance=0.5$ say What a spawn!"

eventEndCommands
Define os comandos que rodam no final do evento.
| Chave | Valores | Padrão |
|---|---|---|
eventEndCommands | String List | nenhum |
Exemplo
eventEndCommands:
- say The event ends, so sad.
- "$chance=0.5$ say Too slow bud!"

Exemplo de Configuração de Evento
isEnabled: true
bossFilenames:
- "cool_boss.yml"
- "other_cool_boss.yml"
announcementPriority: 3
startMessage: "Cool event is starting!"
endMessage: "Cool event is ending!"
eventStartCommands:
- say The event started!
eventEndCommands:
- say The event ended!
Exemplo Completo de Evento Temporizado
isEnabled: true
eventType: TIMED
bossFilenames:
- "my_timed_boss.yml"
announcementPriority: 3
startMessage: "A timed event has started!"
endMessage: "The timed event has ended!"
eventStartCommands:
- say The timed event began!
eventEndCommands:
- say The timed event concluded!
spawnType: "my_spawn_location.yml"
localCooldown: 120
globalCooldown: 30
weight: 100
eventDuration: 15
endEventWithBossDeath: true
minimumPlayerCount: 1
Eventos de Ação
Eventos que têm uma chance de rodar quando uma ação específica, como quebrar um bloco ou pescar, acontece.
Nota: Os eventos de ação aplicam automaticamente um cooldown por jogador para impedir que o mesmo jogador dispare eventos repetidamente. O cooldown tem um padrão de 4 minutos e é configurável através de actionEventMinimumCooldownMinutes no events.yml.
chance
Define a chance de o evento acontecer quando a ação ocorre.
| Chave | Valores | Padrão |
|---|---|---|
chance | Valor entre 0.0 e 1.0 | 0 |
Exemplo
chance: 0.001
breakableMaterials
Define a lista de materiais a verificar se a ação estiver definida como BREAK_BLOCK.
| Chave | Valores | Padrão |
|---|---|---|
breakableMaterials | Lista de materiais | nenhum |
Exemplo
breakableMaterials:
- BEEHIVE
- BIRCH_WOOD
Exemplo de Configuração
chance: 0.001
breakableMaterials:
- COAL_ORE
Define uma chance de 0,1% de rodar o evento quando um bloco de minério de carvão é quebrado, assumindo que o tipo de evento seja BREAK_BLOCK.
Exemplo Completo de Evento de Ação
isEnabled: true
eventType: BREAK_BLOCK
bossFilenames:
- "mining_boss.yml"
announcementPriority: 2
startMessage: "You've awakened something..."
chance: 0.001
breakableMaterials:
- DIAMOND_ORE
- EMERALD_ORE
Eventos Temporizados
Eventos Temporizados são eventos que acontecem em intervalos de tempo configuráveis. Uma vez que o cooldown de um evento temporizado termina, um evento temporizado aleatório é escolhido da lista de eventos temporizados com base no peso do evento.
spawnType
Define o Spawn Customizado usado pelo evento, que define onde o boss pode spawnar.
| Chave | Valores | Padrão |
|---|---|---|
spawnType | Filename | nenhum |
Exemplo
spawnType: nether_spawn.yml
localCooldown
Define a quantidade de tempo, em minutos, antes que este evento possa ser escolhido novamente.
| Chave | Valores | Padrão |
|---|---|---|
localCooldown | Double | 0 |
Exemplo
localCooldown: 120
globalCooldown
Define a quantidade de tempo, em minutos, antes que o próximo evento seja escolhido.
| Chave | Valores | Padrão |
|---|---|---|
globalCooldown | Double | 0 |
Exemplo
globalCooldown: 60
weight
Define o peso do evento, afetando a chance de ele ser escolhido em relação a outros eventos. Recomendado: 100.
O sistema de peso determina a probabilidade relativa de seleção do evento. Por exemplo:
- Evento A com peso 100 vs Evento B com peso 50 = o Evento A tem o dobro de chance de ser selecionado
- Peso maior = maior chance de ser escolhido
- O agendador de eventos temporizados começa cerca de 5 minutos após o início do servidor e, em seguida, verifica uma vez por minuto se o cooldown global já passou e se um evento pode ser escolhido
| Chave | Valores | Padrão |
|---|---|---|
weight | Double | 0 |
Exemplo
weight: 60.5
eventDuration
Define a duração máxima do evento, em minutos.
| Chave | Valores | Padrão |
|---|---|---|
eventDuration | Double | 0 |
Exemplo
eventDuration: 30
endEventWithBossDeath
Define se o evento termina com a morte do boss.
| Chave | Valores | Padrão |
|---|---|---|
endEventWithBossDeath | Boolean | true |
Exemplo
endEventWithBossDeath: true
eventEndTime
Define o horário dentro do jogo (em ticks) em que o evento termina. Use o sistema de tempo do Minecraft, onde 0=amanhecer, 6000=meio-dia, 12000=anoitecer, 18000=meia-noite, 23000=madrugada. Defina como -1 para desabilitar o término baseado no horário.
| Chave | Valores | Padrão |
|---|---|---|
eventEndTime | Integer (0-24000, -1 para desabilitar) | -1 |
Exemplo
eventEndTime: 23000
minimumPlayerCount
Define a quantidade mínima de jogadores online antes que o evento comece.
| Chave | Valores | Padrão |
|---|---|---|
minimumPlayerCount | Integer | 1 |
Exemplo
minimumPlayerCount: 5
Note que os eventos são enfileirados, ou seja, eles só começarão quando as condições definidas no spawnType forem atendidas.
Exemplo de Configuração de Eventos
isEnabled: true
bossFilenames:
- "cool_boss.yml"
- "other_cool_boss.yml"
announcementPriority: 3
startMessage: "Cool event is starting!"
endMessage: "Cool event is ending!"
eventStartCommands:
- say The event started!
eventEndCommands:
- say The event ended!
spawnType: "myCoolSpawn.yml"
localCooldown: 30
globalCooldown: 15
weight: 100
eventDuration: 20
endEventWithBossDeath: true
eventEndTime: 10000
minimumPlayerCount: 5
