最終更新: kamata4649 2017年02月02日(木) 17:55:51履歴
一部動作しない可能性があります
大変申し訳ありません。import文などほとんど間違っていました。
文のミス/掲載してほしいコード等ございましたらコメント欄にてお気軽にお申し付けください。
※NukkitにおけるPHPとの違い
※String , int , Object(3つは最低限覚えましょう)といった。String player = event.getPlayer().getName();などを取得するのに必要です
大変申し訳ありません。import文などほとんど間違っていました。
文のミス/掲載してほしいコード等ございましたらコメント欄にてお気軽にお申し付けください。
※NukkitにおけるPHPとの違い
※String , int , Object(3つは最低限覚えましょう)といった。String player = event.getPlayer().getName();などを取得するのに必要です
(注) eventにはeventオブジェクトが入っている状態です。
Player player = event.getPlayer();
(注) eventにはeventオブジェクトが入っている状態です。
Entityオブジェクトから取得して、getNameなどをする場合は必ずPlayerオブジェクトか確認しないとクラッシュします。
Player player = event.getPlayer("プレイヤー名");
Entityオブジェクトから取得して、getNameなどをする場合は必ずPlayerオブジェクトか確認しないとクラッシュします。
if (player instanceof Player){ ///プレイヤーだった場合の処理 }
コマンド処理の場合、すでにsenderに送信したプレイヤーのデータが入っています。
ただし、コンソールなどから実行した場合もありますので、必ずプレイヤーオブジェクトか確認してください。
送った人がプレイヤーか確認する
ただし、コンソールなどから実行した場合もありますので、必ずプレイヤーオブジェクトか確認してください。
送った人がプレイヤーか確認する
if (sender instanceof Player){ /// プレイヤーだった場合 }else{ /// プレイヤーオブジェクトではない場合 }
以下のimport文が必要です
import cn.nukkit.command.ConsoleCommandSender; if (sender instanceof ConsoleCommandSender){ /// コンソールだった場合 }else{ /// コンソールではない場合 }
this.getServer().broadcastMessage("メッセージ");
this.getServer().broadcastPopup("メッセージ");
player.kick("理由", true); ///trueをfalseにすることで"Kicked by admin."と表示されなくなります player.close("", "理由"); ///kickの使用を推奨します。 (1番目の引数をplayer.getLeaveMessage()にすることで、プレイヤーの退出がブロードキャストされます) リスポン地点の変更
import cn.nukkit.math.Vector3;
Vector3 pos = new Vector3(int x座標, int y座標,int z座標); //intは整数のみ使用可能です player.setSpawn(pos);
player gamemode = player.getGamemode(); /// 戻り値(int)0=サバイバル, 1=クリエイティブ, 2,アドベンチャー,3 スペクテイター //プラスアルファ<数値からString型の名前を作る> String gamemode;//名前が入る変数 switch(player.getGamemode()){ case 0: gamemode = "サバイバル"; case 1: gamemode = "クリエイティブ"; case 2: gamemode = "アドベンチャー"; case 3: gamemode = "スペクテイター"; }
int x = player.getX(); ///X座標、getXのXを変更すればY、Z座標も取得可能 player.getDirection(); ///方向 0=南,1=西,2=北,3=東
player.isOp(); ///opならtrue //プラスアルファ<opかどうかで条件分岐> if(player.isOp()){ //opだったときの処理 }else{ //opではなかったときの処理 }
player.attack(1, event); ///1番目の引数にダメージ数を、2番目にEntityDamageEventが必要です(EntityDamageEventについては省略) player.setOnFire(10); ///プレイヤーを燃やす(秒数)
以下のimport文が必要です。
先頭へ戻る
import cn.nukkit.event.entity.EntityDamageEvent;コード
ev = new EntityDamageEvent(entity, 1 , X); ///Xを変えることでダメージの強さが変更できます entity.attack(ev.getFinalDamage(), ev);
先頭へ戻る
以下のimport文が必要です。
以下のimport文が必要です。
import cn.nukkit.event.entity.EntityDeathEvent; import cn.nukkit.item.Item;
以下のimport文が必要です。
import cn.nukkit.event.player.PlayerDeathEvent;
以下のimport文が必要です。
import cn.nukkit.event.entity.EntityDeathEvent; import cn.nukkit.item.Item;
itema = Item.get(アイテムID, メタデータ, 数); itemb = Item.get(アイテムID, メタデータ, 数); Item[] item = {itema, itemb}; ///指定したアイテムを配列に格納 event.setDrops(item); ///指定アイテムをドロップ
以下のimport文が必要です。
import Nukkit.event.entity.EntityRegainHealthEvent;
he = new EntityRegainHealthEvent(player, 回復量, EntityRegainHealthEvent::CAimport_EATING); player.heal(回復量, he);
以下のコードが必要です。
以下のimport文が必要です。
import cn.Nukkit.item.Item;
item = Item::get(アイテムid, メタデータ, 数); ///itemオブジェクトの生成 player.getInventory().addItem(item); ///アイテムを追加 player.getInventory().removeItem(item); ///アイテムを消去
以下のimport文が必要です。
import cn.Nukkit.inventory.PlayerInventory;
player.getInventory().clearAll(); ///アイテムをすべて消去(装備されている防具も消されます)
以下のimport文が必要です。
import cn.Nukkit.item.Item; player.getInventory().setArmorItem(0,Item::get(298,0,1)); ///ヘルメット player.getInventory().setArmorItem(1,Item::get(299,0,1)); ///チェストプレート player.getInventory().setArmorItem(2,Item::get(300,0,1)); ///レギンス player.getInventory().setArmorItem(3,Item::get(301,0,1)); ///ブーツ player.getInventory().sendArmorContents(player); ///防具の変更を反映
以下のimport文が必要です。
import cn.Nukkit.math.Vector3; Vector3 or Player [稼働しない場合どちらかを使用してください] 稼働しない可能正あり vector = new Vector3(x座標, y座標, z座標); ///座標を指定 player.setSpawn(vector); ///スポーンをセット
以下のimport文が必要です。
import cn.Nukkit.Server;
//修正しておきました itsu Player players[] = Server.getInstance().getOnlinePlayers(); for(int i=0;players[].getlength;i++;) { ///処理 }
以下のimport文が必要です
以下のimport文が必要です。
import cn.Nukkit.math.Vector3;
Vector3 vector = new Vector3(x座標, y座標, z座標); ///座標を指定 player.teleport(vector); //ワールド(Level)を指定したい場合は座標指定にPositionクラスを指定して下さい //以下のimport文が必要です import cn.Nukkit.level.Position; Position pos = new Position(x座標, y座標, z座標, Levelオブジェクト); ///座標を指定 player.teleport(pos);
以下のimport文が必要です。
import cn.Nukkit.entity.Effect;
Effect effect = Effect::getEffect(1); ///effectID effect.setDuration(30*20); ///効果の時間*20 effect.setAmplifier(0); ///効果の強さ effect.setVisible(true); ///パーティクルを表示するかどうか player.addEffect(effect);
1行で書く場合
player.addEffect(Effect.getEffect(1).setDuration(30*20).setAmplifier(0).setVisible(true));※EffectIDの指定はEffectクラスのオブジェクト定数で指定することを推奨します。(今後EffectIDが変わる可能性があるため)
例:
Effect.SPEED
player.removeEffect(1); ///指定したEffectIDのエフェクトを除去 player.removeAllEffects(); ///すべてのエフェクトを除去
MotionJ = new Vector3(0,0,0); jump = 0.8; ///高さ MotionJ.y = jump; player.setMotion(MotionJ); ///ジャンプ
MotionA = new Vector3(0,0,0); dir=player.getDirection(); ///向いている方向 move = 3; ///動かしたいブロック数 if(dir === 0){MotionA.x=move;} ///南 if(dir === 1){MotionA.z=move;} ///西 if(dir === 2){MotionA.x=-move;} ///北 if(dir === 3){MotionA.z=-move;} ///東 player.setMotion(MotionA); ///動かす
以下のimport文が必要です。
import Nukkit.level.Level; import Nukkit.block.Block; import Nukkit.math.Vector3;※level変数に必ずLevelオブジェクトを入れておいてください
Levelオブジェクトの取得
デフォルトで使用されているワールドのレベルオブジェクト取得
Playerオブジェクトから取得
=JAVA|
level = player.getLevel(); ///Levelオブジェクトの取得
||=
ワールド名から取得
以下のimport文が必要です。
デフォルトで使用されているワールドのレベルオブジェクト取得
level = this.getServer().getDefaultLevel(); ///Levelオブジェクトの取得
Playerオブジェクトから取得
=JAVA|
level = player.getLevel(); ///Levelオブジェクトの取得
||=
ワールド名から取得
以下のimport文が必要です。
import Nukkit.import Nukkit.Server;
if(this.getServer().getInstance().isLevelLoaded("ワールド名")){ ///レベルオブジェクトかを条件分岐 level = Server::getInstance().getLevelByName("ワールド名"); ///Levelオブジェクトの取得 }
this.getServer().unloadLevel(level);※ワールド名ではなくレベルオブジェクトを渡してください。
以前書かれていた情報ではmust be an instance of Nukkit.level.Level, string givenになってしまいます。
x = block.getX(); ///X座標 y = block.getY(); ///Y座標 z = block.getZ(); ///Z座標 x = block.x; ///X座標 y = block.y; ///Y座標 z = block.z; ///Z座標
block = level.getBlock(vector); ///Blockオブジェクトの取得 block.getID(); ///ブロックID block.getMetadata(); ///メタ値 block.getName(); ///ブロック名
破壊したい際はブロックidを0にして空気ブロックと置き換えてください
block = Block.get(ブロックid,メタ値); ///Blockオブジェクトの生成 vector = new Vector3(x座標, y座標, z座標); level.setBlock(vector, block);
以下のimport文が必要です。
指定した地点を爆破する
以下のimport文が必要です。
import Nukkit.item.Item;
item = Item.get(アイテムid, メタデータ, 数); ///itemオブジェクトの生成 vector = new Vector3(x座標, y座標, z座標); ///座標を指定 level.dropItem(vector,item); ///アイテムをドロップする
指定した地点を爆破する
以下のimport文が必要です。
import Nukkit.level.Explosion; import Nukkit.level.Position;
explosion = new Explosion(new Position(x座標, y座標, z座標, level), 3); ///Explosionオブジェクトの生成 explosion.explode();
以下のimport文が必要です。
import Nukkit.tile.Sign;
pos = new Vector3(X座標, Y座標, Z座標); ///座標をセット sign = level.getTile(pos); ///Tileオブジェクト取得 if(sign instanceof Sign){ ///Signオブジェクトかの判定 text = sign.getText(); ///テキストを取得 }
以下のimport文が必要です。
import Nukkit.tile.Sign;
pos = new Vector3(X座標, Y座標, Z座標); ///座標をセット sign = level.getTile(pos); ///Tileオブジェクトを取得 if(sign instanceof Sign){ ///Signオブジェクトかの判定 sign.setText("Text1", "Text2", "Text3", "Text4"); ///文字をセット sign.saveNBT(); ///データ(NBT)を保存 }
以下のimport文が必要です。
import Nukkit.tile.Tile; import Nukkit.tile.Chest as TileChest;
pos = new Vector3(X座標, Y座標, Z座標); ///座標をセット chest = level.getTile(pos); ///Tileオブジェクトを取得 if(chest instanceof TileChest){ ///TileChestオブジェクトかの判定 chest.getInventory().getItem(1); ///特定のスロットのアイテムを取得 ///itemにはitemオブジェクトを入れておいてください chest.getInventory().setItem(1, item); ///特定のスロットにアイテムを入れる chest.getInventory().getContents(); ///すべてのアイテムを取得 ///itemにはitemオブジェクトを配列に入れたものを入れてください chest.getInventory().setContents(item); ///アイテムを上書き chest.saveNBT(); ///データ(NBT)を保存 }
現在対応しているサウンド一覧
以下のimport文が必要です。
import Nukkit.level.sound.(サウンド名)Sound;
pos = new Vector3(X座標, Y座標, Z座標); ///再生する座標 sound = new <サウンド名>Sound(pos); ///サウンドオブジェクトの生成 level.addSound(sound); ///サウンドを再生
以下のimport文が必要です。
import Nukkit.level.particle.(パーティクル名)Particle;
pos = new Vector3(X座標, Y座標, Z座標); ///座標 particle = new <パーティクル名>Particle(pos); count = 20; ///回数 for(i = 0;i < count; ++i){ level.addParticle(particle); }
以下のimport文が必要です。
先頭へ戻る
import Nukkit.utils.Random;
particle = new <パーティクル名>Particle(new Vector3(X座標, Y座標, Z座標)); xd = 3 * 100; ///調整 yd = 3 * 100; zd = 3 * 100; random = new Random*1; count = 25; ///回数 for(i = 0; i < count; ++i){ particle.setComponents( particle.x + random.nextSignedFloat() * xd, particle.y + random.nextSignedFloat() * yd, particle.z + random.nextSignedFloat() * zd ); level.addParticle(particle); }
先頭へ戻る
このページへのコメント
恒心教大法師檜垣幸人
【毒入り危険】食べたら死ぬナリ
恒心教尊師弁護士唐澤貴洋弁護士が神戸山口組がバックにいる愛媛県今治市波止浜169の恒心教大師中島大士と
山口県柳井市柳井白潟西787のゴロゴロウこと広幸三郎と宮川拓と
三重県四日市市茂福町32 ピセスロイヤル富田105号室の藤原太一と共に
今治造船社長恒心教大法師檜垣幸人にちなんで商品名のどこかに「ひ」「が」「き」「ゆ」「き」「と」の
どれかが入った169種の菓子に毒薬を入れて全国のどこかの店にいつとは言わんが810個仕掛けるナリ
実は当職は店の前で東京大学院生の平敬君と記念写真を撮っているナリ
シバターこと神奈川県横浜市中区根岸町2丁目80−2 2Fの斎藤光の動画ほどでもないナリが
プレデターラットのフォトショおばさんうしじまいい肉以上に証拠能力のある写真でふ
もしもお前らが隠蔽を続けるのならそれをネット上のハセカラキッズ速報内で公開するナリ
北海道旭川市川端町4条7丁目1−16の小関直哉君の勤めるコープみたいな小売側も通報義務があるはずナリ
当職の暴露から発覚したら中島大士の女のナカシマンフェが謝罪記者会見を開く破目になるナリ
食べたらお茶の水女子大学附属中学校の宮川拓君みたいなキッズがrock or dieナリ
あとついでにいつとは言わんが全国どこかの小中学生にトラックか車かバイクで突っ込むナリ
名前に「ひ」「が」「き」「ゆ」「き」「と」のどれかが入った子共を中心に狙うナリ
あとついでにいつとは言わんが両国国技館と全国全ての空港と小中学校と高校とバリシップと
東京オリンピックの会場と被災地とタイシの名前にちなんで全大使館を爆破するなどのテロをするナリ
ワシは口先だけの無能ドルオタパッカマンとは違うんぞなもし
「ひ」「が」「き」「ゆ」「き」「と」関連の菓子を売ってはだめぞなもし
さもなくば2783億円と2783億ナカシマタイシコインを今治造船支社まで持参するぞなもし
お前らに忠告しとくぞ ワイはキレたらガチで何するか分からんから
毒入り危険食べたら死ぬナリ 怪人2783面相
連絡先 0898−41−8338