mirror of
https://github.com/chylex/Minecraft-Phantom-Panel.git
synced 2024-11-23 19:42:51 +01:00
41 lines
1.1 KiB
C#
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
|
|
}
|
|
}
|