HEVENTOS
Olá a todos, bem como alguns devem saber eu era diretor do servidor Project273 que acabou fechando esse mês, com isso postei meus plugins feitos para ele no meu github, entre eles está o HEventos que é um sistema de eventos automáticos que fiz para o servidor e com o fim dele estarei disponibilizando-o para quem quiser baixa-lo, eu já havia postado uma versão antiga dele aqui no fórum mas acabei pedindo para apagarem o tópico, essa versão está com mais eventos e melhor do que a antiga.
O plugin conta com 8 tipos diferentes de eventos para o seu servidor, sendo eles os seguintes:
Batata Quente - Evento onde um player receberá uma batata no inventário no inicio e terá que passa-la para os outros jogadores antes que o tempo acabe, quando o tempo acabar o jogador que estiver com a batata é eliminado.
BowSpleef - Evento onde os jogadores recebem um arco com encantamento de fire e tem que atirar as flechas no chão de TNT para que os outros jogadores caiam, quem ficar vivo por ultimo ganha.
Spleef - Evento onde os jogadores ganham uma pá para cavar o chão e derrubar seus inimigos, quem ficar vivo por ultimo ganha.
Killer - Evento onde os clãns são desativados e os jogadores tem que se matar em um si contra si, o ultimo vivo ganha o evento.
Mina Mortal - Evento onde é definida uma área como mina, ela será setada com minérios aleátorios e o pvp ficará ativado, depois de x tempo o evento é encerrado e os jogadores teleportados para o spawn.
Paintball - Evento onde os jogadores ganham uniformes de uma cor que será o seu time e arcos com flechas, o objetivo é acertar os jogadores rivais, o time que eliminar todos os rivais primeiro é o vencedor.
Semaforo - Evento onde os jogadores tem que chegar ao final dele para vencer, mas cuidado, fique de olho no chat, você não pode andar quando o sinal estiver vermelho ou será eliminado.
Evento Normal - Eventos normais onde não há nenhum sistema diferente, pode-se criar vários eventos diferentes desse tipo, como corridas, escalada, labirinto, parkour e etc.
Temos uma grande variedade de eventos dentro de um só plugin, e na próxima versão será criada uma API para que os desenvolvedores possam adicionar mais eventos nesse plugin, vale lembrar que os eventos normais tem até 3 vencedores, sendo primeiro, segundo e terceiro lugar onde você pode definir prêmios diferentes em money e itens.
Vale lembrar também que é possível criar eventos apenas para jogadores VIP's, e sobre o sistema de camarote, os jogadores que estão assistindo ao evento ficam invisíveis para os participantes do evento e eles podem voar pelo local.
NOVIDADE VERSÃO 1.6 - API PARA DESENVOLVEDORES
Nessa nova versão do plugin conta com um sistema de API para os desenvolvedores, onde você poderá integrar seus eventos ao HEventos, podendo inicia-los pelo comando /evento iniciar <nome> <true/false> e deixa-los automático, com isso você só tem que se preocupar em programar apenas o necessário para que o evento funcione.
Listeners
EventoPlayerJoinEvent - Listener chamado quando um player entra em um evento.
EventoPlayerOutEvent - Listener chamado quando um player sai de um evento.
EventoStartEvent - Listener chamado quando um evento inicia.
EventoStopEvent - Listener chamado quando um evento acaba.
EventoPlayerWinEvent - Listener chamado quando um player ganha um evento.
EventoPlayerLoseEvent - Listener chamado quando um player perde um evento.
Para criar um evento utilizando a API do HEventos você deve estender a sua classe a "EventoBase", assim você terá acesso aos métodos necessários para programar seus eventos, basta você reescrevelos adicionando o que você deseja, sendo que o básico já está feito você só deve programar realmente o que o plugin irá fazer de diferente, veja os métodos existentes:
public class ThorBehaviour extends EventoBase {
public ThorBehaviour(YamlConfiguration config) {
super(config);
}
@Override
public void startEvent() {
/*
* Utilize um código aqui para que faca tal coisa ANTES do evento iniciar
*/
super.startEvent();
/*
* Utilize um código aqui para que faca tal coisa DEPOIS do evento iniciar
*/
}
@Override
public void startEventMethod() {
/*
* Utilize um código aqui para que faca tal coisa ENQUANTO o evento inicia
*/
}
@Override
public void scheduledMethod() {
/*
* Utilize um código aqui que será executado a cada 20 ticks, é aqui que ficará a parte lógica do seu evento
*/
}
@Override
public void cancelEventMethod() {
/*
* Utilize um código aqui que será executado quando o evento for cancelado
*/
}
@Override
public void stopEventMethod() {
/*
* Utilize um código aqui que será executado quando o evento acabar
*/
}
@Override
public void resetEvent() {
super.resetEvent();
/*
* Utilize um código aqui para resetar as váriaveis do evento
*/
}
}
Caso você tenha que criar listeners para verificação no seu evento você deverá criar uma classe e extende-la a EventoBaseListeners, assim basta reescrever os métodos existentes caso eles já existam ou criar um novo caso não exista, veja um exemplo:
public class ThorListeners extends EventoBaseListener{
@EventHandler
public void onBlockBreakEvent(BlockBreakEvent e) {
if (HEventosAPI.getEventoOcorrendo() != null) {
}
}
}
Na classe HEventosAPI você tem métodos estáticos que permitem você a ter acesso ao evento que está ocorrendo no momento, a config de mensagens do plugin e criar um cuboid (criar uma área onde você pode verificar coisas como se um player está nela ou não).
Para que o plugin funcione corretamente ele deve conter na sua config obrigatoriamente os seguintes elementos:
Config:
Nome: "Thor"
Evento_Type: "outro"
Chamadas: 5
Tempo_Entre_As_Chamadas: 30
PVP: false
VIP: true
Assistir_Ativado: true
Assistir_Invisivel: true
Contar_Vitoria: true
Contar_Participacao: true
Tempo_Batata_Explodir: 30
Localizacoes:
Saida: "world;-110;92;1482"
Camarote: "VIP;-839;8;1109"
Entrada: "VIP;-839;8;1109"
Aguardando: "VIP;-1535;7;1706"
Premios:
Itens:
- give $player$ diamond 3
Money: 5000
Mensagens:
Aberto:
- " "
- "&9[Thor] &fO evento &6Thor &festa aberto!"
- "&9[Thor] &fPara participar digite &6/evento entrar"
- "&9[Thor] &fEsse evento e pvp &a[OFF]"
- "&9[Thor] &fRisco de morte &c[ON]"
- " "
Aberto_VIP:
- " "
- "&9[Thor VIP] &fO evento &6Thor VIP &festa aberto!"
- "&9[Thor VIP] &fPara participar digite &6/evento entrar"
- "&9[Thor VIP] &fEsse evento e pvp &a[OFF]"
- "&9[Thor VIP] &fRisco de morte &c[ON]"
- " "
Iniciando:
- " "
- "&9[Thor] &fEvento fechado, iniciando!"
- "&9[Thor] &fBoa sorte aos participantes!"
- " "
Cancelado:
- " "
- "&4[Parkour] &cEvento Parkour foi cancelado!"
- " "
Sendo que a parte "evento_type" deve conter o valor "outro", além dessas configs você poderá adicionar outros campos.
E por fim, para que o evento funcione corretamente, no onEnable do seu projeto deve conter o seguinte:
@Override
public void onEnable() {
if(!new File(getDataFolder(), "config.yml").exists()){
saveDefaultConfig();
}
HEventosAPI.getExternalEventos().add(new ThorBehaviour((YamlConfiguration) getConfig()));
getServer().getPluginManager().registerEvents(new ThorListeners(), this);
System.out.println("Plugin Habilitado");
}
Caso tenha ficado muito confuso para entender me avisem que irei fazer um vídeo explicando, além de que essa é a primeira versão para desenvolvedores que faco para o plugin e pode conter alguns bugs, me avisem para que eu possa arrumar.
Veja um exemplo de plugin adicional nesse link: https://github.com/Herobrinedobem/HEventos/tree/master/src/me/herobrinedobem/examples/spleef
Comandos
Player
/evento entrar - Entra no evento
/evento sair - Sai do evento
/evento assistir - Entra no camarote do evento
/evento topvencedores - Mostra os que mais venceram eventos
/evento topparticipacoes - Mostra os que mais participaram de eventos
Staff
/evento iniciar <nome> <true/false> - Inicia um evento, se utilizar true o evento será apenas para VIP's
/evento cancelar - Cancela o evento que está ocorrendo
/evento setentrada <evento> - Seta a entrada de um evento
/evento setsaida <evento> - Seta a saida de um evento
/evento setcamarote <evento> Seta o camarote de um evento
/evento setaguardando <evento> - Seta o lobby de um evento
/evento multiplicador <valor> - Altera o multiplicador/bônus de money dos eventos
/evento multiplicador reset - Reseta o multiplicador/bônus de money dos eventos
/evento tool <evento> - Pega uma ferramenta para ajudar a setar determinadas locs de um evento
/evento lista - Mostra a lista de eventos
Permissões
heventos.admin - Permissão para staff
heventos.vip - Permissão para vip's
Configs
config.yml
batataquente.yml
bowspleef.yml
killer.yml
minamortal.yml
paintball.yml
semaforo.yml
spleef.yml
eventoexemplo.yml
Dependências
Legendchat
Simpleclans 1/2
Vault
Download Atualizado (23/07/2016)
Para baixar basta clicar no link: https://drive.google.com/file/d/0B8M2TutmxiExUFZRZFJZZW1xWUk/view?usp=sharing
Projeto no github: https://github.com/Herobrinedobem/HEventos
Como esse plugin foi feito para um servidor em especifico pode ter algo que não agrade seus desejos.
Bugs? Dicas? Deixe nos comentários.
Espero que gostem, obrigado.