diff options
author | Riley Park <[email protected]> | 2021-06-21 09:55:17 -0700 |
---|---|---|
committer | Riley Park <[email protected]> | 2021-06-21 09:57:15 -0700 |
commit | 15e4b30e9eaf4ccfeb899fec5b248d37b3889ef4 (patch) | |
tree | cf6152b1a413e4713c9bdbdd8dd2c41dbdfab558 /patches/api/0083-Fill-Profile-Property-Events.patch | |
parent | 33a04d97ab566ac6c8e8a6794e2d432234f3d2e5 (diff) | |
download | Paper-15e4b30e9eaf4ccfeb899fec5b248d37b3889ef4.tar.gz Paper-15e4b30e9eaf4ccfeb899fec5b248d37b3889ef4.zip |
Allow use of TYPE_USE annotations
Diffstat (limited to 'patches/api/0083-Fill-Profile-Property-Events.patch')
-rw-r--r-- | patches/api/0083-Fill-Profile-Property-Events.patch | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/patches/api/0083-Fill-Profile-Property-Events.patch b/patches/api/0083-Fill-Profile-Property-Events.patch new file mode 100644 index 0000000000..5511f6449a --- /dev/null +++ b/patches/api/0083-Fill-Profile-Property-Events.patch @@ -0,0 +1,176 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar <[email protected]> +Date: Tue, 2 Jan 2018 00:31:08 -0500 +Subject: [PATCH] Fill Profile Property Events + +Allows plugins to populate profile properties from local sources to avoid calls out to Mojang API +to fill in textures for example. + +If Mojang API does need to be hit, event fire so you can get the results. + +This is useful for implementing a ProfileCache for Player Skulls + +diff --git a/src/main/java/com/destroystokyo/paper/event/profile/FillProfileEvent.java b/src/main/java/com/destroystokyo/paper/event/profile/FillProfileEvent.java +new file mode 100644 +index 0000000000000000000000000000000000000000..71f36e9cae209ec6861835a5e76e018de959040a +--- /dev/null ++++ b/src/main/java/com/destroystokyo/paper/event/profile/FillProfileEvent.java +@@ -0,0 +1,75 @@ ++/* ++ * Copyright (c) 2018 Daniel Ennis (Aikar) MIT License ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining ++ * a copy of this software and associated documentation files (the ++ * "Software"), to deal in the Software without restriction, including ++ * without limitation the rights to use, copy, modify, merge, publish, ++ * distribute, sublicense, and/or sell copies of the Software, and to ++ * permit persons to whom the Software is furnished to do so, subject to ++ * the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ++ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ++ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ++ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++package com.destroystokyo.paper.event.profile; ++ ++import com.destroystokyo.paper.profile.PlayerProfile; ++import com.destroystokyo.paper.profile.ProfileProperty; ++import org.bukkit.event.Event; ++import org.bukkit.event.HandlerList; ++ ++import java.util.Set; ++import org.jetbrains.annotations.NotNull; ++ ++/** ++ * Fired once a profiles additional properties (such as textures) has been filled ++ */ ++public class FillProfileEvent extends Event { ++ @NotNull private final PlayerProfile profile; ++ ++ public FillProfileEvent(@NotNull PlayerProfile profile) { ++ super(!org.bukkit.Bukkit.isPrimaryThread()); ++ this.profile = profile; ++ } ++ ++ /** ++ * @return The Profile that had properties filled ++ */ ++ @NotNull ++ public PlayerProfile getPlayerProfile() { ++ return profile; ++ } ++ ++ /** ++ * Same as .getPlayerProfile().getProperties() ++ * ++ * @see PlayerProfile#getProperties() ++ * @return The new properties on the profile. ++ */ ++ @NotNull ++ public Set<ProfileProperty> getProperties() { ++ return profile.getProperties(); ++ } ++ ++ private static final HandlerList handlers = new HandlerList(); ++ ++ @NotNull ++ public HandlerList getHandlers() { ++ return handlers; ++ } ++ ++ @NotNull ++ public static HandlerList getHandlerList() { ++ return handlers; ++ } ++} +diff --git a/src/main/java/com/destroystokyo/paper/event/profile/PreFillProfileEvent.java b/src/main/java/com/destroystokyo/paper/event/profile/PreFillProfileEvent.java +new file mode 100644 +index 0000000000000000000000000000000000000000..021bc86310a06f84b39459e0eb8927802726399c +--- /dev/null ++++ b/src/main/java/com/destroystokyo/paper/event/profile/PreFillProfileEvent.java +@@ -0,0 +1,77 @@ ++/* ++ * Copyright (c) 2018 Daniel Ennis (Aikar) MIT License ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining ++ * a copy of this software and associated documentation files (the ++ * "Software"), to deal in the Software without restriction, including ++ * without limitation the rights to use, copy, modify, merge, publish, ++ * distribute, sublicense, and/or sell copies of the Software, and to ++ * permit persons to whom the Software is furnished to do so, subject to ++ * the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ++ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ++ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ++ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++package com.destroystokyo.paper.event.profile; ++ ++import com.destroystokyo.paper.profile.PlayerProfile; ++import com.destroystokyo.paper.profile.ProfileProperty; ++import org.bukkit.event.Event; ++import org.bukkit.event.HandlerList; ++ ++import java.util.Collection; ++import org.jetbrains.annotations.NotNull; ++ ++/** ++ * Fired when the server is requesting to fill in properties of an incomplete profile, such as textures. ++ * ++ * Allows plugins to pre populate cached properties and avoid a call to the Mojang API ++ */ ++public class PreFillProfileEvent extends Event { ++ @NotNull private final PlayerProfile profile; ++ ++ public PreFillProfileEvent(@NotNull PlayerProfile profile) { ++ super(!org.bukkit.Bukkit.isPrimaryThread()); ++ this.profile = profile; ++ } ++ ++ /** ++ * @return The profile that needs its properties filled ++ */ ++ @NotNull ++ public PlayerProfile getPlayerProfile() { ++ return profile; ++ } ++ ++ /** ++ * Sets the properties on the profile, avoiding the call to the Mojang API ++ * Same as .getPlayerProfile().setProperties(properties); ++ * ++ * @see PlayerProfile#setProperties(Collection) ++ * @param properties The properties to set/append ++ */ ++ public void setProperties(@NotNull Collection<ProfileProperty> properties) { ++ profile.setProperties(properties); ++ } ++ ++ private static final HandlerList handlers = new HandlerList(); ++ ++ @NotNull ++ public HandlerList getHandlers() { ++ return handlers; ++ } ++ ++ @NotNull ++ public static HandlerList getHandlerList() { ++ return handlers; ++ } ++} |