Skip to content

Commit

Permalink
Merge pull request #1593 from Meronat/feature/enchantment-clean
Browse files Browse the repository at this point in the history
Cleanup of enchantments
  • Loading branch information
Meronat committed Dec 1, 2017
2 parents 7aa6183 + 9e9e94f commit f085786
Show file tree
Hide file tree
Showing 24 changed files with 432 additions and 146 deletions.
2 changes: 1 addition & 1 deletion SpongeAPI
Submodule SpongeAPI updated 22 files
+1 −1 build.gradle
+2 −2 src/main/java/org/spongepowered/api/CatalogTypes.java
+3 −1 src/main/java/org/spongepowered/api/block/tileentity/EnchantmentTable.java
+4 −4 src/main/java/org/spongepowered/api/data/key/Keys.java
+1 −1 src/main/java/org/spongepowered/api/data/manipulator/catalog/CatalogItemData.java
+3 −3 src/main/java/org/spongepowered/api/data/manipulator/immutable/entity/ImmutableExperienceHolderData.java
+7 −6 src/main/java/org/spongepowered/api/data/manipulator/immutable/item/ImmutableEnchantmentData.java
+5 −5 src/main/java/org/spongepowered/api/data/manipulator/immutable/item/ImmutableStoredEnchantmentData.java
+8 −7 src/main/java/org/spongepowered/api/data/manipulator/mutable/item/EnchantmentData.java
+6 −6 src/main/java/org/spongepowered/api/data/manipulator/mutable/item/StoredEnchantmentData.java
+0 −121 src/main/java/org/spongepowered/api/data/meta/ItemEnchantment.java
+2 −2 src/main/java/org/spongepowered/api/event/cause/entity/damage/DamageModifier.java
+10 −10 src/main/java/org/spongepowered/api/event/cause/entity/damage/DamageModifierTypes.java
+5 −5 src/main/java/org/spongepowered/api/event/cause/entity/health/HealthModifierTypes.java
+0 −100 src/main/java/org/spongepowered/api/item/Enchantments.java
+48 −0 src/main/java/org/spongepowered/api/item/ItemTypes.java
+125 −0 src/main/java/org/spongepowered/api/item/enchantment/Enchantment.java
+37 −36 src/main/java/org/spongepowered/api/item/enchantment/EnchantmentType.java
+260 −0 src/main/java/org/spongepowered/api/item/enchantment/EnchantmentTypes.java
+26 −0 src/main/java/org/spongepowered/api/item/enchantment/package-info.java
+38 −38 src/main/java/org/spongepowered/api/item/inventory/ItemStackBuilderPopulators.java
+3 −3 src/main/java/org/spongepowered/api/util/TypeTokens.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
import org.spongepowered.api.data.manipulator.mutable.entity.*;
import org.spongepowered.api.data.manipulator.mutable.item.*;
import org.spongepowered.api.data.manipulator.mutable.tileentity.*;
import org.spongepowered.api.data.meta.ItemEnchantment;
import org.spongepowered.api.item.enchantment.Enchantment;
import org.spongepowered.api.data.meta.PatternLayer;
import org.spongepowered.api.data.property.PropertyRegistry;
import org.spongepowered.api.data.property.block.*;
Expand Down Expand Up @@ -69,11 +69,12 @@
import org.spongepowered.common.data.builder.block.state.SpongeBlockStateMetaContentUpdater;
import org.spongepowered.common.data.builder.block.tileentity.*;
import org.spongepowered.common.data.builder.item.SpongeFireworkEffectDataBuilder;
import org.spongepowered.common.data.builder.data.meta.*;
import org.spongepowered.common.data.builder.item.*;
import org.spongepowered.common.data.builder.manipulator.InvisibilityDataAddVanishUpdater;
import org.spongepowered.common.data.builder.manipulator.immutable.block.ImmutableSpongeTreeDataBuilder;
import org.spongepowered.common.data.builder.manipulator.immutable.item.ImmutableItemEnchantmentDataBuilder;
import org.spongepowered.common.item.enchantment.SpongeEnchantmentBuilder;
import org.spongepowered.common.data.builder.meta.SpongePatternLayerBuilder;
import org.spongepowered.common.data.builder.util.weighted.BaseAndAdditionBuilder;
import org.spongepowered.common.data.builder.util.weighted.BaseAndVarianceBuilder;
import org.spongepowered.common.data.builder.util.weighted.FixedBuilder;
Expand Down Expand Up @@ -157,7 +158,7 @@ public static void setupSerialization() {
// ItemStack stuff
dataManager.registerBuilder(ItemStack.class, new SpongeItemStackBuilder());
dataManager.registerBuilder(ItemStackSnapshot.class, new SpongeItemStackSnapshotBuilder());
dataManager.registerBuilder(ItemEnchantment.class, new SpongeItemEnchantmentBuilder());
dataManager.registerBuilder(Enchantment.class, new SpongeEnchantmentBuilder());
dataManager.registerBuilderAndImpl(ImmutableEnchantmentData.class, ImmutableSpongeEnchantmentData.class,
new ImmutableItemEnchantmentDataBuilder());
dataManager.registerBuilder(FireworkEffect.class, new SpongeFireworkEffectDataBuilder());
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
import org.spongepowered.api.data.manipulator.ImmutableDataManipulatorBuilder;
import org.spongepowered.api.data.manipulator.immutable.item.ImmutableEnchantmentData;
import org.spongepowered.api.data.manipulator.mutable.item.EnchantmentData;
import org.spongepowered.api.data.meta.ItemEnchantment;
import org.spongepowered.api.item.enchantment.Enchantment;
import org.spongepowered.api.data.persistence.AbstractDataBuilder;
import org.spongepowered.api.data.persistence.InvalidDataException;
import org.spongepowered.common.data.manipulator.immutable.item.ImmutableSpongeEnchantmentData;
Expand All @@ -52,14 +52,14 @@ public ImmutableItemEnchantmentDataBuilder() {

@Override
public ImmutableEnchantmentData createImmutable() {
return new ImmutableSpongeEnchantmentData(ImmutableList.<ItemEnchantment>of());
return new ImmutableSpongeEnchantmentData(ImmutableList.of());
}

@Override
public Optional<ImmutableEnchantmentData> createFrom(DataHolder dataHolder) {
if (dataHolder instanceof ItemStack) {
if (((ItemStack) dataHolder).isItemEnchanted()) {
final List<ItemEnchantment> enchantments = NbtDataUtil.getItemEnchantments((ItemStack) dataHolder);
final List<Enchantment> enchantments = NbtDataUtil.getItemEnchantments((ItemStack) dataHolder);
return Optional.of(new ImmutableSpongeEnchantmentData(enchantments));
}
}
Expand All @@ -79,7 +79,7 @@ public ImmutableItemEnchantmentDataBuilder reset() {
@Override
protected Optional<ImmutableEnchantmentData> buildContent(DataView container) throws InvalidDataException {
checkDataExists(container, Keys.ITEM_ENCHANTMENTS.getQuery());
final List<ItemEnchantment> enchantments = container.getSerializableList(Keys.ITEM_ENCHANTMENTS.getQuery(), ItemEnchantment.class).get();
final List<Enchantment> enchantments = container.getSerializableList(Keys.ITEM_ENCHANTMENTS.getQuery(), Enchantment.class).get();
return Optional.of(new ImmutableSpongeEnchantmentData(enchantments));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package org.spongepowered.common.data.builder.data.meta;
package org.spongepowered.common.data.builder.meta;

import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
@org.spongepowered.api.util.annotation.NonnullByDefault package org.spongepowered.common.data.builder.data.meta;
@org.spongepowered.api.util.annotation.NonnullByDefault package org.spongepowered.common.data.builder.meta;
Original file line number Diff line number Diff line change
Expand Up @@ -28,23 +28,23 @@
import org.spongepowered.api.data.key.Keys;
import org.spongepowered.api.data.manipulator.immutable.item.ImmutableEnchantmentData;
import org.spongepowered.api.data.manipulator.mutable.item.EnchantmentData;
import org.spongepowered.api.data.meta.ItemEnchantment;
import org.spongepowered.api.item.enchantment.Enchantment;
import org.spongepowered.api.data.value.immutable.ImmutableListValue;
import org.spongepowered.common.data.manipulator.immutable.common.AbstractImmutableListData;
import org.spongepowered.common.data.manipulator.mutable.item.SpongeEnchantmentData;

import java.util.List;

public class ImmutableSpongeEnchantmentData extends AbstractImmutableListData<ItemEnchantment, ImmutableEnchantmentData, EnchantmentData>
public class ImmutableSpongeEnchantmentData extends AbstractImmutableListData<Enchantment, ImmutableEnchantmentData, EnchantmentData>
implements ImmutableEnchantmentData {

public ImmutableSpongeEnchantmentData(List<ItemEnchantment> enchantments) {
public ImmutableSpongeEnchantmentData(List<Enchantment> enchantments) {
super(ImmutableEnchantmentData.class, enchantments, Keys.ITEM_ENCHANTMENTS, SpongeEnchantmentData.class);
registerGetters();
}

@Override
public ImmutableListValue<ItemEnchantment> enchantments() {
public ImmutableListValue<Enchantment> enchantments() {
return getValueGetter();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,17 @@
import org.spongepowered.api.data.key.Keys;
import org.spongepowered.api.data.manipulator.immutable.item.ImmutableStoredEnchantmentData;
import org.spongepowered.api.data.manipulator.mutable.item.StoredEnchantmentData;
import org.spongepowered.api.data.meta.ItemEnchantment;
import org.spongepowered.api.item.enchantment.Enchantment;
import org.spongepowered.common.data.manipulator.immutable.common.AbstractImmutableListData;
import org.spongepowered.common.data.manipulator.mutable.item.SpongeStoredEnchantmentData;

import java.util.List;

public class ImmutableSpongeStoredEnchantmentData
extends AbstractImmutableListData<ItemEnchantment, ImmutableStoredEnchantmentData, StoredEnchantmentData>
extends AbstractImmutableListData<Enchantment, ImmutableStoredEnchantmentData, StoredEnchantmentData>
implements ImmutableStoredEnchantmentData {

public ImmutableSpongeStoredEnchantmentData(List<ItemEnchantment> value) {
public ImmutableSpongeStoredEnchantmentData(List<Enchantment> value) {
super(ImmutableStoredEnchantmentData.class, value, Keys.STORED_ENCHANTMENTS, SpongeStoredEnchantmentData.class);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,24 +24,24 @@
*/
package org.spongepowered.common.data.manipulator.mutable.item;

import com.google.common.collect.Lists;
import org.spongepowered.api.data.DataContainer;
import org.spongepowered.api.data.key.Keys;
import org.spongepowered.api.data.manipulator.immutable.item.ImmutableEnchantmentData;
import org.spongepowered.api.data.manipulator.mutable.item.EnchantmentData;
import org.spongepowered.api.data.meta.ItemEnchantment;
import org.spongepowered.api.item.enchantment.Enchantment;
import org.spongepowered.common.data.manipulator.immutable.item.ImmutableSpongeEnchantmentData;
import org.spongepowered.common.data.manipulator.mutable.common.AbstractListData;

import java.util.ArrayList;
import java.util.List;

public class SpongeEnchantmentData extends AbstractListData<ItemEnchantment, EnchantmentData, ImmutableEnchantmentData> implements EnchantmentData {
public class SpongeEnchantmentData extends AbstractListData<Enchantment, EnchantmentData, ImmutableEnchantmentData> implements EnchantmentData {

public SpongeEnchantmentData() {
this(Lists.<ItemEnchantment>newArrayList());
this(new ArrayList<>());
}

public SpongeEnchantmentData(List<ItemEnchantment> enchantments) {
public SpongeEnchantmentData(List<Enchantment> enchantments) {
super(EnchantmentData.class, enchantments, Keys.ITEM_ENCHANTMENTS, ImmutableSpongeEnchantmentData.class);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,26 +24,26 @@
*/
package org.spongepowered.common.data.manipulator.mutable.item;

import com.google.common.collect.Lists;
import org.spongepowered.api.data.DataContainer;
import org.spongepowered.api.data.key.Keys;
import org.spongepowered.api.data.manipulator.immutable.item.ImmutableStoredEnchantmentData;
import org.spongepowered.api.data.manipulator.mutable.item.StoredEnchantmentData;
import org.spongepowered.api.data.meta.ItemEnchantment;
import org.spongepowered.api.item.enchantment.Enchantment;
import org.spongepowered.common.data.manipulator.immutable.item.ImmutableSpongeStoredEnchantmentData;
import org.spongepowered.common.data.manipulator.mutable.common.AbstractListData;

import java.util.ArrayList;
import java.util.List;

public class SpongeStoredEnchantmentData extends AbstractListData<ItemEnchantment, StoredEnchantmentData, ImmutableStoredEnchantmentData>
public class SpongeStoredEnchantmentData extends AbstractListData<Enchantment, StoredEnchantmentData, ImmutableStoredEnchantmentData>
implements StoredEnchantmentData {

public SpongeStoredEnchantmentData(List<ItemEnchantment> value) {
public SpongeStoredEnchantmentData(List<Enchantment> value) {
super(StoredEnchantmentData.class, value, Keys.STORED_ENCHANTMENTS, ImmutableSpongeStoredEnchantmentData.class);
}

public SpongeStoredEnchantmentData() {
this(Lists.newArrayList());
this(new ArrayList<>());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
import org.spongepowered.api.data.key.Keys;
import org.spongepowered.api.data.manipulator.immutable.item.ImmutableEnchantmentData;
import org.spongepowered.api.data.manipulator.mutable.item.EnchantmentData;
import org.spongepowered.api.data.meta.ItemEnchantment;
import org.spongepowered.api.item.enchantment.Enchantment;
import org.spongepowered.api.data.value.ValueContainer;
import org.spongepowered.api.data.value.immutable.ImmutableValue;
import org.spongepowered.api.data.value.mutable.ListValue;
Expand All @@ -47,7 +47,7 @@
import java.util.Optional;

public class ItemEnchantmentDataProcessor
extends AbstractItemSingleDataProcessor<List<ItemEnchantment>, ListValue<ItemEnchantment>, EnchantmentData, ImmutableEnchantmentData> {
extends AbstractItemSingleDataProcessor<List<Enchantment>, ListValue<Enchantment>, EnchantmentData, ImmutableEnchantmentData> {

public ItemEnchantmentDataProcessor() {
super(input -> true, Keys.ITEM_ENCHANTMENTS);
Expand All @@ -59,34 +59,34 @@ protected EnchantmentData createManipulator() {
}

@Override
protected boolean set(ItemStack itemStack, List<ItemEnchantment> value) {
protected boolean set(ItemStack itemStack, List<Enchantment> value) {
NbtDataUtil.setItemEnchantments(itemStack, value);
return true;
}

@Override
protected Optional<List<ItemEnchantment>> getVal(ItemStack itemStack) {
protected Optional<List<Enchantment>> getVal(ItemStack itemStack) {
if (itemStack.isItemEnchanted()) {
return Optional.of(NbtDataUtil.getItemEnchantments(itemStack));
}
return Optional.empty();
}

@Override
protected ListValue<ItemEnchantment> constructValue(List<ItemEnchantment> actualValue) {
protected ListValue<Enchantment> constructValue(List<Enchantment> actualValue) {
return new SpongeListValue<>(Keys.ITEM_ENCHANTMENTS, actualValue);
}

@Override
protected ImmutableValue<List<ItemEnchantment>> constructImmutableValue(List<ItemEnchantment> value) {
protected ImmutableValue<List<Enchantment>> constructImmutableValue(List<Enchantment> value) {
return new ImmutableSpongeListValue<>(Keys.ITEM_ENCHANTMENTS, ImmutableList.copyOf(value));
}

@Override
public Optional<EnchantmentData> fill(DataContainer container, EnchantmentData enchantmentData) {
checkDataExists(container, Keys.ITEM_ENCHANTMENTS.getQuery());
final List<ItemEnchantment> enchantments = container.getSerializableList(Keys.ITEM_ENCHANTMENTS.getQuery(), ItemEnchantment.class).get();
final ListValue<ItemEnchantment> existing = enchantmentData.enchantments();
final List<Enchantment> enchantments = container.getSerializableList(Keys.ITEM_ENCHANTMENTS.getQuery(), Enchantment.class).get();
final ListValue<Enchantment> existing = enchantmentData.enchantments();
existing.addAll(enchantments);
enchantmentData.set(existing);
return Optional.of(enchantmentData);
Expand All @@ -96,7 +96,7 @@ public Optional<EnchantmentData> fill(DataContainer container, EnchantmentData e
public DataTransactionResult removeFrom(ValueContainer<?> container) {
if (container instanceof ItemStack) {
ItemStack stack = (ItemStack) container;
Optional<List<ItemEnchantment>> old = getVal(stack);
Optional<List<Enchantment>> old = getVal(stack);
if (!old.isPresent()) {
return DataTransactionResult.successNoData();
}
Expand Down

0 comments on commit f085786

Please sign in to comment.