Add [Optional]PlayerLike interfaces
This commit is contained in:
83
patches/api/0003-Add-Optional-PlayerLike-interfaces.patch
Normal file
83
patches/api/0003-Add-Optional-PlayerLike-interfaces.patch
Normal file
@@ -0,0 +1,83 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: lexikiq <noellekiq@gmail.com>
|
||||
Date: Mon, 3 May 2021 21:48:40 -0400
|
||||
Subject: [PATCH] Add [Optional]PlayerLike interfaces
|
||||
|
||||
|
||||
diff --git a/src/main/java/me/lexikiq/OptionalPlayerLike.java b/src/main/java/me/lexikiq/OptionalPlayerLike.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..aaa1879f9560ef6ff415e98a5fdf2403f0480a0b
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/me/lexikiq/OptionalPlayerLike.java
|
||||
@@ -0,0 +1,16 @@
|
||||
+package me.lexikiq;
|
||||
+
|
||||
+import net.kyori.adventure.identity.Identified;
|
||||
+import net.kyori.adventure.identity.Identity;
|
||||
+import org.checkerframework.checker.nullness.qual.NonNull;
|
||||
+
|
||||
+/**
|
||||
+ * Class that may be like a {@link org.bukkit.entity.Player} in that it has a {@link java.util.UUID}, {@link org.bukkit.OfflinePlayer}, {@link Identity}, and a nullable Player.
|
||||
+ * @see me.lexikiq.PlayerLike
|
||||
+ */
|
||||
+public interface OptionalPlayerLike extends OptionalPlayer, HasUniqueId, HasOfflinePlayer, Identified {
|
||||
+ @Override
|
||||
+ default @NonNull Identity identity() {
|
||||
+ return Identity.identity(getUniqueId());
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/me/lexikiq/PlayerLike.java b/src/main/java/me/lexikiq/PlayerLike.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..3184f585f9c6e59ce9297d6613749453ce5e6ab5
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/me/lexikiq/PlayerLike.java
|
||||
@@ -0,0 +1,7 @@
|
||||
+package me.lexikiq;
|
||||
+
|
||||
+/**
|
||||
+ * Class that is like a {@link org.bukkit.entity.Player} in that it has a Player, {@link java.util.UUID}, {@link org.bukkit.OfflinePlayer}, and an {@link net.kyori.adventure.identity.Identity}.
|
||||
+ * @see me.lexikiq.OptionalPlayerLike
|
||||
+ */
|
||||
+public interface PlayerLike extends HasPlayer, OptionalPlayerLike {}
|
||||
diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java
|
||||
index e2b4f86fc3825a77a5a0c1c29b428308eee54b16..95220ef8ad0602fae9f88c0231762ff50358d98f 100644
|
||||
--- a/src/main/java/org/bukkit/OfflinePlayer.java
|
||||
+++ b/src/main/java/org/bukkit/OfflinePlayer.java
|
||||
@@ -5,6 +5,7 @@ import java.util.UUID;
|
||||
import me.lexikiq.HasOfflinePlayer;
|
||||
import me.lexikiq.HasUniqueId;
|
||||
import me.lexikiq.OptionalPlayer;
|
||||
+import me.lexikiq.OptionalPlayerLike;
|
||||
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
||||
import org.bukkit.entity.AnimalTamer;
|
||||
import org.bukkit.entity.EntityType;
|
||||
@@ -13,7 +14,7 @@ import org.bukkit.permissions.ServerOperator;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
-public interface OfflinePlayer extends ServerOperator, AnimalTamer, ConfigurationSerializable, OptionalPlayer, HasUniqueId, HasOfflinePlayer { // Parchment
|
||||
+public interface OfflinePlayer extends ServerOperator, AnimalTamer, ConfigurationSerializable, OptionalPlayerLike { // Parchment
|
||||
// Parchment start
|
||||
@Override
|
||||
@NotNull default OfflinePlayer getOfflinePlayer() {
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index 5b011eb3795d30f79a7c5ffef7c3a852dfd09c29..6f3afd14dd060660e0ab7c8c9cf6484b5d894851 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -6,6 +6,7 @@ import java.util.UUID;
|
||||
import com.destroystokyo.paper.ClientOption; // Paper
|
||||
import com.destroystokyo.paper.Title; // Paper
|
||||
import me.lexikiq.HasPlayer;
|
||||
+import me.lexikiq.PlayerLike;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import com.destroystokyo.paper.profile.PlayerProfile; // Paper
|
||||
import java.util.Date; // Paper
|
||||
@@ -40,7 +41,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
/**
|
||||
* Represents a player, connected or not
|
||||
*/
|
||||
-public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginMessageRecipient, net.kyori.adventure.identity.Identified, com.destroystokyo.paper.network.NetworkClient, HasPlayer { // Paper // Parchment
|
||||
+public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginMessageRecipient, net.kyori.adventure.identity.Identified, com.destroystokyo.paper.network.NetworkClient, PlayerLike { // Paper // Parchment
|
||||
|
||||
// Parchment start
|
||||
/**
|
||||
Reference in New Issue
Block a user