問題タブ [bukkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Joda Time を bukkit プラグインで動作させるのに問題がある
bukkit プラグインで Joda-Time を使用しようとしていますが、ClassNotFoundException と NoClassDefFoundError が発生します。
私はEclipseを使用しており、それをビルドパスに追加し、jarファイルのMANIFESTでClass-Path変数を変更しました(そして、jarファイルの外部のlibフォルダーにjarファイルを追加しました)。私のjarファイル内のjoda-time jarファイル。
ですから、もう少し明確にしてください... ClassNotFoundException が表示されます。ファイルを手動で jar に追加すると、NoClassDefFoundError が表示されます。
私は自分のプロジェクトを(Eclipse経由で)Mavenに変換しようとしましたが、pom.xmlへの依存関係としてjoda-timeを追加しましたが、それもうまくいかないようです(何か間違っているのかもしれません)。
さらに情報が必要な場合は、お問い合わせください。他に何を含めるかわかりません。
あなたが私に与えることができるどんな助けにも感謝します.
java - IDE はエラーを表示しませんが、ArrayList は機能しません
RuneCraft
これは、パッケージで名前が付けられたメインクラスにありますcom.mcvigor
:
public static ArrayList<String> prospPlayers = new ArrayList<String>();
MiningListener
私はこれを packageという名前の別のクラスに持っていますcom.mcvigor.listeners
:
その下に他のものがありますが、それは重要ではありません。問題は、私が鉱石を探鉱したり調べたりすると、リストに追加されることになっていて、もう一度やろうとすると、探鉱が完了するまで許可されないことです (ArrayList から私の名前が削除されます)。 .
なぜこうなった?
問題はif(RuneCraft.prospPlayers.contains(p.getName())) return;
ありますか?
minecraft - プレイヤーの反応を記録するにはどうすればよいですか?
基本的に私がやろうとしているのは、プレーヤーに数字のみを入力するように要求するメッセージに応答させることです。その時点から、String を解析して int にし、それをコードの残りの部分で使用できます。また、これが私のイベントメソッドで発生するようにしようとしています。どんな助けでも大歓迎です!
java - int -> double API の変更をスムーズにするために合成またはブリッジ メソッドを使用できますか?
synthetic
Java には、 および と呼ばれるメソッドに特別なマーカーがありbridge
ます。
JLS 13.1.7、「Java コンパイラによって導入された、ソース コードに対応する構成要素がない構成要素はすべて、合成としてマークする必要があります...」
そのため、合成メソッドはコンパイラによって生成され、ソース コードでは表現されないものであり、その仕様 PDF ではあまり言及されていませんが、ブリッジメソッドはジェネリックの型チェックに使用されます。(たとえば、 Creature にキャストして他のメソッドを呼び出すAnimal.interactWith(Creature c)
bridge メソッドを取得します。)interactWith(Object c)
Minecraft サーバーの動作を変更するための安定したアクセスを提供する Bukkit と呼ばれる API があります。API の基礎となる実装 (別名バニラ Minecraft) の 1 つの側面は、ほとんど制御できませんが、最近バージョン1.6.1
で整数値から浮動小数点値への変更が強制されました。また、別の変更による困難を回避するために、すべての API メソッドをdouble
s に変更することにしました。
たとえば、次のようになります。
ただし、いつものように、以前のバージョンでコンパイルされたプラグインが1.5.2
可能な限り機能するようにしたいと考えています。これが API の要点です。
これsetHealth
は解決済みの問題です。オーバーロードを導入するだけです。現在、_INVALID_getHealth(V)I
実装コンパイル時に ( API コンパイルではなくgetHealth(V)I
) に名前が変更されているという名前のメソッドがあり、これにより古いプラグインを引き続き実行できます。
ただし、誰かがこれらの名前が変更されたメソッドの実装を拡張しようとすると、二重に名前が付けられたメソッドとオーバーライドからコンパイル エラーが発生します。
API実装の一部を変更しようとする人にコンパイルエラーを引き起こさない、手動/ツール挿入の合成またはブリッジメソッドを使用して、int
とdouble
リターンの両方を提供する方法はありますか?
java - プレーヤー コマンドのコンソール出力を抑制する
プレイヤーがチェストをパスワードでロックできるようにする bukkit プラグインを作成しています。プレイヤーを保護するために、サーバー オペレーターの詮索好きな目からもパスワードを守りたいと思います。
プレイヤーがコマンドを使用したときに表示されるコンソール テキストを非表示にしたいと考えています。たとえば、プレイヤーが /gamemode 1 と入力すると、コンソールはコマンドとそれを使用したユーザーを出力します。これを止める方法はありますか?傍受して拭くか、文字化けするか?
java - すべてのクラス コードを 0 から記述せずに UTF-8 文字のサポートを追加しますか? 【ブッキットとジャバ】
すべての構成を処理する 3 つのクラスがあります。(2クラス2000回線)
そして、すべてのコードを 0 から記述せずに、UTF-8 文字のサポートを追加したい ;/
私は最小のクラスを示しています (まだ完成していないので、1400 行でスパムを送信したくありません :)) 実際には 2 つの変数しかありません。
ここでその UTF-8 を使用する方法がわかりません。
また、機能を削除したくありません。
できれば、そのコードに関するアドバイスも教えてください:)
//私の英語でごめんなさい
java - ディスペンサーの在庫が bukkit を更新しない
現在、ディスペンサーを利用するプラグインを作成しています。リスナー中に while ループがあり、ループが壊れる石炭がなくなるまで、ディスペンサーの在庫から 1 個の石炭を削除する必要があります。これは正常にループし、石炭の量を表すために使用される整数のカウントダウンを登録します。ただし、ディスペンサーの在庫は更新されません。何か助けていただければ幸いです。while ループに含まれるコードは次のとおりです。