From 153987a0badf28d31f0ffe7eaabd12e91d1487e9 Mon Sep 17 00:00:00 2001 From: Christian Hughes Date: Sat, 3 Jul 2021 00:48:43 -0500 Subject: [PATCH 1/2] add DamageType.Builder --- SpongeAPI | 2 +- .../damage/SpongeDamageTypeBuilder.java | 50 +++++++++++++++++++ .../registry/SpongeBuilderProvider.java | 3 ++ 3 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/spongepowered/common/event/cause/entity/damage/SpongeDamageTypeBuilder.java diff --git a/SpongeAPI b/SpongeAPI index a5b9d9fb5dd..d4b96067eba 160000 --- a/SpongeAPI +++ b/SpongeAPI @@ -1 +1 @@ -Subproject commit a5b9d9fb5dd5b84a07a8557e9c2348788112b05a +Subproject commit d4b96067eba55bcd9faf61d7463e241f2ad6309c diff --git a/src/main/java/org/spongepowered/common/event/cause/entity/damage/SpongeDamageTypeBuilder.java b/src/main/java/org/spongepowered/common/event/cause/entity/damage/SpongeDamageTypeBuilder.java new file mode 100644 index 00000000000..eb86f21658c --- /dev/null +++ b/src/main/java/org/spongepowered/common/event/cause/entity/damage/SpongeDamageTypeBuilder.java @@ -0,0 +1,50 @@ +/* + * This file is part of Sponge, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * 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 org.spongepowered.common.event.cause.entity.damage; + +import org.jetbrains.annotations.NotNull; +import org.spongepowered.api.event.cause.entity.damage.DamageType; + +public final class SpongeDamageTypeBuilder implements DamageType.Builder { + + private String name; + + @Override + public DamageType.Builder name(final String name) { + this.name = name; + return this; + } + + @Override + public DamageType.Builder reset() { + this.name = null; + return this; + } + + @Override + public @NotNull DamageType build() { + return new SpongeDamageType(this.name); + } +} \ No newline at end of file diff --git a/src/main/java/org/spongepowered/common/registry/SpongeBuilderProvider.java b/src/main/java/org/spongepowered/common/registry/SpongeBuilderProvider.java index 01b404c9855..1db08775bae 100644 --- a/src/main/java/org/spongepowered/common/registry/SpongeBuilderProvider.java +++ b/src/main/java/org/spongepowered/common/registry/SpongeBuilderProvider.java @@ -65,6 +65,7 @@ import org.spongepowered.api.entity.attribute.AttributeModifier; import org.spongepowered.api.entity.living.player.tab.TabListEntry; import org.spongepowered.api.event.EventContextKey; +import org.spongepowered.api.event.cause.entity.damage.DamageType; import org.spongepowered.api.event.cause.entity.damage.source.BlockDamageSource; import org.spongepowered.api.event.cause.entity.damage.source.DamageSource; import org.spongepowered.api.event.cause.entity.damage.source.EntityDamageSource; @@ -165,6 +166,7 @@ import org.spongepowered.common.event.SpongeEventContextKeyBuilder; import org.spongepowered.common.event.cause.entity.damage.SpongeBlockDamageSourceBuilder; import org.spongepowered.common.event.cause.entity.damage.SpongeDamageSourceBuilder; +import org.spongepowered.common.event.cause.entity.damage.SpongeDamageTypeBuilder; import org.spongepowered.common.event.cause.entity.damage.SpongeEntityDamageSourceBuilder; import org.spongepowered.common.event.cause.entity.damage.SpongeFallingBlockDamgeSourceBuilder; import org.spongepowered.common.event.cause.entity.damage.SpongeIndirectEntityDamageSourceBuilder; @@ -262,6 +264,7 @@ public void registerDefaultBuilders() { .register(Objective.Builder.class, SpongeObjective.Builder::new) .register(Team.Builder.class, SpongeTeamBuilder::new) .register(Scoreboard.Builder.class, SpongeScoreboardBuilder::new) + .register(DamageType.Builder.class, SpongeDamageTypeBuilder::new) .register(DamageSource.Builder.class, SpongeDamageSourceBuilder::new) .register(EntityDamageSource.Builder.class, SpongeEntityDamageSourceBuilder::new) .register(IndirectEntityDamageSource.Builder.class, SpongeIndirectEntityDamageSourceBuilder::new) From d8cfd3f61a21eaaef12268090b60a68e90125999 Mon Sep 17 00:00:00 2001 From: Christian Hughes Date: Sat, 3 Jul 2021 00:58:09 -0500 Subject: [PATCH 2/2] missed newline --- .../event/cause/entity/damage/SpongeDamageTypeBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/spongepowered/common/event/cause/entity/damage/SpongeDamageTypeBuilder.java b/src/main/java/org/spongepowered/common/event/cause/entity/damage/SpongeDamageTypeBuilder.java index eb86f21658c..c51df3183e4 100644 --- a/src/main/java/org/spongepowered/common/event/cause/entity/damage/SpongeDamageTypeBuilder.java +++ b/src/main/java/org/spongepowered/common/event/cause/entity/damage/SpongeDamageTypeBuilder.java @@ -47,4 +47,4 @@ public DamageType.Builder reset() { public @NotNull DamageType build() { return new SpongeDamageType(this.name); } -} \ No newline at end of file +}