1
0
mirror of https://github.com/chylex/Minecraft-Phantom-Panel.git synced 2024-11-23 19:42:51 +01:00
Minecraft-Phantom-Panel/Common/Phantom.Common.Data.Web/Minecraft/JvmArgumentsHelper.cs
2023-12-05 14:27:55 +01:00

41 lines
1.1 KiB
C#

using System.Collections.Immutable;
namespace Phantom.Common.Data.Web.Minecraft;
public static class JvmArgumentsHelper {
public static ImmutableArray<string> Split(string arguments) {
return arguments.Split('\n', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries).ToImmutableArray();
}
public static string Join(ImmutableArray<string> arguments) {
return string.Join('\n', arguments);
}
public static ValidationError? Validate(string arguments) {
return Validate(Split(arguments));
}
private static ValidationError? Validate(ImmutableArray<string> arguments) {
if (!arguments.All(static argument => argument.StartsWith('-'))) {
return ValidationError.InvalidFormat;
}
// TODO not perfect, but good enough
if (arguments.Any(static argument => argument.Contains("-Xmx"))) {
return ValidationError.XmxNotAllowed;
}
if (arguments.Any(static argument => argument.Contains("-Xms"))) {
return ValidationError.XmsNotAllowed;
}
return null;
}
public enum ValidationError {
InvalidFormat,
XmxNotAllowed,
XmsNotAllowed
}
}