add luckperms plugin

This commit is contained in:
zznty
2023-11-09 16:53:02 +07:00
parent b05113f971
commit ec5e20b922
98 changed files with 3230 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
using System;
using System.Collections;
using System.Collections.Generic;
using java.util;
namespace LuckPerms.Torch.Extensions;
public static class IteratorExtensions
{
public static IteratorEnumerator<object> GetEnumerator(this Iterator iterator) => new(iterator);
public static IteratorEnumerable<T> AsEnumerable<T>(this Iterator iterator) => new(iterator);
public struct IteratorEnumerator<T>(Iterator iterator) : IEnumerator<T>
{
public bool MoveNext()
{
if (iterator.hasNext())
{
Current = iterator.next() is T ? (T)iterator.next() : default;
return true;
}
Current = default;
return false;
}
public void Reset()
{
throw new NotSupportedException();
}
object? IEnumerator.Current => Current;
public T? Current { get; private set; }
public void Dispose()
{
}
}
public struct IteratorEnumerable<T>(Iterator iterator) : IEnumerable<T>
{
public IteratorEnumerator<T> GetEnumerator() => new(iterator);
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{
return GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator() => null!;
}
}