【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

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

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by cocodo » 2017年1月08日(日) 09:54

度々失礼します。
溶岩渡りを追加するプラグインを制作しているのですが、他の仕様も追加しようとメインクラス以外のクラスに実装しました。
メインクラスだと正常に読み込まれていた物が他クラスで実装すると読み込まれないです。
他クラスが読み込まれているのかonEnable()で確認しましたが他クラス自体読み込まれていませんでした。
何が問題なのでしょうか…?リスナー登録もしてはいるのですが…。

-メインクラス------------

package original.items;

import org.bukkit.plugin.java.JavaPlugin;

public class OriginalItems extends JavaPlugin{
@Override
public void onEnable(){
getServer().getPluginManager().registerEvents(new LavaWalk(), this);
}
public void onDisable(){
}
}

-他クラス----------------

package original.items;

import java.util.ArrayList;
import java.util.List;

import net.md_5.bungee.api.ChatColor;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class LavaWalk extends JavaPlugin implements Listener{

@EventHandler
public void onPlayerMoveEvent(PlayerMoveEvent e){
if(e.getPlayer().getInventory().getBoots() != null && e.getPlayer().getInventory().getBoots().getItemMeta().getDisplayName() != null){
if(e.getPlayer().getInventory().getBoots().getItemMeta().getDisplayName().equals(ChatColor.WHITE + "闘神の革靴")){
final List<Block> blocks = new ArrayList<Block>();
Block b = e.getPlayer().getLocation().getBlock();
for (int x = -2; x <= 2; x++) {
for (int y = -1; y <= -1; y++) {
for (int z = -2; z<= 2; z++) {
if (b.getRelative(x, y, z).getType() != Material.STATIONARY_LAVA) {
continue;
}
b.getRelative(x, y, z).setType(Material.OBSIDIAN);
blocks.add(b.getRelative(x, y, z));
}
}
}
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
@Override
public void run(){
for (Block block : blocks){
block.setType(Material.STATIONARY_LAVA);
}
}
}, 100);
}
}
}
@EventHandler
public void onPlayerMove(PlayerMoveEvent e){

if(e.getPlayer().getInventory().getBoots() != null && e.getPlayer().getInventory().getBoots().getItemMeta().getDisplayName() != null){
if(e.getPlayer().getInventory().getBoots().getItemMeta().getDisplayName().equals(ChatColor.WHITE + "闘神の革靴")){
final List<Block> blocks = new ArrayList<Block>();
Block b = e.getPlayer().getLocation().getBlock();
for (int x = -2; x <= 2; x++) {
for (int y = -1; y <= -1; y++) {
for (int z = -2; z<= 2; z++) {
if (b.getRelative(x, y, z).getType() != Material.LAVA) {
continue;
}
b.getRelative(x, y, z).setType(Material.OBSIDIAN);
blocks.add(b.getRelative(x, y, z));
}
}
}
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
@Override
public void run(){
for (Block block : blocks){
block.setType(Material.LAVA);
}
}
}, 100);
}
}
}
}
-エラーログ--------

[09:48:10 ERROR]: Error occurred while enabling OriginalItems v1.0.0 (Is it up to date?)
java.lang.IllegalArgumentException: Plugin already initialized!
at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:122) ~[spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:67) ~[spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at original.items.LavaWalk.<init>(LavaWalk.java:16) ~[?:?]
at original.items.OriginalItems.onEnable(OriginalItems.java:13) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:271) ~[spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337) [spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.craftbukkit.v1_11_R1.CraftServer.enablePlugin(CraftServer.java:375) [spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.craftbukkit.v1_11_R1.CraftServer.enablePlugins(CraftServer.java:325) [spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.craftbukkit.v1_11_R1.CraftServer.reload(CraftServer.java:749) [spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.Bukkit.reload(Bukkit.java:540) [spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.craftbukkit.v1_11_R1.CraftServer.dispatchCommand(CraftServer.java:649) [spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.craftbukkit.v1_11_R1.CraftServer.dispatchServerCommand(CraftServer.java:635) [spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at net.minecraft.server.v1_11_R1.DedicatedServer.aM(DedicatedServer.java:437) [spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at net.minecraft.server.v1_11_R1.DedicatedServer.D(DedicatedServer.java:400) [spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:675) [spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:574) [spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
Caused by: java.lang.IllegalStateException: Initial initialization
at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:125) ~[spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:67) ~[spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at original.items.OriginalItems.<init>(OriginalItems.java:7) ~[?:?]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_101]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_101]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_101]
at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_101]
at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_101]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) ~[spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.craftbukkit.v1_11_R1.CraftServer.loadPlugins(CraftServer.java:300) ~[spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
at org.bukkit.craftbukkit.v1_11_R1.CraftServer.reload(CraftServer.java:747) ~[spigot-1.11.jar:git-Spigot-31fef09-c3d951d]
... 10 more
------------

長文で汚してしまい申し訳ないです。
cocodo
ID:b4117d70
 

  • (PostNo.292714)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by King(qpwakaba) » 2017年1月08日(日) 15:52

cocodo さんが書きました:度々失礼します。
溶岩渡りを追加するプラグインを制作しているのですが、他の仕様も追加しようとメインクラス以外のクラスに実装しました。
メインクラスだと正常に読み込まれていた物が他クラスで実装すると読み込まれないです。
他クラスが読み込まれているのかonEnable()で確認しましたが他クラス自体読み込まれていませんでした。
何が問題なのでしょうか…?リスナー登録もしてはいるのですが…。


完結に書くと、

・イベントリスナはJavaPluginクラスを継承したクラスである必要はなく、Listenerインターフェースを実装したクラスであれば良い

というだけです。 また、JavaPlugin クラス、及びこれを継承したクラスは1つのプラグインで1つのインスタンスしか作ることができません。


もし、今後も質問なさるおつもりでしたら ユーザー登録をして codeタグを使うと表示が長くならずおすすめです。
以下サイン
調べて見つからないことを質問して、「そのくらい調べろ」と言われたら それは調べが足りないとき。

投稿画面のBBコード挿入ボタン を追加するユーザースクリプト作りました。良かったらどうぞ。
https://greasyfork.org/ja/scripts/18657
最大描画距離を64チャンクまで伸ばすMod作ってます。
viewtopic.php?t=30697
アバター
King(qpwakaba)
ID:5504b2e8
ダイヤモンド掘り
 
記事: 822
登録日時: 2013年3月26日(火) 10:25

  • (PostNo.292877)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by morifore » 2017年1月09日(月) 17:35

spigotpluginの製作でプレイヤーにエフェクトを付けるのってどうやるんですか?
morifore
ID:e93b5b32
木を殴ってる
 
記事: 13
登録日時: 2016年12月26日(月) 10:34

  • (PostNo.292932)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by ゲスト » 2017年1月10日(火) 01:18

>spigotpluginの製作でプレイヤーにエフェクトを付けるのってどうやるんですか?
LivingEntity#addPotionEffect(PotionEffect effect)
ゲスト
ID:ab9f9594
 

  • (PostNo.292980)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by cocodo » 2017年1月10日(火) 21:19

King(qpwakaba) さん、お返事ありがとうございます。
ご指摘の部分を修正すると思い通りの動作を確認出来ました。
本当にありがとうございました。

何度も質問申し訳ないのですが、名前を設定したスプラッシュポーションを使用した場合に使用時エンティティ化状態の物にMetadataを設定することは出来るのでしょうか。
アイテムのスプラッシュポーションとエンティティ化状態のスプラッシュポーションの情報が共有出来ればいいのですが、色々と試行錯誤しましたが方法が全く思い浮かびません。
どなたかお知恵お貸し頂けませんか。
cocodo
ID:b4117d70
 

  • (PostNo.293992)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by morifore » 2017年1月23日(月) 00:15

ゲスト さんが書きました:>spigotpluginの製作でプレイヤーにエフェクトを付けるのってどうやるんですか?
LivingEntity#addPotionEffect(PotionEffect effect)

ありがとうございます
morifore
ID:6edaa40e
木を殴ってる
 
記事: 13
登録日時: 2016年12月26日(月) 10:34

  • (PostNo.294063)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by tanuki » 2017年1月23日(月) 21:12

卵や雪玉が割れるときのエフェクト(?)を消去したいのですが,
どのようなAPIを利用すれば可能でしょうか.

ProjectileHitEventで卵などのエンティティが何かにヒットしたときに,remove()してもエフェクトは消えませんでした.
tanuki
ID:a7752258
 

  • (PostNo.294498)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by morifore » 2017年1月29日(日) 12:29

tanuki さんが書きました:卵や雪玉が割れるときのエフェクト(?)を消去したいのですが,
どのようなAPIを利用すれば可能でしょうか.

ProjectileHitEventで卵などのエンティティが何かにヒットしたときに,remove()してもエフェクトは消えませんでした.

それって普通にテクスチャ変更でよくないですか?
assets\minecraft\textures\particleの中にあるparticles.pngの下半分にあるチェッカー模様みたいなところを消せば消去できます(system上は「透明」のエフェクトが表示されていることになりますが)
添付ファイル
卵とかのパーティクルを除去したテクスチャ全バージョン.zip
(13.68 KiB) ダウンロード数: 0 回
最後に編集したユーザー morifore [ 2017年1月29日(日) 13:05 ], 累計 1 回
morifore
ID:6edaa40e
木を殴ってる
 
記事: 13
登録日時: 2016年12月26日(月) 10:34

  • (PostNo.294499)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by morifore » 2017年1月29日(日) 12:34

連投すいません。
spigotでの全プレイヤーを指定することってどうやるんですか?
やりたいことは全プレイヤーにアイテム(stick)を1つ渡すことです。
ソースコードでの教えていただけるとありがたいです。
アイテムを渡すソースコードはできました。
morifore
ID:6edaa40e
木を殴ってる
 
記事: 13
登録日時: 2016年12月26日(月) 10:34

  • (PostNo.294509)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by ittekikun » 2017年1月29日(日) 14:24

morifore さんが書きました:連投すいません。
spigotでの全プレイヤーを指定することってどうやるんですか?

https://github.com/ittekikun/MineTweet_ ... va#L13-L54
例としてはこんな感じです。
リストで返ってくるので拡張for文を使ってやればお望みの動作が実現すると思います。
サイン Bukkit Spigot Japan Wikiを運営しています。
些細な事でもいいので内容の充実にご協力頂ければ幸いです。
viewtopic.php?f=19&t=33020

■■ 投稿する前に ■■
  フォーラムルール
  質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
  【必読】質問の仕方について↓
  viewtopic.php?f=5&t=999
アバター
ittekikun
ID:1a90655b
ラピスラズリ収集家
 
記事: 1252
登録日時: 2011年9月25日(日) 11:51
お住まい: 夢の国の隣

  • (PostNo.295527)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by uirou1 » 2017年2月11日(土) 16:04

こんにちは、質問です。
とあるブロックを中心に球体の範囲内のブロックを取得したいのですが直方体で取得する方法しか思い浮かびません。
色々と調べてみましたが球体の範囲内のブロックを取得する方法は見つかりませんでした…。
何かよい方法はありますでしょうか…?
uirou1
ID:b4117d70
 

  • (PostNo.295552)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by elise_blacklab » 2017年2月11日(土) 20:15

uirou1 さんが書きました:とあるブロックを中心に球体の範囲内のブロックを取得したいのですが直方体で取得する方法しか思い浮かびません。
色々と調べてみましたが球体の範囲内のブロックを取得する方法は見つかりませんでした…。

半径ギリギリくらいで立方体で走査して√(Δx^2+Δy^2+Δz^2)<=a(球体内に座標が含まれるか)を満たすかチェックすればいい話では.
演算負荷が無視できない状態なんです?
メイドつくってたりします.http://6docvc.net/
アバター
elise_blacklab
ID:002ab0d5
掘り廃人
 
記事: 2450
登録日時: 2014年6月25日(水) 18:30

  • (PostNo.295557)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by Enirtic2 » 2017年2月11日(土) 20:46

始めましてお邪魔します。
最近Spigotの開発を始めたjava初心者です

http://bukkit.gamepedia.com/Plugin_Tutorial#ItemMeta
上記を参考にアイテムにメタデータを追加したいのですがうまく適用されません。

イメージとしてはそのサーバーでダイヤの剣が作成された時点で
全てのダイヤの剣にその名前(メタデータ)を適用したいです。

package itemconfig;

import java.util.Arrays;
import java.util.List;

import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

public class ItemConfig extends JavaPlugin {

@Override
public void onDisable() {
// TODO 自動生成されたメソッド・スタブ
super.onDisable();
System.out.println("ItemConfig初期化終了");
}
@Override
public void onEnable() {
// TODO 自動生成されたメソッド・スタブ
super.onEnable();
//---------------------------------------
String myDisplayName = "すごい剣";
ItemStack myItem = new ItemStack(Material.DIAMOND_SWORD); //アイテムを生成します。
ItemMeta im = myItem.getItemMeta(); //ItemStackから、ItemMetaを取得します。
im.setDisplayName(myDisplayName); //アイテム表示名を設定します。
myItem.setItemMeta(im); //元のItemStackに、変更したItemMetaを設定します。
//---------------------------------------
System.out.println("ItemConfig初期化開始");
}
}

初期化などの記述する場所はonEnableで正しいのでしょうか?
サーバー起動時にSystem.out.printlnで文字列が出力されているのですが
ダイヤの剣の名前が変更されていません。

誰かご教授いただけますと幸いです。
Enirtic2
ID:db31c0f7
 

  • (PostNo.295699)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by Sea of trees » 2017年2月12日(日) 22:19

Enirtic2 さんが書きました:始めましてお邪魔します。
最近Spigotの開発を始めたjava初心者です

http://bukkit.gamepedia.com/Plugin_Tutorial#ItemMeta
上記を参考にアイテムにメタデータを追加したいのですがうまく適用されません。

イメージとしてはそのサーバーでダイヤの剣が作成された時点で
全てのダイヤの剣にその名前(メタデータ)を適用したいです。

package itemconfig;

import java.util.Arrays;
import java.util.List;

import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

public class ItemConfig extends JavaPlugin {

@Override
public void onDisable() {
// TODO 自動生成されたメソッド・スタブ
super.onDisable();
System.out.println("ItemConfig初期化終了");
}
@Override
public void onEnable() {
// TODO 自動生成されたメソッド・スタブ
super.onEnable();
//---------------------------------------
String myDisplayName = "すごい剣";
ItemStack myItem = new ItemStack(Material.DIAMOND_SWORD); //アイテムを生成します。
ItemMeta im = myItem.getItemMeta(); //ItemStackから、ItemMetaを取得します。
im.setDisplayName(myDisplayName); //アイテム表示名を設定します。
myItem.setItemMeta(im); //元のItemStackに、変更したItemMetaを設定します。
//---------------------------------------
System.out.println("ItemConfig初期化開始");
}
}

初期化などの記述する場所はonEnableで正しいのでしょうか?
サーバー起動時にSystem.out.printlnで文字列が出力されているのですが
ダイヤの剣の名前が変更されていません。

誰かご教授いただけますと幸いです。


初期化の記述場所は、クラス内かつ実行される場所であればどこでも問題はないと思います。(私はEventListenerで記述しました)
あと、サーバー起動時に表示される文字は「ItemConfig初期化開始」になると思うのですが...
ちなみに私個人の学習方法ですが、海外の人の動画を見ながらやるとかなりわかりやすいと思います。
https://www.youtube.com/results?search_ ... a+tutorial
もしかしたらにプレイヤーにアイテムを与えるときに反映されるのかもしれません。(私自身初心者ですので間違っていることがあればごめんなさい。)
なんか、最近多忙な気がするなぁ....
アバター
Sea of trees
ID:984c339d
木を殴ってる
 
記事: 32
登録日時: 2015年3月01日(日) 15:27
お住まい: 日本

  • (PostNo.295720)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by Lemon18 » 2017年2月13日(月) 10:30

Enirtic2 さんが書きました:イメージとしてはそのサーバーでダイヤの剣が作成された時点で
全てのダイヤの剣にその名前(メタデータ)を適用したいです。

初期化などの記述する場所はonEnableで正しいのでしょうか?
サーバー起動時にSystem.out.printlnで文字列が出力されているのですが
ダイヤの剣の名前が変更されていません。


なぜ名前が変更されていないかというと、
簡単に言えばonEnable()でItemStackのインスタンスを生成して、その情報を変更しているだけだからです。
いくら名前などを変更しても、すべてのダイヤ剣の情報が変更されるわけではありません。
それをするには、
ダイヤ剣のクラスを継承したクラスを作って改造する必要があります。(恐らくアイテム登録なども必要(やったことないのでできるかどうかもわかりません))
ですが、これはおそらく難しいと思われるので、代替案として、
イベントを使用してダイヤ剣入手に関わるときに処理を行う(例えば クラフトするとき など)
というのがあります。

注意点として、すでにプレイヤーやチェストなどが通常のダイヤ剣を持っている場合、そのダイヤ剣は変更前のダイヤ剣なので変更する必要があります。(とても面倒)
その場合でなければ、クラフトするときくらいしかダイヤ剣を入手する方法がないので、その時に変更するだけで済みます。

細かいこと
onDisable()は初期化終了ではなくプラグイン終了時に行われるメソッドです。
あとonEnable()、 onDisable()ともにsuperメソッドを実行する必要はありません。(中身が空だから。)
Bukkitプラグインとか作ったり作らなかったり。
「どのOSでも使える」を目標に日本語入力ツールを作っています。良ければ見てください。
http://forum.minecraftuser.jp/viewtopic.php?f=36&t=31671


Twitter: https://twitter.com/Lemon1806
Minecraft: Applemon
Lemon18
ID:b66be5f3
石掘り
 
記事: 85
登録日時: 2015年6月05日(金) 22:42

  • (PostNo.295734)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by uirou1 » 2017年2月13日(月) 16:15

elise_blacklabさん、ご返信ありがとうございます。
元々その処理だったのですが処理の最後にreturn;を入れていたため1回しか処理されておらず、てっきり間違っているものかと思っていました。
return;を削除した所、正常に動作しました。自己解決申し訳ないです。
また質問なのですが、手に持っているブロック(Material)から色ガラス等のデータをbyte型に変換する方法はあるのでしょうか…?
if文で手に持っているアイテムがブロックだと判断する処理までは書けています。
どなたかご教授いただけないでしょうか。
uirou1
ID:b4117d70
 

  • (PostNo.295761)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by uirou1 » 2017年2月13日(月) 19:33

すみません、自己解決しました。
ブロックタイプに加えダメージ値を取得することで処理出来ました。
uirou1
ID:b4117d70
 

  • (PostNo.295791)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by Enirtic2 » 2017年2月14日(火) 05:34

Sea of treesさんとLemon18さんご教授ありがとうございます。

onEnableでされていた処理をonCommandに移しプレイヤーに付与したところ
情報が反映されているためLemon18さんの言う通り
ダイヤ剣のクラスを継承して変更しない限りは無理そうです。

そのためRecipeManagerを利用することでmetaデータの変更をしつつ
レシピデータの上書きができるのでそちらで代用することにしました。

質問にご返答頂きまことにありがとうございました。
Enirtic2
ID:db31c0f7
 

  • (PostNo.296253)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by sasawa » 2017年2月19日(日) 16:29

PlayerInteractEventについての質問です。
右クリック検知は出来たのですが、一定時間右クリックしていたか判定する方法はありますか?
右クリックしてから一定時間後に右クリックしているか確認する方法だとその間、クリックしていなくても動作してしまいまして…。
sasawa
ID:b4117d70
 

  • (PostNo.296285)

Re: 【総合】トピック立てるまでもない質問【Bukkit Plugin制作】

投稿記事by リオン » 2017年2月19日(日) 22:27

一定時間右クリックしていたか判定

HashMapでプレイヤー名と、右クリックした時間を記録して、
スケジューラーで毎Tickクリックを維持しているか、指定した時間クリックしているかを調べればいいのでは。
アバター
リオン
ID:67545616
木を殴ってる
 
記事: 24
登録日時: 2013年5月13日(月) 11:58

1つ前へ次へ

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

x