Rust プラグインのデータファイルを使用する
Published on 2024/10/01Tags
概要
Rust プラグインのデータファイルを使用して任意のデータを保存します。
参考情報
関連情報
データファイルの使用
-
ファイルの先頭に名前空間への参照を追加します。
using Oxide.Core.Configuration;
-
データファイルのフィールドを作成します。
DynamicConfigFile dataFile;
-
データファイル
oxide/data/MyDataFile.json
がすでに存在する場合はロードします。データファイルが存在しない場合は作成します。dataFile = Core.Interface.Oxide.DataFileSystem.GetDatafile("MyDataFile");
-
データファイルにデータを保存します。
dataFile["EpicString"] = "EpicValue"; dataFile["EpicNumber"] = 42; dataFile.Save();
-
データファイル
oxide/data/MyDataFile.json
の内容は次の通りです。{ "EpicNumber": 42, "EpicString": "EpicValue" }
-
データファイルからデータを取得します。
// Check if the EpicString exists if (dataFile["EpicString"] != null) { Puts(dataFile["EpicString"] as string); // Outputs: EpicValue } // Check if the EpicNumber exists if (dataFile["EpicNumber"] != null) { Puts(dataFile["EpicNumber"] as string); // Outputs: 42 }
例
プラグインの初期化時にデータファイルを作成し、初期化終了時にデータファイルの保存、取得を行う例です。
using Oxide.Core.Configuration;
namespace Oxide.Plugins
{
[Info("DataFiles", "st-little", "0.1.0")]
[Description("DataFiles")]
public class DataFiles : RustPlugin
{
DynamicConfigFile dataFile;
#region Oxide Hooks
private void Init()
{
// データファイルの作成
dataFile = Core.Interface.Oxide.DataFileSystem.GetDatafile("MyDataFile");
}
private void OnServerInitialized()
{
// データファイルの保存
dataFile["EpicString"] = "EpicValue";
dataFile["EpicNumber"] = 42;
dataFile.Save();
// データファイルの取得
// Check if the EpicString exists
if (dataFile["EpicString"] != null)
{
Puts(dataFile["EpicString"] as string); // Outputs: EpicValue
}
// Check if the EpicNumber exists
if (dataFile["EpicNumber"] != null)
{
Puts(dataFile["EpicNumber"] as string); // Outputs: 42
}
}
#endregion
}
}
データオブジェクトの使用
-
データオブジェクトのクラスを作成します。
private class StoredData { public int EpicNumber; public string EpicString; public StoredData() { } }
-
データオブジェクトのフィールドを作成します。
private StoredData storedData;
-
データファイル
oxide/data/MyDataFile.json
がすでに存在する場合はロードします。データファイルが存在しない場合は作成します。storedData = Core.Interface.Oxide.DataFileSystem.ReadObject<StoredData>("MyDataFile");
-
データオブジェクトでデータを保存します。
storedData.EpicNumber = 42; storedData.EpicString = "EpicValue"; Core.Interface.Oxide.DataFileSystem.WriteObject("MyDataFile", storedData);
-
データオブジェクトからデータを取得します。
// Check if the EpicString exists if (storedData.EpicString != null) { Puts(storedData.EpicString); // Outputs: EpicValue } // Check if the EpicNumber exists if (storedData.EpicNumber != null) { Puts(storedData.EpicNumber.ToString()); // Outputs: 42 }
例
プラグインの初期化時にデータファイルを作成し、初期化終了時にデータファイルの保存、取得を行う例です。
using Oxide.Core.Configuration;
namespace Oxide.Plugins
{
[Info("DataFiles", "st-little", "0.1.0")]
[Description("DataFiles")]
public class DataFiles : RustPlugin
{
private class StoredData
{
public int EpicNumber;
public string EpicString;
public StoredData()
{
}
}
private StoredData storedData;
#region Oxide Hooks
private void Init()
{
// ファイルの作成
storedData = Core.Interface.Oxide.DataFileSystem.ReadObject<StoredData>("MyDataFile");
}
private void OnServerInitialized()
{
// ファイルの保存
storedData.EpicNumber = 42;
storedData.EpicString = "EpicValue";
Core.Interface.Oxide.DataFileSystem.WriteObject("MyDataFile", storedData);
// データファイルの取得
// Check if the EpicString exists
if (storedData.EpicString != null)
{
Puts(storedData.EpicString); // Outputs: EpicValue
}
// Check if the EpicNumber exists
if (storedData.EpicNumber != null)
{
Puts(storedData.EpicNumber.ToString()); // Outputs: 42
}
}
#endregion
}
}