improve BanList types

This commit is contained in:
Yannick Lamprecht
2024-02-10 20:49:47 +01:00
parent 3ebc5bb92c
commit 3073742fd7
5 changed files with 72 additions and 0 deletions

View File

@@ -16,7 +16,9 @@ public interface BanList<T> {
/**
* Represents a ban-type that a {@link BanList} may track.
* @deprecated use {@link io.papermc.paper.ban.BanListType} to enforce the correct return value at compile time.
*/
@Deprecated(since = "1.20.4") // Paper - BanList Type Improvements
public enum Type {
/**
* Banned player names

View File

@@ -1663,11 +1663,27 @@ public final class Bukkit {
* @param <T> The ban target
*
* @return a ban list of the specified type
* @deprecated use {@link #getBanList(io.papermc.paper.ban.BanListType)} to enforce the correct return value at compile time.
*/
@NotNull
@Deprecated(since = "1.20.4") // Paper - add BanListType (which has a generic)
public static <T extends BanList<?>> T getBanList(@NotNull BanList.Type type) {
return server.getBanList(type);
}
// Paper start - add BanListType (which has a generic)
/**
* Gets a ban list for the supplied type.
*
* @param type the type of list to fetch, cannot be null
* @param <B> The ban target
*
* @return a ban list of the specified type
*/
@NotNull
public static <B extends BanList<E>, E> B getBanList(final io.papermc.paper.ban.@NotNull BanListType<B> type) {
return server.getBanList(type);
}
// Paper end - add BanListType (which has a generic)
/**
* Gets a set containing all player operators.

View File

@@ -1425,10 +1425,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @param <T> The ban target
*
* @return a ban list of the specified type
* @deprecated use {@link #getBanList(io.papermc.paper.ban.BanListType)} to enforce the correct return value at compile time.
*/
@Deprecated // Paper - add BanListType (which has a generic)
@NotNull
public <T extends BanList<?>> T getBanList(@NotNull BanList.Type type);
// Paper start - add BanListType (which has a generic)
/**
* Gets a ban list for the supplied type.
*
* @param type the type of list to fetch, cannot be null
* @param <B> The ban target
*
* @return a ban list of the specified type
*/
@NotNull
<B extends BanList<E>, E> B getBanList(@NotNull io.papermc.paper.ban.BanListType<B> type);
// Paper end - add BanListType (which has a generic)
/**
* Gets a set containing all player operators.
*