mirror of
https://github.com/Minestom/Minestom.git
synced 2024-10-01 16:07:51 +02:00
Added ItemMetaBuilder.Provider
This commit is contained in:
parent
cf0450f21f
commit
a70870d261
@ -62,7 +62,7 @@ public class Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Contract(value = "_, _ -> new", pure = true)
|
@Contract(value = "_, _ -> new", pure = true)
|
||||||
public <T extends ItemMetaBuilder> @NotNull Item withMeta(Class<T> metaType, Consumer<T> metaConsumer) {
|
public <T extends ItemMetaBuilder, U extends ItemMetaBuilder.Provider<T>> @NotNull Item withMeta(Class<U> metaType, Consumer<T> metaConsumer) {
|
||||||
return builder().meta(metaType, metaConsumer).build();
|
return builder().meta(metaType, metaConsumer).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ public class ItemBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Contract(value = "_, _ -> this")
|
@Contract(value = "_, _ -> this")
|
||||||
public <T extends ItemMetaBuilder> @NotNull ItemBuilder meta(Class<T> metaType, Consumer<T> itemMetaConsumer) {
|
public <T extends ItemMetaBuilder, U extends ItemMetaBuilder.Provider<T>> @NotNull ItemBuilder meta(Class<U> metaType, Consumer<T> itemMetaConsumer) {
|
||||||
itemMetaConsumer.accept((T) metaBuilder);
|
itemMetaConsumer.accept((T) metaBuilder);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -64,4 +64,7 @@ public abstract class ItemMetaBuilder implements Cloneable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface Provider<T> {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class CompassMeta extends ItemMeta {
|
public class CompassMeta extends ItemMeta implements ItemMetaBuilder.Provider<CompassMeta.Builder> {
|
||||||
|
|
||||||
private final boolean lodestoneTracked;
|
private final boolean lodestoneTracked;
|
||||||
private final String lodestoneDimension;
|
private final String lodestoneDimension;
|
||||||
|
@ -76,7 +76,7 @@ public class PlayerInit {
|
|||||||
Item item = Item.builder(Material.COMPASS)
|
Item item = Item.builder(Material.COMPASS)
|
||||||
.amount(5)
|
.amount(5)
|
||||||
.meta(compassMeta)
|
.meta(compassMeta)
|
||||||
.meta(CompassMeta.Builder.class, builder -> {
|
.meta(CompassMeta.class, builder -> {
|
||||||
builder.lodestonePosition(new Position(0, 0, 0));
|
builder.lodestonePosition(new Position(0, 0, 0));
|
||||||
})
|
})
|
||||||
.displayName(Component.text("displayName"))
|
.displayName(Component.text("displayName"))
|
||||||
@ -84,7 +84,7 @@ public class PlayerInit {
|
|||||||
|
|
||||||
item = item.with(itemBuilder -> itemBuilder
|
item = item.with(itemBuilder -> itemBuilder
|
||||||
.amount(10)
|
.amount(10)
|
||||||
.meta(CompassMeta.Builder.class, builder -> {
|
.meta(CompassMeta.class, builder -> {
|
||||||
builder.lodestonePosition(new Position(5, 0, 0));
|
builder.lodestonePosition(new Position(5, 0, 0));
|
||||||
})
|
})
|
||||||
.lore(Component.text("Lore")));
|
.lore(Component.text("Lore")));
|
||||||
|
Loading…
Reference in New Issue
Block a user