Ir para conteúdo

[Tutorial] Comando /kick - IntelliJ


Atlvntis.

Posts Recomendados

WjyhCQQ.png

Bom dia, boa tarte, boa noite Gamers.

Venho hoje, por meio deste tutorial, ensiná-los a

COMO FAZER O COMANDO /KICK

usando o software IntelliJ IDEA, na plataforma Maven.

 

 

KNfF4ei.png

 

Clique em Create New Project, Selecione a aba Maven,

em Project SDK, selecione o seu java.

 

JI9w42V.png

 

Após isso clique em Next.

 

 

Agora preencha o campo GroupID com um schema que identifique os seus projetos como um todo.

Lembrando que é preciso seguir a formatação de packages.

 

Preencha o ArtifactID com o nome de seu plugin.

 

E o campo Version com a versão de seu plugin.

 

1yQbmIz.png

 

Clique em Next e depois em Finish.

 

n8TdVzx.png

 

Para trabalharmos com Minecraft, precisamos implementar a API do Bukkit.

Adicione a API do bukkit implementando uma dependencia. Código:

<repositories>
        <repository>
            <id>spigotmc-repo</id>
            <url>https://hub.spigotmc.org/nexus/content/groups/public/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.bukkit</groupId>
            <artifactId>bukkit</artifactId>
            <version>1.8.8-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

Configure a Build do plugin. Código:

    <build>
        <defaultGoal>clean package</defaultGoal>
        <plugins>
            <plugin>
                <version>3.6.1</version>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <minimizeJar>true</minimizeJar>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

No final, sua POM.XML deve ser algo parecido a isso:

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>net.targon.atlvntis</groupId>
    <artifactId>tutorialkick</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <defaultGoal>clean package</defaultGoal>
        <plugins>
            <plugin>
                <version>3.6.1</version>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <minimizeJar>true</minimizeJar>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

    <repositories>
        <repository>
            <id>spigotmc-repo</id>
            <url>https://hub.spigotmc.org/nexus/content/groups/public/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.bukkit</groupId>
            <artifactId>bukkit</artifactId>
            <version>1.8.8-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

</project>

 

 

0Dg9UKC.png

 

Clique com o botão direito na pasta Resources > New > File.

Coloque o nome do arquivo de plugin.yml.

 

Coloque 6 sessões no arquivo.

• ​name - Nome do seu plugin.

• ​description - Descrição do seu plugin.

• ​version - Versão do seu plugin.

• ​author- Autor do seu plugin.

• ​main - Endereço da classe principal. (Deixe em branco por enquanto)

• ​commands - Comandos do seu plugin. (Deixe em branco por enquanto)

 

Após configurar, sua plugin.yml deve ser algo parecido a isso:

 

 

name: TutorialKick
description: A Tutorial Plugin.
version: ${project.version}
author: [Atlvntis]
main:
commands: 

 

 

SF6f1ZC.png

 

Clique com o botão direito na pasta Java > New > Package.

Coloque o nome de sua package. (Exemplo: me.<seunome>.<seuplugin>)

Após isso, clique com o botão direito em sua package > New > Class.

Nomeie a classe como Main.

 

Seu projeto deve estar algo parecido a isso:

 

BLFCXCU.png

 

(Coloque o endereço de sua Main na sessão main do arquivo plugin.yml,

que deixamos em branco previamente)

 

mgeHRfd.png

 

Primeiramente, extenda a classe Main para JavaPlugin e implemente CommandExecutor.

 

O4AC51w.png

 

Após isso, criaremos o método OnEnable, que será chamado quando o plugin é "carregado".

 

LlS6B8V.png

 

E finalmente criamos o comando em si.

Código do comando com as partes explicadas:

 

 

 

    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {

        if(command.getName().equalsIgnoreCase("kick")) { //Checamos se o comando enviado foi /kick.

            if(!(sender instanceof Player)) //Checamos se quem enviou é um Jogador. Caso não seja, retorna.
                return true;

            Player player = (Player) sender; //Definimos a variável do player.

            if(!player.hasPermission("tutorialkick.kick")) { //Checamos se o player tem a permissão. Caso não tenha...
                player.sendMessage("§cSem permissão"); //Mandamos uma mensagem...
                return true; // e retornamos.
            }

            //o comando será /kick <jogador> <motivo>

            if(args.length < 2) { //Checamos se o comando tem os argumentos necessários. Caso não tenha...
                player.sendMessage("§cUse /kick <jogador> <motivo>"); //Mandamos uma mensagem...
                return true; // e retornamos.
            }

            Player target = Bukkit.getPlayerExact(args[0]); //Definimos a variável do alvo.

            if( target == null || !target.isOnline()) { //Se o alvo não estiver online ou for nulo...
                player.sendMessage("§cJogador não encontrado."); //Mandamos uma mensagem...
                return true; // e retornamos.
            }

            StringBuilder sb = new StringBuilder();
            for(int i = 1; i < args.length; i++) { //Loopamos o motivo do kick.
                sb.append(args[i]);
                sb.append(" ");
            }

            Bukkit.broadcastMessage("§eO jogador §f" + target.getName() + " §efoi expulso por §f" + player.getName() + "§e.");
            Bukkit.broadcastMessage("§eMotivo: §f" + sb.toString()); //Mandamos mensagem ao servidor inteiro.

            target.kickPlayer("§eVocê foi kickado por §f" + player.getName() + "§e!\n§eMotivo: §f" + sb.toString()); //Kickamos o jogador.

            return true; //Retornamos.

        }

        return false;

    } 

 


 

Agora registramos o comando no OnEnable.

 

pXFQUxt.png

 

Neste ponto do tutorial, sua main deve estar algo parecido a isto:

 

 

 

package net.targon.atlvntis.tutorialkick;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements CommandExecutor {

    public void onEnable() {

        getCommand("kick").setExecutor(this);

    }


    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {

        if(command.getName().equalsIgnoreCase("kick")) { //Checamos se o comando enviado foi /kick.

            if(!(sender instanceof Player)) //Checamos se quem enviou é um Jogador. Caso não seja, retorna.
                return true;

            Player player = (Player) sender; //Definimos a variável do player.

            if(!player.hasPermission("tutorialkick.kick")) { //Checamos se o player tem a permissão. Caso não tenha...
                player.sendMessage("§cSem permissão"); //Mandamos uma mensagem...
                return true; // e retornamos.
            }

            //o comando será /kick <jogador> <motivo>

            if(args.length < 2) { //Checamos se o comando tem os argumentos necessários. Caso não tenha...
                player.sendMessage("§cUse /kick <jogador> <motivo>"); //Mandamos uma mensagem...
                return true; // e retornamos.
            }

            Player target = Bukkit.getPlayerExact(args[0]); //Definimos a variável do alvo.

            if(!target.isOnline() || target == null) { //Se o alvo não estiver online ou for nulo...
                player.sendMessage("§cJogador não encontrado."); //Mandamos uma mensagem...
                return true; // e retornamos.
            }

            StringBuilder sb = new StringBuilder();
            for(int i = 2; i < args.length; i++) { //Loopamos o motivo do kick.
                sb.append(args[i]);
                sb.append(" ");
            }

            Bukkit.broadcastMessage("§eO jogador §f" + target.getName() + " §efoi expulso por §f" + player.getName() + "§e.");
            Bukkit.broadcastMessage("§eMotivo: §f" + sb.toString()); //Mandamos mensagem ao servidor inteiro.

            target.kickPlayer("§eVocê foi kickado por §f" + player.getName() + "§e!\n§eMotivo: §f" + sb.toString()); //Kickamos o jogador.

            return true; //Retornamos.

        }

        return false;

    }
}
 

 

 

Por ultimo registramos o comando no plugin.yml.

 

JJUpqkK.png

 

UDKImlZ.png

 

Clique no dropdown do canto superior direito > Edit Configurations...

 

GeQ8cxD.png

 

Clique no + > Maven.

Troque o Name para qualquer nome de sua escolha.

Em Command line, coloque as seguintes palavras: clean install.

 

1SFrP5W.png

 

Clique em OK.

 

Após isso, clique na setinha verde, e seu plugin irá compilar.

 

5JW1fHC.png

 

Pegue o plugin na pasta Target que foi gerada, e arraste para os eu servidor.

 

Bq8n32R.png

 

G4QSFno.png

 

KDemZKq.gif

 

yTCeq2X.png

 

Se você chegou até aqui, espero que o tutorial tenha um bom uso para você.

 

Quer mais tutoriais ?

Escreve ai em baixo o que você quer aprender que eu faço um esforço! 

 

Obrigado por ter lido e até a proxima.

 

Source no GitHub: Clique Aqui.

Editado por Atlvntis.
Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, a class='ipsType_brandedLink' href='https://gamersboard.com.br/login/' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title='Sign In Now'>acesse agora para postar com sua conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

Processando...
×
×
  • Criar Novo...