Skip to content

Commit aae5519

Browse files
Chaosdave34lynxplay
authored andcommitted
Make exhaustion nullable in PaperDamageTypeRegistryEntry and damageEffects and deathMessageType no longer nullable
1 parent 8194df5 commit aae5519

File tree

2 files changed

+37
-38
lines changed

2 files changed

+37
-38
lines changed

paper-api/src/main/java/io/papermc/paper/registry/data/DamageTypeRegistryEntry.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import org.bukkit.damage.DeathMessageType;
88
import org.jetbrains.annotations.ApiStatus;
99
import org.jetbrains.annotations.Contract;
10-
import org.jspecify.annotations.Nullable;
1110

1211
/**
1312
* A data-centric version-specific registry entry for the {@link DamageType} type.
@@ -45,15 +44,25 @@ public interface DamageTypeRegistryEntry {
4544
*
4645
* @return the damage effect
4746
*/
48-
@Nullable DamageEffect damageEffect();
47+
DamageEffect damageEffect();
4948

5049
/**
5150
* Provides the {@link DeathMessageType} for this damage type.
5251
*
5352
* @return the death message type
5453
*/
55-
@Nullable DeathMessageType deathMessageType();
54+
DeathMessageType deathMessageType();
5655

56+
/**
57+
* A mutable builder for the {@link DamageTypeRegistryEntry} plugins may change in applicable registry events.
58+
* <p>
59+
* The following values are required for each builder:
60+
* <ul>
61+
* <li>{@link #messageId(String)}</li>
62+
* <li>{@link #exhaustion(float)}</li>
63+
* <li>{@link #damageScaling(DamageScaling)}</li>
64+
* </ul>
65+
*/
5766
@ApiStatus.Experimental
5867
@ApiStatus.NonExtendable
5968
interface Builder extends DamageTypeRegistryEntry, RegistryBuilder<DamageType> {
@@ -95,7 +104,7 @@ interface Builder extends DamageTypeRegistryEntry, RegistryBuilder<DamageType> {
95104
* @see DamageType#getDamageEffect()
96105
*/
97106
@Contract(value = "_ -> this", mutates = "this")
98-
Builder damageEffect(@Nullable DamageEffect effect);
107+
Builder damageEffect(DamageEffect effect);
99108

100109
/**
101110
* Sets the {@link DeathMessageType} for this damage type.
@@ -105,6 +114,6 @@ interface Builder extends DamageTypeRegistryEntry, RegistryBuilder<DamageType> {
105114
* @see DamageType#getDeathMessageType()
106115
*/
107116
@Contract(value = "_ -> this", mutates = "this")
108-
Builder deathMessageType(@Nullable DeathMessageType deathMessageType);
117+
Builder deathMessageType(DeathMessageType deathMessageType);
109118
}
110119
}

paper-server/src/main/java/io/papermc/paper/registry/data/PaperDamageTypeRegistryEntry.java

Lines changed: 23 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212

1313
public class PaperDamageTypeRegistryEntry implements DamageTypeRegistryEntry {
1414
protected @Nullable String messageId;
15-
protected float exhaustion;
15+
protected @Nullable Float exhaustion;
1616
protected @Nullable DamageScaling damageScaling;
17-
protected @Nullable DamageEffects damageEffects;
18-
protected @Nullable DeathMessageType deathMessageType;
17+
protected DamageEffects damageEffects;
18+
protected DeathMessageType deathMessageType;
1919

2020
protected final Conversions conversions;
2121

@@ -24,7 +24,11 @@ public PaperDamageTypeRegistryEntry(
2424
final @Nullable DamageType internal
2525
) {
2626
this.conversions = conversions;
27-
if (internal == null) return;
27+
if (internal == null) {
28+
this.damageEffects = DamageEffects.HURT;
29+
this.deathMessageType = DeathMessageType.DEFAULT;
30+
return;
31+
}
2832

2933
this.messageId = internal.msgId();
3034
this.exhaustion = internal.exhaustion();
@@ -40,7 +44,7 @@ public String messageId() {
4044

4145
@Override
4246
public float exhaustion() {
43-
return exhaustion;
47+
return asConfigured(exhaustion, "exhaustion");
4448
}
4549

4650
@Override
@@ -49,13 +53,13 @@ public org.bukkit.damage.DamageScaling damageScaling() {
4953
}
5054

5155
@Override
52-
public @Nullable DamageEffect damageEffect() {
53-
return damageEffects == null ? null : CraftDamageEffect.toBukkit(damageEffects);
56+
public DamageEffect damageEffect() {
57+
return CraftDamageEffect.toBukkit(damageEffects);
5458
}
5559

5660
@Override
57-
public org.bukkit.damage.@Nullable DeathMessageType deathMessageType() {
58-
return deathMessageType == null ? null : CraftDamageType.deathMessageTypeToBukkit(deathMessageType);
61+
public org.bukkit.damage.DeathMessageType deathMessageType() {
62+
return CraftDamageType.deathMessageTypeToBukkit(deathMessageType);
5963
}
6064

6165
public static final class PaperBuilder extends PaperDamageTypeRegistryEntry implements DamageTypeRegistryEntry.Builder, PaperRegistryBuilder<DamageType, org.bukkit.damage.DamageType> {
@@ -83,39 +87,25 @@ public Builder damageScaling(org.bukkit.damage.DamageScaling scaling) {
8387
}
8488

8589
@Override
86-
public Builder damageEffect(@Nullable DamageEffect effect) {
87-
this.damageEffects = effect == null ? null : ((CraftDamageEffect) effect).getHandle();
90+
public Builder damageEffect(DamageEffect effect) {
91+
this.damageEffects = ((CraftDamageEffect) effect).getHandle();
8892
return this;
8993
}
9094

9195
@Override
92-
public Builder deathMessageType(org.bukkit.damage.@Nullable DeathMessageType deathMessageType) {
93-
this.deathMessageType = deathMessageType == null ? null : CraftDamageType.deathMessageTypeToNMS(deathMessageType);
96+
public Builder deathMessageType(org.bukkit.damage.DeathMessageType deathMessageType) {
97+
this.deathMessageType = CraftDamageType.deathMessageTypeToNMS(deathMessageType);
9498
return this;
9599
}
96100

97101
@Override
98102
public DamageType build() {
99-
if (this.damageEffects != null && this.deathMessageType != null) {
100-
return new DamageType(
101-
asConfigured(this.messageId, "messsageId"),
102-
asConfigured(this.damageScaling, "scaling"),
103-
this.exhaustion,
104-
this.damageEffects,
105-
this.deathMessageType);
106-
} else if (this.damageEffects != null) {
107-
return new DamageType(
108-
asConfigured(this.messageId, "messsageId"),
109-
asConfigured(this.damageScaling, "scaling"),
110-
this.exhaustion,
111-
this.damageEffects);
112-
} else {
113-
return new DamageType(
114-
asConfigured(this.messageId, "messsageId"),
115-
asConfigured(this.damageScaling, "scaling"),
116-
this.exhaustion
117-
);
118-
}
103+
return new DamageType(
104+
asConfigured(this.messageId, "messsageId"),
105+
asConfigured(this.damageScaling, "scaling"),
106+
asConfigured(this.exhaustion, "exhaustion"),
107+
this.damageEffects,
108+
this.deathMessageType);
119109
}
120110
}
121111
}

0 commit comments

Comments
 (0)