2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

マインクラフトspigotプラグイン アクセスしてきたプレイヤーにメッセージとタイトルを送信する

Last updated at Posted at 2020-01-22

Spigotプラグイン:アクセスしてきたプレイヤーにメッセージとタイトルを送信する。

注意:spigotプラグイン開発の環境などは整った前提で進めます。

目次

1. [作りたいもの](#anchor1) 2. [プロジェクト作成](#anchor2) 3. [イベントリスナーインターフェイスの実装](#anchor3)

作りたいもの

・入室メッセージの変更
・参加者へのタイトルの表示
・参加者への注意喚起などのメッセージの表示

プロジェクト作成

今回は"Intellij IDEA Community"を使ってプログラミングしていきたいと思います。 ![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570217/03e85dac-1f66-740b-48af-0bad7c72e915.png) ↑ Spigot Pluginにチェックを入れて次へを押してください

1キャプチャ.PNG

グループIDには図に法った他人とかぶらないように入力してください。メールアドレスや自分のドメインが望ましいです。
2キャプチャ.PNG

特にいじらなくていいので次へを押してください。
3キャプチャ.PNG
プロジェクト名には好きなプレジェクト名を入れてください。完了を押すとプロジェクトが作成されます。

イベントリスナーインターフェイスの実装

Q:イベントリスナーインターフェイスって何おいしいの

A:イベントリスナーインターフェイスとはそれがないとイベントが起こってもプラグインが何もしてくれません。(語彙力)

Tutorial.java

public final class Tutorial extends JavaPlugin {

↑のところを

Tutorial.java
public final class Tutorial extends JavaPlugin implements Listener {

のようにしてください

次にこのクラスがイベントを使用することをプラグインに伝えます。

Tutorial.java

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

    }

↑のところを

Tutorial.java
 @Override
    public void onEnable() {
        // Plugin startup logic
        Bukkit.getServer().getPluginManager().registerEvents(this,this);
    }

似ように書き加えてください。エラーが出たときはインポートしてください。(Control + Alt + O)
これでイベントリスナーインターフェイスの実装ができました。

PlayerJoinEvent関数の追加

クラスの中に
Tutorial.java
@EventHandler
    public void PlayerJoinEvent(PlayerJoinEvent p){
        
    }

を追加してください

入室メッセージの変更

先程追加した関数を
Tutorial.java
@EventHandler
    public void PlayerJoinEvent(PlayerJoinEvent p){
        //入ってきたプレイヤーを取得
        Player e = p.getPlayer();
        //入室メッセージの変更
        p.setJoinMessage(ChatColor.YELLOW + e.getName() + "さんがサーバーに参加しました!!");
    }

のように編集してください。


 //入ってきたプレイヤーを取得
        Player e = p.getPlayer();

でアクセスしてきたプレイヤーの情報を取得しています。


//入室メッセージの変更
        p.setJoinMessage(ChatColor.YELLOW + e.getName() + "さんがサーバーに参加しました!!");

で入室メッセージを変更しています。

注意喚起などのメッセージを送信

先ほどと同じ関数に

//注意喚起メッセージの送信
        e.sendMessage(ChatColor.RED + "軽量化Modや日本語化Mod以外の仕様はBANの対象になります!!");

を追加してください。

タイトルの送信

またまた同じ関数に

//タイトルの送信
        e.sendTitle(ChatColor.BLUE + "ようこそ", "こんにちは" + e.getName() + "さん!!" ,10,40, 10);

のように編集してください。

コード全体

Tutorial.java
package com.yossisuper.tutorial.tutorial;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public final class Tutorial extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        // Plugin startup logic
        Bukkit.getServer().getPluginManager().registerEvents(this,this);
    }

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

    @EventHandler
    public void PlayerJoinEvent(PlayerJoinEvent p){
        //入ってきたプレイヤーを取得
        Player e = p.getPlayer();
        //入室メッセージの変更
        p.setJoinMessage(ChatColor.YELLOW + e.getName() + "さんがサーバーに参加しました!!");
        //注意喚起メッセージの送信
        e.sendMessage(ChatColor.RED + "軽量化Modや日本語化Mod以外の仕様はBANの対象になります!!");
        //タイトルの送信
        e.sendTitle(ChatColor.BLUE + "ようこそ", "こんにちは" + e.getName() + "さん!!" ,10,40, 10);
    }
}

これでプラグインの完成です。ご自由に使ってください。
あとからGitHubに公開するかもしれません。

2
1
1

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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?