By default, the PM language (pocketmine.yml
or server.properties
) is used, but if it is not supported, it will be English.
- Open the
config.yml
- Change language setting:
language: <language code>
A list of available languages can be found in resources/locale/
(Remove the .ini extension)
e.g. resources/locale/eng.ini
=> eng
コマンド名 | 説明 | 権限 | エイリアス | プレイヤーのみ |
---|---|---|---|---|
mission | ミッションを表示する | mission.command.mission | mi | はい |
mission
コマンドでは、引数に名前、ID、短縮IDを指定することができます。
引数を指定しなかった場合と指定したミッションが存在しない場合は全ミッションのリストが送信されます。
サブコマンド名 | 説明 | 権限 | エイリアス | プレイヤーのみ |
---|---|---|---|---|
edit | ミッションを編集する | mission.command.mission.edit | なし | はい |
setting | 設定 | mission.command.mission.setting | set, config | はい |
list | ミッションのリストを表示する | mission.command.mission.list | l | はい |
info | プラグインの情報を表示する | mission.command.mission.info | i | いいえ |
edit
サブコマンドでは、引数に名前、ID、短縮IDを指定することができます。
引数を指定しなかった場合と指定したミッションが存在しない場合は全ミッションのリストが送信されます。
list
サブコマンドでは、引数にグループを指定することができます。
引数を指定しなかった場合は全ミッションのリストが送信されます。
権限名 | デフォルト |
---|---|
mission.command.mission | true |
mission.command.mission.edit | op |
mission.command.mission.setting | op |
mission.command.mission.list | true |
mission.command.mission.info | op |
- 最大達成回数: ミッションを達成できる回数
- 目標ステップ数: 目標のステップ数
- ステップトリガー: ミッションのステップを増やすトリガー
- ブロックを10回壊したら達成
- 報酬はダイヤモンド10個
- 1回まで達成できる
/mission edit
コマンドを実行- 「ミッション追加」を選択
- 「最大達成回数」に1を、「目標ステップ数」に10を入力
- 作成したミッションを選択
- 「報酬の編集」を選択
- 「報酬追加」を選択
- 「報酬の種類」に「アイテム報酬」を指定
- 「id」に264(ダイヤモンドのID)を、「個数」に10を入力
- 「ステップトリガー編集」を選択
- 「ステップトリガー追加」を選択
- 「ステップトリガーの種類」に「イベント」を指定
- 「イベント」に「BlockBreakEvent」を指定
このようになっていれば成功です(フォントの乱れはMCBEの仕様です)
- ミッションの作成例 を参考に「Mineflow報酬」を追加する
- Mineflow側のトリガーで「ミッション報酬」を選択、対象の実績を指定する
- レシピ
- ミッション
- ミッション報酬をトリガに指定したMineflowレシピでは、変数targetが使用できます
- レシピによる報酬を複数作成したい場合でも、「Mineflow報酬」は1つまでにしてください
- レシピによる報酬を複数作成する場合で、2つ目以降の報酬内容を表示したい場合「何もしない(文字表示のみ)」を使用することができます
- Mineflow側でアクション追加画面を開き「ミッション」、「ミッションのステップを増やす」を選択して追加する
- ミッション側での設定は不要です
- レシピ側で条件式などを組み合わせることによって、かなり柔軟な設定が可能になります
- plugin.ymlのdependにこのプラグインを追加する
- Rewardを継承したクラスを作成する(実装例は既存Rewardを参照)
- そのクラスをRewardsに追加
pjz9n\mission\reward\Rewards::add(ExampleReward::class);
- Executorを継承したクラスを作成する(実装例は既存Executorを参照)
- そのクラスをExecutorsに追加
pjz9n\mission\mission\executor\Executors::add(ExampleExecutor::class);
pjz9n\mission\mission\MissionList
pjz9n\mission\mission\progress\ProgressList
PlayerEvent
のインスタンスもしくはgetPlayer
メソッドを持つイベントはデフォルトで追加されています。
ただし、あなたはgetDamager
メソッドを持つEntityDamageByEntityEvent`イベントを追加したいかもしれません。
そのような場合にはこれを使います。
pjz9n\mission\mission\executor\EventList::addEvent(EntityDamageByEntityEvent::class, function (Event $event): ?Player {
/** @var EntityDamageByEntityEvent $event */
$damager = $event->getDamager();
return $damager instanceof Player ? $damager : null;
});
詳しくはソースコードを参照してください
※各操作のタイミングは問いません(基本的にはプラグイン有効化タイミングに行うのが望ましい)
command name | description | permission | alias | player only |
---|---|---|---|---|
mission | Show mission | mission.command.mission | mi | Yes |
The mission
command allows you to specify a name, ID, and Short ID as arguments.
Returns a all missions list if no arguments are specified or the specified mission does not exist.
sub command name | description | permission | alias | player only |
---|---|---|---|---|
edit | Edit mission | mission.command.mission.edit | None | Yes |
setting | Settings | mission.command.mission.setting | set, config | Yes |
list | Show the missions list | mission.command.mission.list | l | Yes |
info | Show plugin information | mission.command.mission.info | i | No |
The edit
subcommand allows you to specify a name, ID, and Short ID as arguments.
Returns a all missions list if no arguments are specified or the specified mission does not exist.
The list
subcommand allows you to specify a group name as arguments.
Returns a all missions list if no arguments are specified.
permission name | default |
---|---|
mission.command.mission | true |
mission.command.mission.edit | op |
mission.command.mission.setting | op |
mission.command.mission.list | true |
mission.command.mission.info | op |
- Maximum number of achievements: Number of times you can complete a mission
- Target step: Target number of steps
- Steptrigger: Trigger to increase mission steps
- Achieved after breaking blocks 10 times
- The reward is 10 diamonds
- Can be achieved up to once
- Execute command:
/mission edit
- Select "Add mission"
- Input the 1 to "Maximum number of achievements" and 10 to "Target step"
- Select the created mission
- Select "Edit reward"
- Select "Add reward"
- Specify "Item reward" for "Reward type"
- Input the 264(Diamond ID) to "ID" and 10 to "Amount"
- Select "Edit steptrigger"
- Select "Add steptrigger"
- Specify "Event" for "Steptrigger type"
- Specify "BlockBreakEvent" for "Event"
If it looks like this, it ’s a success.
- Add "Mineflow reward" by referring to [Mission creation example](#Mission creation example)
- Select "MissionReward" with the trigger on the Mineflow plugin side and specify the target mission
- Recipe
- Mission
- The variable "target" can be used in Mineflow recipes triggered by mission rewards
- Even if you want to create multiple recipe rewards, please limit the number of "Mineflow reward" to one
- If you want to create multiple rewards based on recipes and want to display the second and subsequent rewards, you can use "Nothing (text show only)"
- Open the action addition screen on the Mineflow plugin side and select "Mission", "Increase the mission step" to add
- No setting is required on the mission side
- By combining conditional expressions on the recipe side, it is possible to make fairly flexible settings
- Add this plugin to depend in plugin.yml
- Create a class that inherits Reward (see existing Reward for implementation example)
- Add that class to Reward
pjz9n\mission\reward\Rewards::add(ExampleReward::class);
- Create a class that inherits Executor (see existing Executor for implementation example)
- Add that class to Executor
pjz9n\mission\mission\executor\Executors::add(ExampleExecutor::class);
pjz9n\mission\mission\MissionList
pjz9n\mission\mission\progress\ProgressList
Instances of PlayerEvent
or events with getPlayer
methods are added by default.
However, you may want to add an EntityDamageByEntityEvent
event that has a getDamager
method.
It can be used in such cases.
pjz9n\mission\mission\executor\EventList::addEvent(EntityDamageByEntityEvent::class, function (Event $event): ?Player {
/** @var EntityDamageByEntityEvent $event */
$damager = $event->getDamager();
return $damager instanceof Player ? $damager : null;
});
See the source code for details
* The timing of each operation does not matter (basically, it is desirable to perform it at the plug-in activation timing)