Paper/Spigot-API-Patches/0103-PotionEffect-clone-methods.patch
Zach Brown 70ce6ce831
Move version command update checking to the implementation
This makes it easier for downstream projects (forks) to replace the
version fetching system with their own. It is as simple as implementing
an interface and overriding the default implementation of
org.bukkit.UnsafeValues#getVersionFetcher()

It also makes it easier for us to organize things like the version
history feature.

Lastly I have updated the paper implementation to check against the site
API rather than against jenkins.
2019-05-27 04:13:41 -05:00

48 lines
1.9 KiB
Diff

From c7a93ea87077c8180f4a4bdb6012b45c63a84543 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 3 Jun 2018 04:10:13 -0400
Subject: [PATCH] PotionEffect clone methods
diff --git a/src/main/java/org/bukkit/potion/PotionEffect.java b/src/main/java/org/bukkit/potion/PotionEffect.java
index bbefcd58..0193e075 100644
--- a/src/main/java/org/bukkit/potion/PotionEffect.java
+++ b/src/main/java/org/bukkit/potion/PotionEffect.java
@@ -101,6 +101,33 @@ public class PotionEffect implements ConfigurationSerializable {
this(getEffectType(map), getInt(map, DURATION), getInt(map, AMPLIFIER), getBool(map, AMBIENT, false), getBool(map, PARTICLES, true), getBool(map, ICON, getBool(map, PARTICLES, true)));
}
+ // Paper start
+ @NotNull
+ public PotionEffect withType(@NotNull PotionEffectType type) {
+ return new PotionEffect(type, duration, amplifier, ambient, particles, icon);
+ }
+ @NotNull
+ public PotionEffect withDuration(int duration) {
+ return new PotionEffect(this.type, duration, amplifier, ambient, particles, icon);
+ }
+ @NotNull
+ public PotionEffect withAmplifier(int amplifier) {
+ return new PotionEffect(this.type, duration, amplifier, ambient, particles, icon);
+ }
+ @NotNull
+ public PotionEffect withAmbient(boolean ambient) {
+ return new PotionEffect(this.type, duration, amplifier, ambient, particles, icon);
+ }
+ @NotNull
+ public PotionEffect withParticles(boolean particles) {
+ return new PotionEffect(this.type, duration, amplifier, ambient, particles, icon);
+ }
+ @NotNull
+ public PotionEffect withIcon(boolean icon) {
+ return new PotionEffect(this.type, duration, amplifier, ambient, particles, icon);
+ }
+ // Paper end
+
@NotNull
private static PotionEffectType getEffectType(@NotNull Map<?, ?> map) {
int type = getInt(map, TYPE);
--
2.21.0