Skip to content

+EA 23.283 Nightly Patch 2 - Plugin.BaseCore

March 6, 2026

3 files modified.

Important Changes

None.

ExcelParser

public static void ReportIllFormat<T>(int id)

cs
{
	StringBuilder stringBuilder = new StringBuilder();
	string name = typeof(T).Name;
	ICell cell = row.Cells.TryGet(id, returnNull: true); 
	string value = ((row.RowNum < 3) ? ", SourceData begins at the 4th row. 3rd row is the default value row." : $", default:'{rowDefault.Cells.TryGet(id, returnNull: true)}'"); 
	ICell cell = row?.Cells.TryGet(id, returnNull: true); 
	IRow obj = row; 
	string value = ((obj != null && obj.RowNum >= 3) ? $", default:'{rowDefault?.Cells.TryGet(id, returnNull: true)}'" : ", SourceData begins at the 4th row. 3rd row is the default value row."); 
	stringBuilder.AppendLine("$source ill-format file: " + path);
	stringBuilder.Append($"row#{row.RowNum + 1}, cell'{id + 1}'/'{ToLetterId(id)}', expected:'{name}', read:'{cell}'"); 
	object[] array = new object[5]; 
	IRow obj2 = row; 
	array[0] = ((obj2 != null) ? new int?(obj2.RowNum + 1) : null); 
	array[1] = id + 1; 
	array[2] = ToLetterId(id); 
	array[3] = name; 
	array[4] = cell; 
	stringBuilder.Append(string.Format("row#{0}, cell'{1}'/'{2}', expected:'{3}', read:'{4}'", array)); 
	stringBuilder.AppendLine(value);
	Debug.LogError(stringBuilder);
}

IO

public static byte[] ReadLZ4(byte[] bytes)

cs

	public static bool IsCompressed(string path)
	{
		byte[] array; 
		using (BinaryReader binaryReader = new BinaryReader(File.OpenRead(path))) 
		using FileStream fileStream = File.OpenRead(path); 
		if (fileStream.Length == 0L) 
		{
			binaryReader.BaseStream.Seek(0L, SeekOrigin.Begin); 
			array = binaryReader.ReadBytes(4); 
			return false; 
		}
		if (array.Length > 3 && array[0] == 123 && array[1] == 13 && array[2] == 10 && array[3] == 32) 
		bool flag; 
		while (true) 
		{
			return false; 
			switch (fileStream.ReadByte()) 
			{ 
			case 9: 
			case 10: 
			case 13: 
			case 32: 
				continue; 
			case -1: 
				return false; 
			case 34: 
			case 45: 
			case 48: 
			case 49: 
			case 50: 
			case 51: 
			case 52: 
			case 53: 
			case 54: 
			case 55: 
			case 56: 
			case 57: 
			case 91: 
			case 102: 
			case 110: 
			case 116: 
			case 123: 
				flag = true; 
				break; 
			default: 
				flag = false; 
				break; 
			} 
			break; 
		}
		return true; 
		return !flag; 
	}

	public static void Compress(string path, string text)

SourceData

public virtual void RemoveDuplicateRows()

cs
{
	HashSet<T2> hashSet = new HashSet<T2>();
	List<T> list = new List<T>(rows.Count);
	bool flag = typeof(T).DeclaringType.Name.Contains("Lang"); 
	string arg = GetType().Name;
	System.Reflection.FieldInfo field = typeof(T).GetField("id");
	bool flag = typeof(LangRow).IsAssignableFrom(typeof(T)); 
	if (field == null) 
	{ 
		return; 
	} 
	if (field.FieldType != typeof(T2))
	{
		Debug.LogError($"#source override: {arg} id field mismatch {field.FieldType} != {typeof(T2)}");