Comment créer un plug-in Spigot (pour les débutants Java)

Aperçu

Ici, nous allons créer un plug-in Spigot en Java. Comme il est destiné aux débutants en Java, nous expliquerons à partir des connaissances de base de Java. Si vous avez utilisé Java, veuillez l'ignorer si nécessaire. De plus, nous utiliserons ici JDK8, qui est l'environnement actuellement recommandé pour Minecraft.

Préparation à la préparation

Attention JDK8: Un kit de développement pour un langage de programmation appelé Java qui fabrique Minecraft. Cette fois, j'utiliserai la version 8. IntelliJ IDEA: un logiciel appelé environnement de développement complet (IDE) utilisé pour écrire des programmes. (Ci-après IDEA) Il y a d'autres choses comme Eclipse et NetBeans, mais puisque l'auteur utilise IDEA, nous utiliserons également IDEA dans ce cours. Veuillez vous référer à ici pour la localisation japonaise. Puisque l'environnement de l'auteur est traduit en japonais, les éléments de menu, etc. seront expliqués avec des noms japonais. L'auteur est un environnement Windows. Vous devriez pouvoir suivre la même procédure sur un Mac, mais les détails sont inconnus, veuillez donc vérifier par vous-même.

Préparation

Lorsque vous démarrez IDEA, l'écran suivant s'affiche (il vous sera demandé si vous souhaitez importer les paramètres lorsque vous le démarrez pour la première fois, mais "Ne pas importer" sous les options est correct.) IDEA.トップ画面 Appuyez sur "Plug-in" de "Configuration" de l'engrenage en bas à droite. Un champ de saisie apparaîtra, alors recherchez "minecraft". image.png Ici, veuillez installer «Minecraft Development» affiché en haut à gauche. Après l'installation, il vous sera demandé de redémarrer IDEA, alors redémarrez-le.

Si vous ne le voyez pas, essayez "Rechercher dans le référentiel". Minecraft Development installé ici est une extension d'IDEA qui vous aide à créer des modèles tels que le plug-in Spigot.

Créer un modèle

Réglage initial

Il est maintenant temps d'écrire le programme. Appuyez sur Créer un nouveau projet. Si le "SDK de projet" en haut est nul, sélectionnez le dossier java_home dans "Nouveau". (Pour Windows, C: \ Program Files \ Java \ jdk1.8.0_181 etc.) Si Minecraft Development a été installé avec succès, vous devriez voir un élément appelé "Minecraft" dans la liste de gauche, cliquez dessus. image.png De là, vérifiez le plug-in Spigot et appuyez sur Suivant.

Paramètres de construction

image.png Sur cet écran, définissez la version.

ID de groupe

L'ID de groupe spécifie le groupe auquel appartient le plug-in. Les groupes peuvent être divisés par auteur, fonction, etc., mais tout va bien tant qu'ils ne se chevauchent pas avec d'autres personnes. Ici, il s'agit de com.github.rona_tombo dans l'ordre inverse du nom de domaine GitHub de l'auteur. Les seuls caractères qui peuvent être utilisés comme note sont les caractères alphanumériques demi-largeur, le point . et le trait de soulignement _.

ID d'artefact

L'ID d'artefact est l'ID qui distingue le projet. Normalement, vous pouvez utiliser le nom du plug-in.

version

Tout ira bien Gradle Le menu de sélection en bas à droite est passé de Maven par défaut à Gradle. Je peux créer des plug-ins dans les deux cas, mais c'est mon hobby.

Différence entre Maven et Gradle Les deux sont des outils de résolution de dépendances qui vous permettent de gérer la version d'un programme créé par quelqu'un d'autre. L'auteur n'est pas doué pour configurer Maven avec XML, ce qui est difficile à lire pour les humains. Il y a beaucoup de choses que Gradle peut faire.

Spigot Settings image.png Ici, nous allons définir la prise elle-même. Plugin Name Définissez le nom du plug-in. Seuls les caractères alphanumériques demi-largeur peuvent être utilisés.

Version plug-in

Tout ira bien Main Class Name Spécifiez la classe principale (décrite plus loin) du plug-in. Si vous ne savez pas, vous pouvez laisser les paramètres par défaut. Minecraft Version Spécifiez la version cible de Minecraft. La dernière version actuelle est la 1.13.2, mais je pense toujours qu'elle est instable, je vais donc la développer ici avec la 1.12.2.

Paramètre facultatif Ce qui suit fonctionne sans paramètre, mais il est préférable de le définir lors de la distribution ou de la publication.

La description

C'est littéralement une description du plug-in. Seuls les caractères alphanumériques demi-largeur peuvent être utilisés. Authors Le nom de l'auteur. S'il y en a plus d'un, séparez-les par des virgules demi-largeur ,. WebSite Spécifiez l'URL où le plug-in est publié. LogPrefox Spécifiez le préfixe attaché au début du journal. S'il est vide, le nom de la fiche sera utilisé. Load Before Spécifiez le nom du plug-in. Ce plug-in sera chargé avant le plug-in spécifié ici. Si vous en spécifiez plusieurs, séparez-les par des virgules demi-largeur ,. Depend Spécifie le plug-in dont dépend ce plug-in. Le plug-in spécifié ici sera chargé avant ce plug-in. Si le plug-in spécifié ici n'est pas installé, une erreur se produira au démarrage du serveur. Soft Depend La fonction principale est la même que Depend. Cependant, la différence est qu'aucune erreur ne se produira même si le plug-in spécifié ici n'est pas installé. Load at Défini lorsque le plug-in est chargé. Quand tous les mondes ont été lus dans Post World C'est au démarrage du serveur au démarrage (avant de lire le monde).

Paramètres du projet

image.png Si vous ne définissez que le nom du projet, vous pouvez le laisser tel quel.

Si vous appuyez sur Terminer ici, l'écran suivant apparaît. image.png

C'est OK comme ça.

Ecrire le code

image.png Veuillez patienter, c'est ici que vous devez écrire le programme à partir de maintenant. En fait, Minecraft Develop a déjà écrit le code minimum requis sans changer le code. En d'autres termes ... ** Cela fonctionne déjà comme un plug ** (bien que ce soit un plug qui ne fait rien car il n'écrit aucune fonctionnalité, bien sûr).

Étudions maintenant les bases de Java.

Tutorial.java


package com.github.rona_tombo.tutorial;

Cela indique qu'une classe appelée Tutorial (décrite plus loin) appartient à un package (une collection de classes) appelé com.github.rona_tombo.tutorial.

Tutorial.java


import org.bukkit.plugin.java.JavaPlugin;

C'est une déclaration que nous utiliserons la classe ʻorg.bukkit.plugin.java.JavaPlugin`. De cette manière, le nom du package est utilisé pour l'importation, etc.

Tutorial.java


public final class Tutorial extends JavaPlugin{
}

Il s'agit de la déclaration de classe apparue plus tôt. Une classe est une unité des fonctionnalités de base de Java. Les classes peuvent avoir des membres tels que des méthodes (décrites ci-dessous) et des champs (décrits ci-dessous). public est accessible de n'importe où, final est une classe qui ne peut pas être" héritée "(décrite plus loin), Tutorial est un nom et extend est une classe appelée JavaPlugin.

L'héritage consiste à créer une classe basée sur une certaine classe et à ajouter ou réécrire la fonction dans la classe. (Si vous expliquez en détail, cela prendra de la place, je vais donc saisir une autre occasion)

Tutorial.java



	@Override
	public void onEnable(){
		// Plugin startup logic

	}

	@Override
	public void onDisable(){
		// Plugin shutdown logic
	}

C'est dans la classe Tutorial. Telle est la méthode. La méthode est la partie qui est définie dans la classe et qui effectue réellement le traitement. Ces deux méthodes sont définies dans JavaPlugin, qui est la source d'héritage de la classe Tutorial, mais le traitement est réécrit en ajoutant @ Override. public signifie que vous pouvez l'utiliser de n'importe où, void signifie qu'il ne retournera aucun résultat une fois terminé. () Est attaché à la fin de chaque méthode, mais dans certains cas, les informations utilisées pour le traitement sont passées ici en argument.

Alors jouons réellement avec le code ici. Modifiez onEnable et onDisable comme suit.

Tutorial.java


    @Override
    public void onEnable(){
        // Plugin startup logic
        getLogger().info("Le plug-in est activé!");
    }

    @Override
    public void onDisable(){
        // Plugin shutdown logic
        getLogger().info("Le plug-in a été désactivé!");
    }

getLogger est une méthode pour laisser un journal sur la console. Les méthodes ordinaires utilisent des variables d'instance qui instancient une classe (il est plus facile de s'en souvenir). ʻInstance variable name.method name (argument); ` Cependant, les méthodes définies dans votre classe ou votre classe parente peuvent être appelées uniquement par le nom de la méthode sans instanciation. La valeur de retour de la méthode (la valeur retournée après le traitement) peut être compressée dans une variable et d'autres méthodes peuvent être connectées à partir de là. Ici, le journal est laissé comme "Le plug-in a été activé!" Lors du chargement du plug-in, et "Le plug-in a été désactivé!" Lors de sa désactivation.

Si vous pouvez le faire, exécutons-le. Pour Windows, il y a une chose à faire ici. image.png Double-cliquez sur build.gradle dans l'arborescence de gauche pour l'ouvrir. Ajoutez ce qui suit sous la «compatibilité cible».

build.gradle


tasks.withType(AbstractCompile)*.options*.encoding = tasks.withType(GroovyCompile)*.groovyOptions*.encoding = 'UTF-8'

Si vous le pouvez, cliquez sur le triangle en haut à droite de la fenêtre. image.png

Cela commencera à créer le plug-in. Lorsque le message «BUILD SUCCESS FUL» s'affiche, la construction est terminée. Si vous conservez la valeur par défaut, vous devriez avoir un fichier jar appelé plugin name-version.jar dans C: \ Users \ user name \ IDEA Projects \ project name \ build \ lib \, donc 1.12 Essayez de lancer Spigot dans le dossier des plugins .2 Spigot. Essayez également d'arrêter le serveur avec / stop. Si le journal est affiché sur la console, il réussit.

Résumé

Avez-vous compris les connaissances de base de Java? Cette fois, je ne fais que la chose très simple d'afficher le journal sur la console, mais à partir de la prochaine fois, je répondrai aux commandes, lorsque je frappe un bloc, etc. Je veux faire diverses choses. Jusqu'à la fin Merci d'avoir lu. Nous attendons avec impatience votre soutien continu dans cette série.

Recommended Posts

Comment créer un plug-in Spigot (pour les débutants Java)
Spigot (Paper) Introduction à la création d'un plug-in pour 2020 # 01 (Construction de l'environnement)
Comment rendre le Python des débutants plus rapide [numpy]
[Blender] Comment créer un plug-in Blender
Comment créer un système de dialogue dédié aux débutants
Comment utiliser les outils d'analyse de données pour les débutants
Comment créer un plug-in QGIS (génération de package)
Comment créer le plugin Python de Substance Painter (Introduction)
[Pour les débutants] Comment étudier la programmation Mémo privé
Comment convertir le type Python # pour les super débutants de Python: str
[Pour les débutants] Comment étudier le test d'analyse de données Python3
Comment faire un test unitaire Part.2 Conception de classe pour les tests
Python # Comment vérifier le type et le type pour les super débutants
Comment étudier le plugin Bukkit
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 7 Comment créer un module
[Pour les débutants] Comment utiliser l'instruction for sous Linux (variables, etc.)
Comment mettre en œuvre 100 coups de science des données pour les débutants en science des données (pour Windows 10 Home)
Méthode d'apprentissage TensorFlow pour les professionnels des arts libéraux et les débutants en Python
Comment créer un package Python (écrit pour un stagiaire)
Comment convertir le type Python # pour les super débutants de Python: int, float
Pour les débutants, comment gérer les erreurs courantes dans les keras
Comment faire une traduction japonais-anglais
[Pour les non-programmeurs] Comment marcher Kaggle
Comment créer un bot slack
Comment créer un robot - Avancé
Comment créer une fonction récursive
[Blender] Comment rendre les scripts Blender multilingues
Comment créer un robot - Basic
[Pour les débutants] Comment implémenter l'exemple de code O'reilly dans Google Colab
Comment faire un test unitaire Part.1 Modèle de conception pour l'introduction
[Unity] Comment exécuter ML-Agents Release 8 même pour les débutants transcendantaux [Windows]
Comment étudier pour le test G de Deep Learning Association (pour les débutants) [version 2020]
Comment rendre les caractères de Word Cloud monochromatiques
Comment rendre le sélénium aussi léger que possible
Comment faire un modèle pour la détection d'objets avec YOLO en 3 heures
[Python] Comment rendre une classe itérable
Comment créer un fichier * .spec pour pyinstaller.
[Python] Organisation de l'utilisation des instructions
[Cocos2d-x] Comment créer une liaison de script (partie 2)
Comment installer le sous-système Windows pour Linux
Les débutants lisent "Introduction à TensorFlow 2.0 pour les experts"
Comment créer une clé USB à démarrage multiple (compatible Windows 10)
Comment utiliser "deque" pour les données Python
Comment créer un indicateur personnalisé Backtrader
Comment créer un plan de site Pelican
[Cocos2d-x] Comment créer une liaison de script (partie 1)
Comment utiliser l'authentification par empreinte digitale pour KDE
Faisons un plug-in backend pour Errbot
Mémo n ° 4 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Le moyen le plus rapide pour les débutants de maîtriser Python
Une introduction à la programmation orientée objet pour les débutants par les débutants
Pour les débutants à créer un environnement Anaconda. (Note)
Comment créer un pilote de périphérique Linux intégré (8)
Comment créer un pilote de périphérique Linux intégré (1)
Python pour les super débutants Super débutants Python # Facile à éliminer