Make IForgeIntrinsicHolderTagAppender methods properly chainable (#9331)

This commit is contained in:
Dennis C authored and GitHub committed 2023-02-06 14:03:51 -08:00
1 parent 914b2fe984
commit 4cddc62be7
4 files changed
+138 -4

No files matched your search

@@ -6,8 +6,9 @@
package net.minecraftforge.common.extensions;
import net.minecraft.data.tags.IntrinsicHolderTagsProvider;
import net.minecraft.data.tags.TagsProvider;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagKey;
public interface IForgeIntrinsicHolderTagAppender<T> extends IForgeTagAppender<T>
{
@@ -23,7 +24,7 @@ public interface IForgeIntrinsicHolderTagAppender<T> extends IForgeTagAppender<T
* @param entry The entry to remove
* @return The builder for chaining
*/
default TagsProvider.TagAppender<T> remove(final T entry)
default IntrinsicHolderTagsProvider.IntrinsicTagAppender<T> remove(final T entry)
{
return remove(this.getKey(entry));
}
@@ -35,7 +36,7 @@ public interface IForgeIntrinsicHolderTagAppender<T> extends IForgeTagAppender<T
* @return The builder for chaining
*/
@SuppressWarnings("unchecked")
default TagsProvider.TagAppender<T> remove(final T first, final T...entries)
default IntrinsicHolderTagsProvider.IntrinsicTagAppender<T> remove(final T first, final T...entries)
{
this.remove(first);
for (T entry : entries)
@@ -44,4 +45,70 @@ public interface IForgeIntrinsicHolderTagAppender<T> extends IForgeTagAppender<T
}
return self();
}
@Override
@SuppressWarnings("unchecked")
default IntrinsicHolderTagsProvider.IntrinsicTagAppender<T> addTags(TagKey<T>... values)
{
IForgeTagAppender.super.addTags(values);
return self();
}
@Override
default IntrinsicHolderTagsProvider.IntrinsicTagAppender<T> replace()
{
IForgeTagAppender.super.replace();
return self();
}
@Override
default IntrinsicHolderTagsProvider.IntrinsicTagAppender<T> replace(boolean value)
{
IForgeTagAppender.super.replace(value);
return self();
}
@Override
default IntrinsicHolderTagsProvider.IntrinsicTagAppender<T> remove(final ResourceLocation location)
{
IForgeTagAppender.super.remove(location);
return self();
}
@Override
default IntrinsicHolderTagsProvider.IntrinsicTagAppender<T> remove(final ResourceLocation first, final ResourceLocation... locations)
{
IForgeTagAppender.super.remove(first, locations);
return self();
}
@Override
default IntrinsicHolderTagsProvider.IntrinsicTagAppender<T> remove(final ResourceKey<T> resourceKey)
{
IForgeTagAppender.super.remove(resourceKey);
return self();
}
@Override
@SuppressWarnings("unchecked")
default IntrinsicHolderTagsProvider.IntrinsicTagAppender<T> remove(final ResourceKey<T> firstResourceKey, final ResourceKey<T>... resourceKeys)
{
IForgeTagAppender.super.remove(firstResourceKey, resourceKeys);
return self();
}
@Override
default IntrinsicHolderTagsProvider.IntrinsicTagAppender<T> remove(TagKey<T> tag)
{
IForgeTagAppender.super.remove(tag);
return self();
}
@Override
@SuppressWarnings("unchecked")
default IntrinsicHolderTagsProvider.IntrinsicTagAppender<T> remove(TagKey<T> first, TagKey<T>...tags)
{
IForgeTagAppender.super.remove(first, tags);
return self();
}
}
@@ -79,6 +79,7 @@ public interface IForgeTagAppender<T>
* @param resourceKeys The resource keys of the elements to remove
* @return The appender for chaining
*/
@SuppressWarnings("unchecked")
default TagsProvider.TagAppender<T> remove(final ResourceKey<T> firstResourceKey, final ResourceKey<T>... resourceKeys)
{
this.remove(firstResourceKey.location());