2023/5/15更新
Minecraft BE -v1.19.81
{ "module_name": "@minecraft/server", "version": "1.2.0-beta" }
概要
統合版マインクラフトのscript APIを使って作っていきます。
言語はjavascriptです。
今回は変数をJSON文字列に変換してLoreに保存していきます。
Loreはどうやら文字数制限がないようなのでとても便利なDatabaseが作れそうです。
用語確認
Lore: アイテムの説明の文章 デフォルトで紫色
DB: データベース ゲームのデータを保存
コードと説明
チェストを設置してその中のアイテムを取得して、そのアイテムにLoreをつけていきます。
import {world } from "@minecraft/server";
const overworld_dimension = world.getDimension('overworld');
let DataBaseContainer = overworld_dimension.getBlock({ x: 1024, y: 100, z: 1024 }).getComponent("inventory").container;
let IS_DB = DataBaseContainer.getItem(0);
IS_DB.setLore(["Line 1", "Line 2", "Line 3"]);
let DATA_BASE = IS_DB.getLore()[0];
DataBaseContainer.setItem(0, IS_DB);
overworld_dimension.runCommandAsync('say ' + DATA_BASE);
どうせ文章で説明しても難しいだけなのでコードを上げます。
- overworld_dimensionの定義
- getBlock(3Vector)でブロックを取得 今回はこの座標にチェストがあります。
- getComponent()でインベントリの情報を取得
- containerを取得
- getItem(0)で1番目のスロットのアイテムスタックを取得 1番目→0, 2番目→1, 3番目→2
setLore()で配列を入れる Loreは基本的に配列を入れることができる
let data = [{"key1":"text1"},{"key2":["text2","text3"]}];
IS_DB.setLore([JSON.stringify(data)])
//このような形でJSON文字列を入れることができる
getLore()でデータを取得する Loreから出てくるデータは配列
let data = JSON.parse(IS_DB.getLore()[0]);
//合ってるかは試していないがおそらくこの形でLoreから取得したJSON文字列を変数に変えることができる
最後に保存する
DataBaseContainer.setItem(0, IS_DB);
Containerのスロット0
にアイテムスタックIS_DB
を上書きする
という処理をしています。
最後に
これにてアイテムスタックのLoreを使用したデータベースの説明を終わります。
Loreに文字数制限がついたら詰みだけど、それまでは便利なものだからありがたく
使わせていただきましょう。