【Spigot 1.12.2】ScoreboardのSidebar実装について

Modding・サーバPlugin制作・ツール制作など、開発関連の質問があればこちらにお願い致します。
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.318296)

【Spigot 1.12.2】ScoreboardのSidebar実装について

投稿記事by Mizinkobusters » 2018年7月24日(火) 17:24

こんにちは、みじんこという者です。
この度は、プラグイン作成についてわからないことがあったため質問させていただきます。
プレイヤー個人のキル数とデス数を取得し、ScoreboardのSidebarに画像のように表示させたいと考えているのですが、
どのようにすればよいか、わかりません。

どなたか、ご存知の方がいらしゃればご教授お願い致します。
(画像は 8Kill, 3Death したとき)

Scoreboard Class は以下の通りに書きました。(スコアの数字は仮のものです)
コード: 全て選択
public class ScoreBoard implements Listener{

   public ScoreBoard(メインクラス plugin) {
      plugin.getServer().getPluginManager().registerEvents(this,plugin);
   }

   @EventHandler
    public void onPlayerJoin(PlayerJoinEvent event){

        Player player = event.getPlayer();
        setScoreBoard(player);

    }

   public void setScoreBoard(Player player){

        ScoreboardManager manager = Bukkit.getScoreboardManager();
        Scoreboard board = manager.getNewScoreboard();

        Objective main = board.registerNewObjective("gameinfo","dummy");
        Objective kc = board.registerNewObjective("killCount", Criterias.PLAYER_KILLS); //キル数取得
        //Objective dc = board.registerNewObjective("deathCount", Criterias.DEATHS); //デス数取得
        //Objective pp = board.registerNewObjective("personalPoints", "dummy");;

        main.setDisplaySlot(DisplaySlot.SIDEBAR);
        kc.setDisplaySlot(DisplaySlot.PLAYER_LIST);

        main.setDisplayName("§f=-[§bGameInfo§f]-=");

        main.getScore("§b§l■Your Score■").setScore(10);
        main.getScore("§dKill: §e8").setScore(9); //ここにキル数を表示させたい
        main.getScore("§dDeaths: §e3").setScore(8); //ここにデス数を表示させたい
        main.getScore("§dGet Points: §e0").setScore(7);
        main.getScore("§b§l■Game Info■").setScore(6);
        main.getScore("§cRed: §e0").setScore(5);
        main.getScore("§cRed Points: §e0").setScore(4);
        main.getScore("§9Blue: §e0").setScore(3);
        main.getScore("§9Blue Points: §e0").setScore(2);
        main.getScore("").setScore(1);

        player.setScoreboard(board);
    }

}
添付ファイル
無題.png
無題.png (6.84 KiB) 表示数: 505 回
Mizinkobusters
ID:7db870e4
水から上がったとこ
 
記事: 4
登録日時: 2018年5月18日(金) 23:02
お住まい: Japan

  • (PostNo.318322)

Re: 【Spigot 1.12.2】ScoreboardのSidebar実装について

投稿記事by amata1219 » 2018年7月25日(水) 22:21

Kill数は、EntityDeathEvent#getEntity().getKiller()で対象プレイヤーか確認しスコア加算。
Death数は、PlayerDeathEvent#getEntity()で同様にしてスコア加算。
どこかでScoreBoardオブジェクトを保持しておき、そこのスコアを操作して下さいー。
アバター
amata1219
ID:a1d5b016
石掘り
 
記事: 83
登録日時: 2016年11月18日(金) 16:46
お住まい: Enabling World

  • (PostNo.318323)

Re: 【Spigot 1.12.2】ScoreboardのSidebar実装について

投稿記事by Mizinkobusters » 2018年7月25日(水) 23:37

返信ありがとうございます!
早速試してみます。
Mizinkobusters
ID:7db870e4
水から上がったとこ
 
記事: 4
登録日時: 2018年5月18日(金) 23:02
お住まい: Japan


Return to 質問:開発・制作関連

x