MrPowerGamerBR Postado Novembro 4, 2015 Denunciar Compartilhar Postado Novembro 4, 2015 (editado) (Original em Inglês: https://www.spigotmc.org/threads/guide-how-to-not-write-a-spigot-plugin.101103/) Olá futuros desenvolvedores! Se você clicou neste post, quer dizer que você quer criar códigos limpos e bonitos que até os desenvolvedores mais antigos irão ter inveja. Sem problema. Tudo que você precisa fazer é seguir este 10 passos que você já estará criando plugins pagos para o Spigot Resources em pouco tempo. Como todos os plugins que você fizer serão código fechado (closed-source), você não terá que ficar atento a formatação ou deixar usável para qualquer outra pessoa. Só deixe a ideia na sua cabeça em todo momento, já que ela ira servir como a base deste guia. Ok, antes de mexer com os seus dedos no seu teclado você terá que fazer algumas coisas antes para ter certeza que ele irá compilar. Muitas pessoas irão falar para você baixar o Notepad++ e compilar usando o prompt de comando já que é beneficial ser confortável com ele, mas isto só me assusta, quer dizer, isto é algo level complicadíssimo estilo matrix cara. Toda hora que eu olho para o prompt de comando eu penso que eu sou a Sarah Connor gritando sobre o dia do julgamento e skynet e outras coisas. Então, se você não quer ser o cara responsável pela quase extinção da raça humana, então não mexa com o prompt de comando. Pre-Requisítos Continuando, após você ter o Eclipse configurado você terá que aprender o básico do Java. Muitas pessoas irão falar para você ler os tutoriais oficiais e tentar as coisas você mesmo bla bla bla blah. Mas isto requer a habilidade de leitura. Porque você precisa saber ler? O que ler fez para você de útil? Seguindo esta lógica, eu recomendo assistir todos os vídeos no YouTube que você encontrar, veja os primeiros 5 episódios de thenewboston e você estará pronto para programar. Após fazer isto, só estudar a lista de "palavras importantes" em Java igual como você está estudando uma linguagem nova, é a mesma coisa, só que com mais lógica. Configurando o seu workspace Plugins de KitPvP sempre são os plugins melhores e que tem mais sucessos, fazendo eles um grande exemplo para o nosso tutorial. Primeiramente, você deve criar o nome das suas packages. Você é um forte, independente programador em Java, não deixe convensões de nome limitar a sua criativdade. Além disto, nosso plugin é closed-source, ninguém vai ver que você não está seguindo as convensões! Me.Creeoer.Bukkit.KitPvP.Main Agora é necessário fazer o nosso método onEnable, que é bem simples package Me.Creeoer.Bukkit.KitPvP.Main; public class KitPvP extends JavaPlugin { public static final Logger logger = Logger.getLogger("Minecraft"); public static KitPvP instance; public void onEnable(){ logger.info("KitPvP 1.0 has been enabled"); instance = this; instance.saveDefaultConfig(); } } Perfeito! Agora os próximos passos irão dizer como melhorar esse seu código. Variáveis Globais (e estásticas!) sempre são as melhores, sempre.Sempre use variáveis globais, elas fazem a sua vida ser mais fácil e ninguém irá ver mesmo, heheh. public class GameManager { public static Arena[] arenas; public static final Integer Players ; public static String cuzICan; } Maravilhoso.Use Big Data Types em vez de primitivesSe inglês é a sua linguagem secundária, alguns nomes de classes fazem mais sentidos que outros. Você iria querer ter algo chamado "int" em vez de ter algo mais legível como "Integer"? Bem melhor para ser lido. public int playersInGame = 50; vs. public Integer playersInGame = 50; Incrível.Não gaste o seu tempo verificando antes de fazer um cast.Porque você deverá fazer que o seu plugin funcione perfeitamente para o usuário? O que o usuário já fez por nós? Isto mesmo, nada. O usuário deverá saber como ler a mensagem de erro e descobrir que o comando só pode ser executado por um player e não pelo console. //NÃO public boolean onCommand( Parâmetros e outras coisas estou com preguiça de escrever tudo lol) { //Completamente redudante if(sender instanceof Player) { Player p = (Player) sender; } } Agora você está programando igual um profissionalUse o Bukkit Forums se você encontrar linhas vermelhas tremidasQual é o maior medo dos programadores? Segurança usando Threads? Não. Vazamento de Dados? Não. Fazer um código que sirva para cada situação? Não cara. É Linhas. Vermelhas. Tremidas. Se você pegar um destes no seu código, vá diretamente ao Bukkit Forums antes de tentar fazer qualquer outra coisa antes que você estrague mais o seu código.Tasks Async são seus amigosMuitas coisas do seu plugin podem ser feitas em outra Thread, fazendo seu plugin ser melhor que o Featherboard do Maxim! Aqui está como: public void doEverything(KitPvP.instance, new BukkitRunnable() { //Técnica master de marketing for (Player p: Bukkit.getOnlinePlayers()) { p.kick("me dê sua grana para unban"); } } Seu plugin já pode virar um plugin premium se continuar assim!Não use getters and setters, diamond operators & genéricosGetters e Setters são as coisas mais redundantes já criadas. Porque você irá gastar seu tempo escrevendo essas 3 linhas de código para algo que pode ser feito sem estas novas 3 linhas? Ninguém vai ver seu código tão cedo mesmo lol, já que é um plugin premium closed-source, como todos os plugins hoje em dia. Então, só não use aquilo. Diamond operators são bem assustadores, é aonde o programa INFERE coisas. Até o nome me dá arrepios, "Diamantes são algo inútil" -Nick Openheimer, DeBeer's chairman. Se isto não é o suficiente para convencer você que diamond operators são do mal, só pense em situações da vida real. Você não iria querer que o seu garçom ficasse inferindo qual comida você irá querer, né? Então só não use diamond operators, eles são verdadeiramente assustadores. Isto: public List<String> man = new ArrayList<String>(); vs. public List<String> man = new ArrayList<>(); O mesmo vale para genéricos também. Porque conceitos OOP são redundantesJá que todos os nossos plugins são closed-source, nós nem precisamos admitir que o Java é uma linguagem orientada a objetos. Conceitos como inheritance, polymorphism & genéricos são irão fazer o seu dia e a sua vida mais estressante como ela já é. As regras do Spigot falam que um usuário é só permitido a ter um update do seu plugin, então você nem é obrigado a lançar updates! Só coloque várias classes juntas usando os métodos acima e você terá algo assim: //Ugh eu não consigo escrever mais nada para este guia então eu só vou colocar umas interfaces ali e o eclipse irá corrigir tudo para mim public interface GameManager{ public static Game[] games; public static boolean isInSession(Game game); //O QUE lowerCamelCase fez para mim? public static void SENDINEVERYONE(Game[] games); } Não mexa mais em nada soldado, você já teve um longo dia de trabalho.Terminando tudoOk, após 50 minutos de trabalho, você mereçe um descanso. Delete todos os posts no Bukkit para ninguém poder questionar a sua habilidade de poder criar códigos. Pronto? Agora é a hora de criar uma descrição decente e conquistar usuários. Como você tem confiança nas suas habilidades de programação, deixe o preço do seu plugin estástico e bem alto. Altos preços irão ter mais usuários comprando, afinal, qual plugin bem feito tem preço barato? Bem, eu queria dar mais dicas a vocês mas o meu hot pocket terminou e se eu não passar no teste de portugês amanha eu irei sair da ezcola. É eu sei. Eu? falha em um tezte de portuga? Se você quer continuar este guia só veja os episódios do TheBCBroz apartir do episódio 18. Sugestões são bem vindas! Fonte: http://mrpowergamerbr.blogspot.com.br/2015/11/blog-como-nao-criar-um-plugin.html Editado Novembro 4, 2015 por MrPowerGamerBR 2 Link para o comentário Compartilhar em outros sites More sharing options...
Guest CookieRF Postado Novembro 4, 2015 Denunciar Compartilhar Postado Novembro 4, 2015 Simplesmente, foda! Melhor tuto do mundo ;-; Link para o comentário Compartilhar em outros sites More sharing options...
Metalflame12 Postado Novembro 4, 2015 Denunciar Compartilhar Postado Novembro 4, 2015 A pior parte é o cara ter medo de console '_' É uma das melhores ferramentas e o cara ainda fala pra não usar... Link para o comentário Compartilhar em outros sites More sharing options...
Guest Zoro125 Postado Novembro 4, 2015 Denunciar Compartilhar Postado Novembro 4, 2015 //Técnica master de marketingfor (Player p: Bukkit.getOnlinePlayers()) {p.kick("me dê sua grana para unban"); KKKKKKKKKKKKKK Rachei @Topic Legal parabéns! Link para o comentário Compartilhar em outros sites More sharing options...
_Kurimatzu_ Postado Novembro 4, 2015 Denunciar Compartilhar Postado Novembro 4, 2015 //Técnica master de marketing for (Player p: Bukkit.getOnlinePlayers()) { p.kick("me dê sua grana para unban"); KKKKKKKKKKKKKK Rachei @Topic Legal parabéns! Link para o comentário Compartilhar em outros sites More sharing options...
LymeeFairy Postado Janeiro 6, 2021 Denunciar Compartilhar Postado Janeiro 6, 2021 Seu tópico foi marcado como Inativo. Para reverter esta ação, entre em contato com a equipe de Moderação. OBS: Essa mensagem é automática. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados