自分のマイクラのバージョンは26.12です。
↓manifest.json
{
"format_version": 2,
"header": {
"name": "sample",
"description": "サンプルのアドオンです",
"version": [1, 0, 0],
"uuid": "bcf90086-ecc9-4419-b750-8213a90884ff",
"min_engine_version": [1, 21, 0]
},
"modules": [
{
"type": "script",
"description": "",
"version": [1, 0, 0],
"uuid": "ed81d048-b6a4-46bc-925d-b6ab918b57b0",
"language": "javascript",
"entry": "scripts/main.js"
}
],
"dependencies": [
{
"module_name": "@minecraft/server",
"version": "3.0.0-alpha"
}
]
}↓main.json
import { system, world, CommandPermissionLevel, CustomCommandStatus, CustomCommandOrigin } from "@minecraft/server";
system.beforeEvents.startup.subscribe(ev => {
/**
* saba:helloコマンドを定義
* @type {import("@minecraft/server").CustomCommand}
*/
const helloCommand = {
name: "saba:hello", // コマンド名
description: "あいさつを行う", // コマンド説明
permissionLevel: CommandPermissionLevel.Any, // 権限レベル: 誰でも
// 必須の引数
mandatoryParameters: [], // なし
// 引数r
optionalParameters: [], // なし
}
// helloコマンドを登録
ev.customCommandRegistry.registerCommand(helloCommand, hello);
});
/**
* saba:helloコマンドの処理関数r
* @param {CustomCommandOrigin} origin
* @returns {import("@minecraft/server").CustomCommandResult}
*/
function hello(origin) {
// origin には実行者エンティティやブロックが入る
// もし実行者エンティティの種族がプレイヤーではないならr
if (origin.sourceEntity?.typeId !== "minecraft:player") {
// コマンド結果を返す
return {
status: CustomCommandStatus.Failure, // 失敗
message: "実行者はプレイヤーである必要があります",
}
}
const player = origin.sourceEntity;
// 挨拶メッセージを送る
world.sendMessage(`[${player.nameTag}] こんにちは!`);
// コマンド結果を返す
return {
status: CustomCommandStatus.Success, // 成功
message: undefined, // メッセージなし
}
}


コメント
main.jsonとありますが、main.jsの間違いではありませんか?
もし拡張子を.jsonにしている場合、それが原因です。
またmanifest.jsonの@minecraft/serverのversionについても、「3.0.0-alpha」でも動きますが「2.6.0」に変更したほうが壊れにくいので安全です。