#1524: Improve InventoryViewBuilder chaining

This commit is contained in:
Miles Holder 2024-12-18 20:03:29 +11:00 committed by md_5
parent 643b231025
commit e28af087d5
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11
3 changed files with 17 additions and 5 deletions

View File

@ -9,7 +9,6 @@ import org.bukkit.craftbukkit.util.CraftChatMessage;
import org.bukkit.entity.HumanEntity; import org.bukkit.entity.HumanEntity;
import org.bukkit.inventory.InventoryView; import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.view.builder.InventoryViewBuilder; import org.bukkit.inventory.view.builder.InventoryViewBuilder;
import org.jetbrains.annotations.NotNull;
public abstract class CraftAbstractInventoryViewBuilder<V extends InventoryView> implements InventoryViewBuilder<V> { public abstract class CraftAbstractInventoryViewBuilder<V extends InventoryView> implements InventoryViewBuilder<V> {
@ -22,9 +21,8 @@ public abstract class CraftAbstractInventoryViewBuilder<V extends InventoryView>
this.handle = handle; this.handle = handle;
} }
@NotNull
@Override @Override
public InventoryViewBuilder<V> title(@NotNull final String title) { public InventoryViewBuilder<V> title(final String title) {
this.title = title; this.title = title;
return this; return this;
} }

View File

@ -9,6 +9,7 @@ import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.craftbukkit.util.CraftLocation; import org.bukkit.craftbukkit.util.CraftLocation;
import org.bukkit.inventory.InventoryView; import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.view.builder.LocationInventoryViewBuilder; import org.bukkit.inventory.view.builder.LocationInventoryViewBuilder;
import org.jetbrains.annotations.NotNull;
public abstract class CraftAbstractLocationInventoryViewBuilder<V extends InventoryView> extends CraftAbstractInventoryViewBuilder<V> implements LocationInventoryViewBuilder<V> { public abstract class CraftAbstractLocationInventoryViewBuilder<V extends InventoryView> extends CraftAbstractInventoryViewBuilder<V> implements LocationInventoryViewBuilder<V> {
@ -19,6 +20,16 @@ public abstract class CraftAbstractLocationInventoryViewBuilder<V extends Invent
super(handle); super(handle);
} }
@Override
public LocationInventoryViewBuilder<V> title(@NotNull final String title) {
return (LocationInventoryViewBuilder<V>) super.title(title);
}
@Override
public LocationInventoryViewBuilder<V> copy() {
throw new UnsupportedOperationException("copy is not implemented on CraftAbstractLocationInventoryViewBuilder");
}
@Override @Override
public LocationInventoryViewBuilder<V> checkReachable(final boolean checkReachable) { public LocationInventoryViewBuilder<V> checkReachable(final boolean checkReachable) {
super.checkReachable = checkReachable; super.checkReachable = checkReachable;

View File

@ -14,7 +14,6 @@ import org.bukkit.entity.HumanEntity;
import org.bukkit.inventory.InventoryView; import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.Merchant; import org.bukkit.inventory.Merchant;
import org.bukkit.inventory.view.builder.MerchantInventoryViewBuilder; import org.bukkit.inventory.view.builder.MerchantInventoryViewBuilder;
import org.jetbrains.annotations.NotNull;
public class CraftMerchantInventoryViewBuilder<V extends InventoryView> extends CraftAbstractInventoryViewBuilder<V> implements MerchantInventoryViewBuilder<V> { public class CraftMerchantInventoryViewBuilder<V extends InventoryView> extends CraftAbstractInventoryViewBuilder<V> implements MerchantInventoryViewBuilder<V> {
@ -24,13 +23,17 @@ public class CraftMerchantInventoryViewBuilder<V extends InventoryView> extends
super(handle); super(handle);
} }
@Override
public MerchantInventoryViewBuilder<V> title(final String title) {
return (MerchantInventoryViewBuilder<V>) super.title(title);
}
@Override @Override
public MerchantInventoryViewBuilder<V> merchant(final Merchant merchant) { public MerchantInventoryViewBuilder<V> merchant(final Merchant merchant) {
this.merchant = ((CraftMerchant) merchant).getMerchant(); this.merchant = ((CraftMerchant) merchant).getMerchant();
return this; return this;
} }
@NotNull
@Override @Override
public MerchantInventoryViewBuilder<V> checkReachable(final boolean checkReachable) { public MerchantInventoryViewBuilder<V> checkReachable(final boolean checkReachable) {
super.checkReachable = checkReachable; super.checkReachable = checkReachable;