2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

最速で作るKotlin Minecraft Plugin開発 B-1 ライブラリの入れ方

Last updated at Posted at 2024-08-01

概要

  1. build.gradleの記述
  2. ライブラリの選び方、調べ方
  3. 筆者オススメ

build.gradleの記述

ライブラリやフレームワークというのはざっくり分かりやすく言うなら「ある物事を達成するために使いやすくされたプログラム」です。正式な定義はもう少し異なりますが、現時点ではこの理解で問題ないです。
ライブラリやフレームワークというのはそのままだと使いづらいSpigotのコマンド追加やGUI追加などを非常にやりやすくしてくれるため、使えるときはじゃんじゃん使っていきましょう。
ライブラリやフレームワークを自分のプロジェクトに導入するときはbuild.gradleに対して依存関係の追加と解決を行わなければなりません。
ライブラリやフレームワークを積極的に使うのは賛否両論ありますが

  1. 早く実装できる
  2. メンテナンスがしやすい
  3. コードが少なくなることが多い
    等の理由があるため、このシリーズでは積極的に使うことを推奨するという形にします。
    大抵の場合自分がメンテナンスがめんどくさくなる確率の方がライブラリの開発元がメンテナンスを終了する確率よりも高いです。

ライブラリやフレームワークだけでなく、他のプラグインのAPIを使用したい(= 他のプラグインの機能を借りたい)時にも同様のことを行います。


今回はサンプルとしてWeapons MechanicsのAPIを使用するために依存関係に追加したいと思います。

現時点でbuild.gradleは多少違いはあれど、下記のようになっていると思います。

plugins {
    id 'java'
    id 'org.jetbrains.kotlin.jvm'
    id "com.github.johnrengelman.shadow" version "8.1.1"
}

group = 'com.github.ryuzu'
version = '1.0.0'

repositories {
    mavenCentral()
    maven {
        name = "papermc-repo"
        url = "https://repo.papermc.io/repository/maven-public/"
    }
    maven {
        name = "sonatype"
        url = "https://oss.sonatype.org/content/groups/public/"
    }
}

dependencies {
    compileOnly "io.papermc.paper:paper-api:1.20.6-R0.1-SNAPSHOT"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
}

// 省略

Weapons MechanicsのドキュメントにはGradleに下記のように追記すればAPIが使えるよと書かれているので、追記します。

image.png

この時、自分の持っているファイルのbuild.gradleには既にrepositoriesのカッコの中に「mvenCentral()」が既に入っているため、重複して書く必要がないことが分かります。

加えてこのドキュメントに書かれているのはbuild.gradleでの書き方ではなく、build.gradle.ktsの書き方です。親戚みたいなもので書き方が微妙に異なります。
この時は一度コピペをして既に自分持っているbuild.gradleにフォーマットを合わせるようにしましょう。

implementation("com.cjcrafter:weaponmechanics:3.4.1")
-->
implementation "com.cjcrafter:weaponmechanics:3.4.1" 

こうなりますね。


plugins {
    id 'java'
    id 'org.jetbrains.kotlin.jvm'
    id "com.github.johnrengelman.shadow" version "8.1.1"
}

group = 'com.github.ryuzu'
version = '1.0.0'

repositories {
    mavenCentral()
    maven {
        name = "papermc-repo"
        url = "https://repo.papermc.io/repository/maven-public/"
    }
    maven {
        name = "sonatype"
        url = "https://oss.sonatype.org/content/groups/public/"
    }
}

dependencies {
    compileOnly "io.papermc.paper:paper-api:1.20.6-R0.1-SNAPSHOT"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    implementation "com.cjcrafter:weaponmechanics:3.4.1" 
}

// 省略

よって最終的なbuild.gradleの中身はこうなります。

どうしても分からなければChatGPTにお願いしましょう。解説も頼むとよいと思います。

build.gradleを編集したら毎度Ctrl + Shift + oのショートカットを実行してください(右上にボヤっと出てくるgradleアイコンをクリックでもよいです。環境構築編でも同じようなことをやりましたね)

ライブラリの選び方、調べ方

選び方

  1. ダウンロード数、スター数などが多い
  2. 長期的にメンテナンスされている(= 対応バージョンが多い。最新のバージョンまで対応している)

同じような機能を持つライブラリは多いので、上記の点を意識して選択しましょう。

調べ方

  1. 「Spigot 〇〇 Library」で検索(例: 「Spigot Inventory Library」「Spigot Command Library」
  2. Spigotのライブラリ一覧ダウンロード数順で良さそうなのを見つける。

筆者オススメ

ここではライブラリ、フレームワーク、API利用プラグインを紹介していきます。

ここではMinecraft関連のものはSpigotのページを示していますが、Spigotページに詳しい使い方が書かれてない場合、Source Codeという部分に書かれているURLをクリックするとより詳しい依存関係の追加方法や開発者向けドキュメントが存在する場合があります。
image.png

お疲れさまでした。

目次
前の話
次の話

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?