LoginSignup
0
0

More than 1 year has passed since last update.

マイクラ - アイテムスタックのLoreでDB - 統合版マインクラフト 備忘録

Last updated at Posted at 2023-05-15

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);

どうせ文章で説明しても難しいだけなのでコードを上げます。

  1. overworld_dimensionの定義
  2. getBlock(3Vector)でブロックを取得 今回はこの座標にチェストがあります。
  3. getComponent()でインベントリの情報を取得
  4. containerを取得
  5. 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に文字数制限がついたら詰みだけど、それまでは便利なものだからありがたく
使わせていただきましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0