mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-30 16:19:03 +01:00
Update to Minecraft 1.20.5
By: md_5 <git@md-5.net>
This commit is contained in:
parent
899f2acb84
commit
f3502f6dac
54 changed files with 1814 additions and 741 deletions
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
<groupId>org.bukkit</groupId>
|
<groupId>org.bukkit</groupId>
|
||||||
<artifactId>bukkit</artifactId>
|
<artifactId>bukkit</artifactId>
|
||||||
<version>1.20.4-R0.1-SNAPSHOT</version>
|
<version>1.20.5-R0.1-SNAPSHOT</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>Bukkit</name>
|
<name>Bukkit</name>
|
||||||
|
@ -14,8 +14,7 @@
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<skipTests>true</skipTests>
|
<skipTests>true</skipTests>
|
||||||
<maven.compiler.source>17</maven.compiler.source>
|
<maven.compiler.release>17</maven.compiler.release>
|
||||||
<maven.compiler.target>17</maven.compiler.target>
|
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
@ -129,7 +128,7 @@
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<version>3.11.0</version>
|
<version>3.13.0</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<!-- we use the Eclipse compiler as it doesn't need a JDK -->
|
<!-- we use the Eclipse compiler as it doesn't need a JDK -->
|
||||||
<compilerId>eclipse</compilerId>
|
<compilerId>eclipse</compilerId>
|
||||||
|
@ -140,7 +139,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.codehaus.plexus</groupId>
|
<groupId>org.codehaus.plexus</groupId>
|
||||||
<artifactId>plexus-compiler-eclipse</artifactId>
|
<artifactId>plexus-compiler-eclipse</artifactId>
|
||||||
<version>2.13.0</version>
|
<version>2.15.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
|
@ -1167,6 +1167,16 @@ public final class Bukkit {
|
||||||
return server.isEnforcingSecureProfiles();
|
return server.isEnforcingSecureProfiles();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets whether this server is allowing connections transferred from other
|
||||||
|
* servers.
|
||||||
|
*
|
||||||
|
* @return true if the server accepts transfers, false otherwise
|
||||||
|
*/
|
||||||
|
public static boolean isAcceptingTransfers() {
|
||||||
|
return server.isAcceptingTransfers();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets whether the Server hide online players in server status.
|
* Gets whether the Server hide online players in server status.
|
||||||
*
|
*
|
||||||
|
|
|
@ -3,7 +3,6 @@ package org.bukkit;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.potion.Potion;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
@ -137,7 +136,7 @@ public enum Effect {
|
||||||
* Visual effect of a splash potion breaking. Needs potion data value as
|
* Visual effect of a splash potion breaking. Needs potion data value as
|
||||||
* additional info.
|
* additional info.
|
||||||
*/
|
*/
|
||||||
POTION_BREAK(2002, Type.VISUAL, Potion.class),
|
POTION_BREAK(2002, Type.VISUAL, Color.class),
|
||||||
/**
|
/**
|
||||||
* Visual effect of an instant splash potion breaking. Needs color data
|
* Visual effect of an instant splash potion breaking. Needs color data
|
||||||
* value as additional info.
|
* value as additional info.
|
||||||
|
|
|
@ -278,6 +278,11 @@ public final class GameRule<T> {
|
||||||
*/
|
*/
|
||||||
public static final GameRule<Integer> PLAYERS_NETHER_PORTAL_CREATIVE_DELAY = new GameRule<>("playersNetherPortalCreativeDelay", Integer.class);
|
public static final GameRule<Integer> PLAYERS_NETHER_PORTAL_CREATIVE_DELAY = new GameRule<>("playersNetherPortalCreativeDelay", Integer.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The number of chunks around spawn which will be kept loaded at all times.
|
||||||
|
*/
|
||||||
|
public static final GameRule<Integer> SPAWN_CHUNK_RADIUS = new GameRule<>("spawnChunkRadius", Integer.class);
|
||||||
|
|
||||||
// All GameRules instantiated above this for organizational purposes
|
// All GameRules instantiated above this for organizational purposes
|
||||||
private final String name;
|
private final String name;
|
||||||
private final Class<T> type;
|
private final Class<T> type;
|
||||||
|
|
|
@ -109,6 +109,7 @@ import org.bukkit.block.data.type.TrialSpawner;
|
||||||
import org.bukkit.block.data.type.Tripwire;
|
import org.bukkit.block.data.type.Tripwire;
|
||||||
import org.bukkit.block.data.type.TripwireHook;
|
import org.bukkit.block.data.type.TripwireHook;
|
||||||
import org.bukkit.block.data.type.TurtleEgg;
|
import org.bukkit.block.data.type.TurtleEgg;
|
||||||
|
import org.bukkit.block.data.type.Vault;
|
||||||
import org.bukkit.block.data.type.Wall;
|
import org.bukkit.block.data.type.Wall;
|
||||||
import org.bukkit.block.data.type.WallHangingSign;
|
import org.bukkit.block.data.type.WallHangingSign;
|
||||||
import org.bukkit.block.data.type.WallSign;
|
import org.bukkit.block.data.type.WallSign;
|
||||||
|
@ -293,6 +294,11 @@ public enum Material implements Keyed, Translatable {
|
||||||
RAW_IRON_BLOCK(32210),
|
RAW_IRON_BLOCK(32210),
|
||||||
RAW_COPPER_BLOCK(17504),
|
RAW_COPPER_BLOCK(17504),
|
||||||
RAW_GOLD_BLOCK(23246),
|
RAW_GOLD_BLOCK(23246),
|
||||||
|
/**
|
||||||
|
* BlockData: {@link Waterlogged}
|
||||||
|
*/
|
||||||
|
@MinecraftExperimental
|
||||||
|
HEAVY_CORE(15788, Waterlogged.class),
|
||||||
AMETHYST_BLOCK(18919),
|
AMETHYST_BLOCK(18919),
|
||||||
BUDDING_AMETHYST(13963),
|
BUDDING_AMETHYST(13963),
|
||||||
IRON_BLOCK(24754),
|
IRON_BLOCK(24754),
|
||||||
|
@ -620,7 +626,7 @@ public enum Material implements Keyed, Translatable {
|
||||||
CHISELED_SANDSTONE(31763),
|
CHISELED_SANDSTONE(31763),
|
||||||
CUT_SANDSTONE(6118),
|
CUT_SANDSTONE(6118),
|
||||||
COBWEB(9469),
|
COBWEB(9469),
|
||||||
SHORT_GRASS(6155),
|
SHORT_GRASS(16335),
|
||||||
FERN(15794),
|
FERN(15794),
|
||||||
AZALEA(29386),
|
AZALEA(29386),
|
||||||
FLOWERING_AZALEA(28270),
|
FLOWERING_AZALEA(28270),
|
||||||
|
@ -2319,7 +2325,9 @@ public enum Material implements Keyed, Translatable {
|
||||||
*/
|
*/
|
||||||
JIGSAW(17398, Jigsaw.class),
|
JIGSAW(17398, Jigsaw.class),
|
||||||
TURTLE_HELMET(30120, 1, 275),
|
TURTLE_HELMET(30120, 1, 275),
|
||||||
SCUTE(11914),
|
TURTLE_SCUTE(6766),
|
||||||
|
ARMADILLO_SCUTE(11497),
|
||||||
|
WOLF_ARMOR(17138, 1, 64),
|
||||||
FLINT_AND_STEEL(28620, 1, 64),
|
FLINT_AND_STEEL(28620, 1, 64),
|
||||||
APPLE(7720),
|
APPLE(7720),
|
||||||
BOW(8745, 1, 384),
|
BOW(8745, 1, 384),
|
||||||
|
@ -2660,12 +2668,15 @@ public enum Material implements Keyed, Translatable {
|
||||||
CAULDRON(26531),
|
CAULDRON(26531),
|
||||||
ENDER_EYE(24860),
|
ENDER_EYE(24860),
|
||||||
GLISTERING_MELON_SLICE(20158),
|
GLISTERING_MELON_SLICE(20158),
|
||||||
|
ARMADILLO_SPAWN_EGG(22098),
|
||||||
ALLAY_SPAWN_EGG(7909),
|
ALLAY_SPAWN_EGG(7909),
|
||||||
AXOLOTL_SPAWN_EGG(30381),
|
AXOLOTL_SPAWN_EGG(30381),
|
||||||
BAT_SPAWN_EGG(14607),
|
BAT_SPAWN_EGG(14607),
|
||||||
BEE_SPAWN_EGG(22924),
|
BEE_SPAWN_EGG(22924),
|
||||||
BLAZE_SPAWN_EGG(4759),
|
BLAZE_SPAWN_EGG(4759),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
|
BOGGED_SPAWN_EGG(12042),
|
||||||
|
@MinecraftExperimental
|
||||||
BREEZE_SPAWN_EGG(7580),
|
BREEZE_SPAWN_EGG(7580),
|
||||||
CAT_SPAWN_EGG(29583),
|
CAT_SPAWN_EGG(29583),
|
||||||
CAMEL_SPAWN_EGG(14760),
|
CAMEL_SPAWN_EGG(14760),
|
||||||
|
@ -2741,8 +2752,12 @@ public enum Material implements Keyed, Translatable {
|
||||||
ZOMBIFIED_PIGLIN_SPAWN_EGG(6626),
|
ZOMBIFIED_PIGLIN_SPAWN_EGG(6626),
|
||||||
EXPERIENCE_BOTTLE(12858),
|
EXPERIENCE_BOTTLE(12858),
|
||||||
FIRE_CHARGE(4842),
|
FIRE_CHARGE(4842),
|
||||||
|
@MinecraftExperimental
|
||||||
|
WIND_CHARGE(23928),
|
||||||
WRITABLE_BOOK(13393, 1),
|
WRITABLE_BOOK(13393, 1),
|
||||||
WRITTEN_BOOK(24164, 16),
|
WRITTEN_BOOK(24164, 16),
|
||||||
|
@MinecraftExperimental
|
||||||
|
MACE(4771, 1, 250),
|
||||||
ITEM_FRAME(27318),
|
ITEM_FRAME(27318),
|
||||||
GLOW_ITEM_FRAME(26473),
|
GLOW_ITEM_FRAME(26473),
|
||||||
FLOWER_POT(30567),
|
FLOWER_POT(30567),
|
||||||
|
@ -2919,6 +2934,8 @@ public enum Material implements Keyed, Translatable {
|
||||||
MOJANG_BANNER_PATTERN(11903, 1),
|
MOJANG_BANNER_PATTERN(11903, 1),
|
||||||
GLOBE_BANNER_PATTERN(27753, 1),
|
GLOBE_BANNER_PATTERN(27753, 1),
|
||||||
PIGLIN_BANNER_PATTERN(22028, 1),
|
PIGLIN_BANNER_PATTERN(22028, 1),
|
||||||
|
FLOW_BANNER_PATTERN(32683, 1),
|
||||||
|
GUSTER_BANNER_PATTERN(27267, 1),
|
||||||
GOAT_HORN(28237, 1),
|
GOAT_HORN(28237, 1),
|
||||||
/**
|
/**
|
||||||
* BlockData: {@link Levelled}
|
* BlockData: {@link Levelled}
|
||||||
|
@ -3137,6 +3154,10 @@ public enum Material implements Keyed, Translatable {
|
||||||
SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE(7070),
|
SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE(7070),
|
||||||
RAISER_ARMOR_TRIM_SMITHING_TEMPLATE(29116),
|
RAISER_ARMOR_TRIM_SMITHING_TEMPLATE(29116),
|
||||||
HOST_ARMOR_TRIM_SMITHING_TEMPLATE(12165),
|
HOST_ARMOR_TRIM_SMITHING_TEMPLATE(12165),
|
||||||
|
@MinecraftExperimental
|
||||||
|
FLOW_ARMOR_TRIM_SMITHING_TEMPLATE(29175),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BOLT_ARMOR_TRIM_SMITHING_TEMPLATE(9698),
|
||||||
ANGLER_POTTERY_SHERD(9952),
|
ANGLER_POTTERY_SHERD(9952),
|
||||||
ARCHER_POTTERY_SHERD(21629),
|
ARCHER_POTTERY_SHERD(21629),
|
||||||
ARMS_UP_POTTERY_SHERD(5484),
|
ARMS_UP_POTTERY_SHERD(5484),
|
||||||
|
@ -3145,7 +3166,11 @@ public enum Material implements Keyed, Translatable {
|
||||||
BURN_POTTERY_SHERD(21259),
|
BURN_POTTERY_SHERD(21259),
|
||||||
DANGER_POTTERY_SHERD(30506),
|
DANGER_POTTERY_SHERD(30506),
|
||||||
EXPLORER_POTTERY_SHERD(5124),
|
EXPLORER_POTTERY_SHERD(5124),
|
||||||
|
@MinecraftExperimental
|
||||||
|
FLOW_POTTERY_SHERD(4896),
|
||||||
FRIEND_POTTERY_SHERD(18221),
|
FRIEND_POTTERY_SHERD(18221),
|
||||||
|
@MinecraftExperimental
|
||||||
|
GUSTER_POTTERY_SHERD(28193),
|
||||||
HEART_POTTERY_SHERD(17607),
|
HEART_POTTERY_SHERD(17607),
|
||||||
HEARTBREAK_POTTERY_SHERD(21108),
|
HEARTBREAK_POTTERY_SHERD(21108),
|
||||||
HOWL_POTTERY_SHERD(24900),
|
HOWL_POTTERY_SHERD(24900),
|
||||||
|
@ -3153,6 +3178,8 @@ public enum Material implements Keyed, Translatable {
|
||||||
MOURNER_POTTERY_SHERD(23993),
|
MOURNER_POTTERY_SHERD(23993),
|
||||||
PLENTY_POTTERY_SHERD(28236),
|
PLENTY_POTTERY_SHERD(28236),
|
||||||
PRIZE_POTTERY_SHERD(4341),
|
PRIZE_POTTERY_SHERD(4341),
|
||||||
|
@MinecraftExperimental
|
||||||
|
SCRAPE_POTTERY_SHERD(30034),
|
||||||
SHEAF_POTTERY_SHERD(23652),
|
SHEAF_POTTERY_SHERD(23652),
|
||||||
SHELTER_POTTERY_SHERD(28390),
|
SHELTER_POTTERY_SHERD(28390),
|
||||||
SKULL_POTTERY_SHERD(16980),
|
SKULL_POTTERY_SHERD(16980),
|
||||||
|
@ -3244,6 +3271,17 @@ public enum Material implements Keyed, Translatable {
|
||||||
TRIAL_SPAWNER(19902, TrialSpawner.class),
|
TRIAL_SPAWNER(19902, TrialSpawner.class),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
TRIAL_KEY(12725),
|
TRIAL_KEY(12725),
|
||||||
|
@MinecraftExperimental
|
||||||
|
OMINOUS_TRIAL_KEY(4986),
|
||||||
|
/**
|
||||||
|
* BlockData: {@link Vault}
|
||||||
|
*/
|
||||||
|
@MinecraftExperimental
|
||||||
|
VAULT(6288, Vault.class),
|
||||||
|
@MinecraftExperimental
|
||||||
|
OMINOUS_BOTTLE(26321),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BREEZE_ROD(14281),
|
||||||
/**
|
/**
|
||||||
* BlockData: {@link Levelled}
|
* BlockData: {@link Levelled}
|
||||||
*/
|
*/
|
||||||
|
@ -5243,6 +5281,7 @@ public enum Material implements Keyed, Translatable {
|
||||||
case GRINDSTONE:
|
case GRINDSTONE:
|
||||||
case HANGING_ROOTS:
|
case HANGING_ROOTS:
|
||||||
case HAY_BLOCK:
|
case HAY_BLOCK:
|
||||||
|
case HEAVY_CORE:
|
||||||
case HEAVY_WEIGHTED_PRESSURE_PLATE:
|
case HEAVY_WEIGHTED_PRESSURE_PLATE:
|
||||||
case HONEYCOMB_BLOCK:
|
case HONEYCOMB_BLOCK:
|
||||||
case HONEY_BLOCK:
|
case HONEY_BLOCK:
|
||||||
|
@ -5765,6 +5804,7 @@ public enum Material implements Keyed, Translatable {
|
||||||
case TURTLE_EGG:
|
case TURTLE_EGG:
|
||||||
case TWISTING_VINES:
|
case TWISTING_VINES:
|
||||||
case TWISTING_VINES_PLANT:
|
case TWISTING_VINES_PLANT:
|
||||||
|
case VAULT:
|
||||||
case VERDANT_FROGLIGHT:
|
case VERDANT_FROGLIGHT:
|
||||||
case VINE:
|
case VINE:
|
||||||
case VOID_AIR:
|
case VOID_AIR:
|
||||||
|
@ -5915,6 +5955,7 @@ public enum Material implements Keyed, Translatable {
|
||||||
case MELON_SLICE:
|
case MELON_SLICE:
|
||||||
case MUSHROOM_STEW:
|
case MUSHROOM_STEW:
|
||||||
case MUTTON:
|
case MUTTON:
|
||||||
|
case OMINOUS_BOTTLE:
|
||||||
case POISONOUS_POTATO:
|
case POISONOUS_POTATO:
|
||||||
case PORKCHOP:
|
case PORKCHOP:
|
||||||
case POTATO:
|
case POTATO:
|
||||||
|
@ -6842,6 +6883,7 @@ public enum Material implements Keyed, Translatable {
|
||||||
case TUFF_STAIRS:
|
case TUFF_STAIRS:
|
||||||
case TUFF_WALL:
|
case TUFF_WALL:
|
||||||
case TURTLE_EGG:
|
case TURTLE_EGG:
|
||||||
|
case VAULT:
|
||||||
case VERDANT_FROGLIGHT:
|
case VERDANT_FROGLIGHT:
|
||||||
case WARPED_DOOR:
|
case WARPED_DOOR:
|
||||||
case WARPED_FENCE:
|
case WARPED_FENCE:
|
||||||
|
@ -8621,6 +8663,7 @@ public enum Material implements Keyed, Translatable {
|
||||||
case TUBE_CORAL_BLOCK:
|
case TUBE_CORAL_BLOCK:
|
||||||
case TUFF:
|
case TUFF:
|
||||||
case TUFF_BRICKS:
|
case TUFF_BRICKS:
|
||||||
|
case VAULT:
|
||||||
case VERDANT_FROGLIGHT:
|
case VERDANT_FROGLIGHT:
|
||||||
case WARPED_HYPHAE:
|
case WARPED_HYPHAE:
|
||||||
case WARPED_NYLIUM:
|
case WARPED_NYLIUM:
|
||||||
|
@ -9294,6 +9337,7 @@ public enum Material implements Keyed, Translatable {
|
||||||
case SWEET_BERRY_BUSH:
|
case SWEET_BERRY_BUSH:
|
||||||
case TNT:
|
case TNT:
|
||||||
case TRAPPED_CHEST:
|
case TRAPPED_CHEST:
|
||||||
|
case VAULT:
|
||||||
case WARPED_BUTTON:
|
case WARPED_BUTTON:
|
||||||
case WARPED_DOOR:
|
case WARPED_DOOR:
|
||||||
case WARPED_FENCE:
|
case WARPED_FENCE:
|
||||||
|
@ -10255,6 +10299,8 @@ public enum Material implements Keyed, Translatable {
|
||||||
case REDSTONE_BLOCK:
|
case REDSTONE_BLOCK:
|
||||||
case SPAWNER:
|
case SPAWNER:
|
||||||
return 5.0F;
|
return 5.0F;
|
||||||
|
case HEAVY_CORE:
|
||||||
|
return 10.0F;
|
||||||
case ENDER_CHEST:
|
case ENDER_CHEST:
|
||||||
return 22.5F;
|
return 22.5F;
|
||||||
case ANCIENT_DEBRIS:
|
case ANCIENT_DEBRIS:
|
||||||
|
@ -10264,6 +10310,7 @@ public enum Material implements Keyed, Translatable {
|
||||||
case OBSIDIAN:
|
case OBSIDIAN:
|
||||||
case RESPAWN_ANCHOR:
|
case RESPAWN_ANCHOR:
|
||||||
case TRIAL_SPAWNER:
|
case TRIAL_SPAWNER:
|
||||||
|
case VAULT:
|
||||||
return 50.0F;
|
return 50.0F;
|
||||||
case REINFORCED_DEEPSLATE:
|
case REINFORCED_DEEPSLATE:
|
||||||
return 55.0F;
|
return 55.0F;
|
||||||
|
@ -11188,6 +11235,7 @@ public enum Material implements Keyed, Translatable {
|
||||||
case END_STONE_BRICK_WALL:
|
case END_STONE_BRICK_WALL:
|
||||||
return 9.0F;
|
return 9.0F;
|
||||||
case TRIAL_SPAWNER:
|
case TRIAL_SPAWNER:
|
||||||
|
case VAULT:
|
||||||
return 50.0F;
|
return 50.0F;
|
||||||
case LAVA:
|
case LAVA:
|
||||||
case WATER:
|
case WATER:
|
||||||
|
@ -11200,6 +11248,7 @@ public enum Material implements Keyed, Translatable {
|
||||||
case CRYING_OBSIDIAN:
|
case CRYING_OBSIDIAN:
|
||||||
case DAMAGED_ANVIL:
|
case DAMAGED_ANVIL:
|
||||||
case ENCHANTING_TABLE:
|
case ENCHANTING_TABLE:
|
||||||
|
case HEAVY_CORE:
|
||||||
case NETHERITE_BLOCK:
|
case NETHERITE_BLOCK:
|
||||||
case OBSIDIAN:
|
case OBSIDIAN:
|
||||||
case REINFORCED_DEEPSLATE:
|
case REINFORCED_DEEPSLATE:
|
||||||
|
@ -11332,6 +11381,28 @@ public enum Material implements Keyed, Translatable {
|
||||||
return EquipmentSlot.FEET;
|
return EquipmentSlot.FEET;
|
||||||
case SHIELD:
|
case SHIELD:
|
||||||
return EquipmentSlot.OFF_HAND;
|
return EquipmentSlot.OFF_HAND;
|
||||||
|
case BLACK_CARPET:
|
||||||
|
case BLUE_CARPET:
|
||||||
|
case BROWN_CARPET:
|
||||||
|
case CYAN_CARPET:
|
||||||
|
case DIAMOND_HORSE_ARMOR:
|
||||||
|
case GOLDEN_HORSE_ARMOR:
|
||||||
|
case GRAY_CARPET:
|
||||||
|
case GREEN_CARPET:
|
||||||
|
case IRON_HORSE_ARMOR:
|
||||||
|
case LEATHER_HORSE_ARMOR:
|
||||||
|
case LIGHT_BLUE_CARPET:
|
||||||
|
case LIGHT_GRAY_CARPET:
|
||||||
|
case LIME_CARPET:
|
||||||
|
case MAGENTA_CARPET:
|
||||||
|
case ORANGE_CARPET:
|
||||||
|
case PINK_CARPET:
|
||||||
|
case PURPLE_CARPET:
|
||||||
|
case RED_CARPET:
|
||||||
|
case WHITE_CARPET:
|
||||||
|
case WOLF_ARMOR:
|
||||||
|
case YELLOW_CARPET:
|
||||||
|
return EquipmentSlot.BODY;
|
||||||
default:
|
default:
|
||||||
return EquipmentSlot.HAND;
|
return EquipmentSlot.HAND;
|
||||||
// </editor-fold>
|
// </editor-fold>
|
||||||
|
|
|
@ -22,8 +22,10 @@ public enum Particle implements Keyed {
|
||||||
SMOKE_LARGE("large_smoke"),
|
SMOKE_LARGE("large_smoke"),
|
||||||
SPELL("effect"),
|
SPELL("effect"),
|
||||||
SPELL_INSTANT("instant_effect"),
|
SPELL_INSTANT("instant_effect"),
|
||||||
SPELL_MOB("entity_effect"),
|
/**
|
||||||
SPELL_MOB_AMBIENT("ambient_entity_effect"),
|
* Uses {@link Color} as DataType
|
||||||
|
*/
|
||||||
|
SPELL_MOB("entity_effect", Color.class),
|
||||||
SPELL_WITCH("witch"),
|
SPELL_WITCH("witch"),
|
||||||
DRIP_WATER("dripping_water"),
|
DRIP_WATER("dripping_water"),
|
||||||
DRIP_LAVA("dripping_lava"),
|
DRIP_LAVA("dripping_lava"),
|
||||||
|
@ -136,11 +138,32 @@ public enum Particle implements Keyed {
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
GUST("gust"),
|
GUST("gust"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
GUST_EMITTER("gust_emitter"),
|
SMALL_GUST("small_gust"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
GUST_DUST("gust_dust"),
|
GUST_EMITTER_LARGE("gust_emitter_large"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
GUST_EMITTER_SMALL("gust_emitter_small"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
TRIAL_SPAWNER_DETECTION("trial_spawner_detection"),
|
TRIAL_SPAWNER_DETECTION("trial_spawner_detection"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
TRIAL_SPAWNER_DETECTION_OMINOUS("trial_spawner_detection_ominous"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
VAULT_CONNECTION("vault_connection"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
INFESTED("infested"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ITEM_COBWEB("item_cobweb"),
|
||||||
|
/**
|
||||||
|
* Uses {@link BlockData} as DataType
|
||||||
|
*/
|
||||||
|
@MinecraftExperimental
|
||||||
|
DUST_PILLAR("dust_pillar", BlockData.class),
|
||||||
|
@MinecraftExperimental
|
||||||
|
OMINOUS_SPAWNING("ominous_spawning"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
RAID_OMEN("raid_omen"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
TRIAL_OMEN("trial_omen"),
|
||||||
/**
|
/**
|
||||||
* Uses {@link BlockData} as DataType
|
* Uses {@link BlockData} as DataType
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -20,12 +20,14 @@ import org.bukkit.entity.Cat;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Frog;
|
import org.bukkit.entity.Frog;
|
||||||
import org.bukkit.entity.Villager;
|
import org.bukkit.entity.Villager;
|
||||||
|
import org.bukkit.entity.Wolf;
|
||||||
import org.bukkit.entity.memory.MemoryKey;
|
import org.bukkit.entity.memory.MemoryKey;
|
||||||
import org.bukkit.generator.structure.Structure;
|
import org.bukkit.generator.structure.Structure;
|
||||||
import org.bukkit.generator.structure.StructureType;
|
import org.bukkit.generator.structure.StructureType;
|
||||||
import org.bukkit.inventory.meta.trim.TrimMaterial;
|
import org.bukkit.inventory.meta.trim.TrimMaterial;
|
||||||
import org.bukkit.inventory.meta.trim.TrimPattern;
|
import org.bukkit.inventory.meta.trim.TrimPattern;
|
||||||
import org.bukkit.loot.LootTables;
|
import org.bukkit.loot.LootTables;
|
||||||
|
import org.bukkit.map.MapCursor;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
import org.bukkit.potion.PotionType;
|
import org.bukkit.potion.PotionType;
|
||||||
import org.jetbrains.annotations.ApiStatus;
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
@ -264,6 +266,19 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
|
||||||
* @see Frog.Variant
|
* @see Frog.Variant
|
||||||
*/
|
*/
|
||||||
Registry<Frog.Variant> FROG_VARIANT = new SimpleRegistry<>(Frog.Variant.class);
|
Registry<Frog.Variant> FROG_VARIANT = new SimpleRegistry<>(Frog.Variant.class);
|
||||||
|
/**
|
||||||
|
* Wolf variants.
|
||||||
|
*
|
||||||
|
* @see Wolf.Variant
|
||||||
|
*/
|
||||||
|
Registry<Wolf.Variant> WOLF_VARIANT = new SimpleRegistry<>(Wolf.Variant.class);
|
||||||
|
/**
|
||||||
|
* Map cursor types.
|
||||||
|
*
|
||||||
|
* @see MapCursor.Type
|
||||||
|
*/
|
||||||
|
@ApiStatus.Internal
|
||||||
|
Registry<MapCursor.Type> MAP_DECORATION_TYPE = new SimpleRegistry<>(MapCursor.Type.class);
|
||||||
/**
|
/**
|
||||||
* Game events.
|
* Game events.
|
||||||
*
|
*
|
||||||
|
|
|
@ -998,6 +998,14 @@ public interface Server extends PluginMessageRecipient {
|
||||||
*/
|
*/
|
||||||
public boolean isEnforcingSecureProfiles();
|
public boolean isEnforcingSecureProfiles();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets whether this server is allowing connections transferred from other
|
||||||
|
* servers.
|
||||||
|
*
|
||||||
|
* @return true if the server accepts transfers, false otherwise
|
||||||
|
*/
|
||||||
|
public boolean isAcceptingTransfers();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets whether the Server hide online players in server status.
|
* Gets whether the Server hide online players in server status.
|
||||||
*
|
*
|
||||||
|
|
|
@ -203,6 +203,11 @@ public enum Sound implements Keyed {
|
||||||
BLOCK_CHISELED_BOOKSHELF_STEP("block.chiseled_bookshelf.step"),
|
BLOCK_CHISELED_BOOKSHELF_STEP("block.chiseled_bookshelf.step"),
|
||||||
BLOCK_CHORUS_FLOWER_DEATH("block.chorus_flower.death"),
|
BLOCK_CHORUS_FLOWER_DEATH("block.chorus_flower.death"),
|
||||||
BLOCK_CHORUS_FLOWER_GROW("block.chorus_flower.grow"),
|
BLOCK_CHORUS_FLOWER_GROW("block.chorus_flower.grow"),
|
||||||
|
BLOCK_COBWEB_BREAK("block.cobweb.break"),
|
||||||
|
BLOCK_COBWEB_FALL("block.cobweb.fall"),
|
||||||
|
BLOCK_COBWEB_HIT("block.cobweb.hit"),
|
||||||
|
BLOCK_COBWEB_PLACE("block.cobweb.place"),
|
||||||
|
BLOCK_COBWEB_STEP("block.cobweb.step"),
|
||||||
BLOCK_COMPARATOR_CLICK("block.comparator.click"),
|
BLOCK_COMPARATOR_CLICK("block.comparator.click"),
|
||||||
BLOCK_COMPOSTER_EMPTY("block.composter.empty"),
|
BLOCK_COMPOSTER_EMPTY("block.composter.empty"),
|
||||||
BLOCK_COMPOSTER_FILL("block.composter.fill"),
|
BLOCK_COMPOSTER_FILL("block.composter.fill"),
|
||||||
|
@ -354,6 +359,16 @@ public enum Sound implements Keyed {
|
||||||
BLOCK_HANGING_SIGN_PLACE("block.hanging_sign.place"),
|
BLOCK_HANGING_SIGN_PLACE("block.hanging_sign.place"),
|
||||||
BLOCK_HANGING_SIGN_STEP("block.hanging_sign.step"),
|
BLOCK_HANGING_SIGN_STEP("block.hanging_sign.step"),
|
||||||
BLOCK_HANGING_SIGN_WAXED_INTERACT_FAIL("block.hanging_sign.waxed_interact_fail"),
|
BLOCK_HANGING_SIGN_WAXED_INTERACT_FAIL("block.hanging_sign.waxed_interact_fail"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_HEAVY_CORE_BREAK("block.heavy_core.break"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_HEAVY_CORE_FALL("block.heavy_core.fall"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_HEAVY_CORE_HIT("block.heavy_core.hit"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_HEAVY_CORE_PLACE("block.heavy_core.place"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_HEAVY_CORE_STEP("block.heavy_core.step"),
|
||||||
BLOCK_HONEY_BLOCK_BREAK("block.honey_block.break"),
|
BLOCK_HONEY_BLOCK_BREAK("block.honey_block.break"),
|
||||||
BLOCK_HONEY_BLOCK_FALL("block.honey_block.fall"),
|
BLOCK_HONEY_BLOCK_FALL("block.honey_block.fall"),
|
||||||
BLOCK_HONEY_BLOCK_HIT("block.honey_block.hit"),
|
BLOCK_HONEY_BLOCK_HIT("block.honey_block.hit"),
|
||||||
|
@ -684,10 +699,16 @@ public enum Sound implements Keyed {
|
||||||
BLOCK_SWEET_BERRY_BUSH_PICK_BERRIES("block.sweet_berry_bush.pick_berries"),
|
BLOCK_SWEET_BERRY_BUSH_PICK_BERRIES("block.sweet_berry_bush.pick_berries"),
|
||||||
BLOCK_SWEET_BERRY_BUSH_PLACE("block.sweet_berry_bush.place"),
|
BLOCK_SWEET_BERRY_BUSH_PLACE("block.sweet_berry_bush.place"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
|
BLOCK_TRIAL_SPAWNER_ABOUT_TO_SPAWN_ITEM("block.trial_spawner.about_to_spawn_item"),
|
||||||
|
@MinecraftExperimental
|
||||||
BLOCK_TRIAL_SPAWNER_AMBIENT("block.trial_spawner.ambient"),
|
BLOCK_TRIAL_SPAWNER_AMBIENT("block.trial_spawner.ambient"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
|
BLOCK_TRIAL_SPAWNER_AMBIENT_CHARGED("block.trial_spawner.ambient_charged"),
|
||||||
|
@MinecraftExperimental
|
||||||
BLOCK_TRIAL_SPAWNER_BREAK("block.trial_spawner.break"),
|
BLOCK_TRIAL_SPAWNER_BREAK("block.trial_spawner.break"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
|
BLOCK_TRIAL_SPAWNER_CHARGE_ACTIVATE("block.trial_spawner.charge_activate"),
|
||||||
|
@MinecraftExperimental
|
||||||
BLOCK_TRIAL_SPAWNER_CLOSE_SHUTTER("block.trial_spawner.close_shutter"),
|
BLOCK_TRIAL_SPAWNER_CLOSE_SHUTTER("block.trial_spawner.close_shutter"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
BLOCK_TRIAL_SPAWNER_DETECT_PLAYER("block.trial_spawner.detect_player"),
|
BLOCK_TRIAL_SPAWNER_DETECT_PLAYER("block.trial_spawner.detect_player"),
|
||||||
|
@ -702,6 +723,10 @@ public enum Sound implements Keyed {
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
BLOCK_TRIAL_SPAWNER_PLACE("block.trial_spawner.place"),
|
BLOCK_TRIAL_SPAWNER_PLACE("block.trial_spawner.place"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
|
BLOCK_TRIAL_SPAWNER_SPAWN_ITEM("block.trial_spawner.spawn_item"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_TRIAL_SPAWNER_SPAWN_ITEM_BEGIN("block.trial_spawner.spawn_item_begin"),
|
||||||
|
@MinecraftExperimental
|
||||||
BLOCK_TRIAL_SPAWNER_SPAWN_MOB("block.trial_spawner.spawn_mob"),
|
BLOCK_TRIAL_SPAWNER_SPAWN_MOB("block.trial_spawner.spawn_mob"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
BLOCK_TRIAL_SPAWNER_STEP("block.trial_spawner.step"),
|
BLOCK_TRIAL_SPAWNER_STEP("block.trial_spawner.step"),
|
||||||
|
@ -724,6 +749,32 @@ public enum Sound implements Keyed {
|
||||||
BLOCK_TUFF_HIT("block.tuff.hit"),
|
BLOCK_TUFF_HIT("block.tuff.hit"),
|
||||||
BLOCK_TUFF_PLACE("block.tuff.place"),
|
BLOCK_TUFF_PLACE("block.tuff.place"),
|
||||||
BLOCK_TUFF_STEP("block.tuff.step"),
|
BLOCK_TUFF_STEP("block.tuff.step"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_VAULT_ACTIVATE("block.vault.activate"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_VAULT_AMBIENT("block.vault.ambient"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_VAULT_BREAK("block.vault.break"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_VAULT_CLOSE_SHUTTER("block.vault.close_shutter"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_VAULT_DEACTIVATE("block.vault.deactivate"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_VAULT_EJECT_ITEM("block.vault.eject_item"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_VAULT_FALL("block.vault.fall"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_VAULT_HIT("block.vault.hit"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_VAULT_INSERT_ITEM("block.vault.insert_item"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_VAULT_INSERT_ITEM_FAIL("block.vault.insert_item_fail"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_VAULT_OPEN_SHUTTER("block.vault.open_shutter"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_VAULT_PLACE("block.vault.place"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
BLOCK_VAULT_STEP("block.vault.step"),
|
||||||
BLOCK_VINE_BREAK("block.vine.break"),
|
BLOCK_VINE_BREAK("block.vine.break"),
|
||||||
BLOCK_VINE_FALL("block.vine.fall"),
|
BLOCK_VINE_FALL("block.vine.fall"),
|
||||||
BLOCK_VINE_HIT("block.vine.hit"),
|
BLOCK_VINE_HIT("block.vine.hit"),
|
||||||
|
@ -746,6 +797,7 @@ public enum Sound implements Keyed {
|
||||||
BLOCK_WET_GRASS_PLACE("block.wet_grass.place"),
|
BLOCK_WET_GRASS_PLACE("block.wet_grass.place"),
|
||||||
BLOCK_WET_GRASS_STEP("block.wet_grass.step"),
|
BLOCK_WET_GRASS_STEP("block.wet_grass.step"),
|
||||||
BLOCK_WET_SPONGE_BREAK("block.wet_sponge.break"),
|
BLOCK_WET_SPONGE_BREAK("block.wet_sponge.break"),
|
||||||
|
BLOCK_WET_SPONGE_DRIES("block.wet_sponge.dries"),
|
||||||
BLOCK_WET_SPONGE_FALL("block.wet_sponge.fall"),
|
BLOCK_WET_SPONGE_FALL("block.wet_sponge.fall"),
|
||||||
BLOCK_WET_SPONGE_HIT("block.wet_sponge.hit"),
|
BLOCK_WET_SPONGE_HIT("block.wet_sponge.hit"),
|
||||||
BLOCK_WET_SPONGE_PLACE("block.wet_sponge.place"),
|
BLOCK_WET_SPONGE_PLACE("block.wet_sponge.place"),
|
||||||
|
@ -776,6 +828,19 @@ public enum Sound implements Keyed {
|
||||||
ENTITY_ALLAY_ITEM_GIVEN("entity.allay.item_given"),
|
ENTITY_ALLAY_ITEM_GIVEN("entity.allay.item_given"),
|
||||||
ENTITY_ALLAY_ITEM_TAKEN("entity.allay.item_taken"),
|
ENTITY_ALLAY_ITEM_TAKEN("entity.allay.item_taken"),
|
||||||
ENTITY_ALLAY_ITEM_THROWN("entity.allay.item_thrown"),
|
ENTITY_ALLAY_ITEM_THROWN("entity.allay.item_thrown"),
|
||||||
|
ENTITY_ARMADILLO_AMBIENT("entity.armadillo.ambient"),
|
||||||
|
ENTITY_ARMADILLO_BRUSH("entity.armadillo.brush"),
|
||||||
|
ENTITY_ARMADILLO_DEATH("entity.armadillo.death"),
|
||||||
|
ENTITY_ARMADILLO_EAT("entity.armadillo.eat"),
|
||||||
|
ENTITY_ARMADILLO_HURT("entity.armadillo.hurt"),
|
||||||
|
ENTITY_ARMADILLO_HURT_REDUCED("entity.armadillo.hurt_reduced"),
|
||||||
|
ENTITY_ARMADILLO_LAND("entity.armadillo.land"),
|
||||||
|
ENTITY_ARMADILLO_PEEK("entity.armadillo.peek"),
|
||||||
|
ENTITY_ARMADILLO_ROLL("entity.armadillo.roll"),
|
||||||
|
ENTITY_ARMADILLO_SCUTE_DROP("entity.armadillo.scute_drop"),
|
||||||
|
ENTITY_ARMADILLO_STEP("entity.armadillo.step"),
|
||||||
|
ENTITY_ARMADILLO_UNROLL_FINISH("entity.armadillo.unroll_finish"),
|
||||||
|
ENTITY_ARMADILLO_UNROLL_START("entity.armadillo.unroll_start"),
|
||||||
ENTITY_ARMOR_STAND_BREAK("entity.armor_stand.break"),
|
ENTITY_ARMOR_STAND_BREAK("entity.armor_stand.break"),
|
||||||
ENTITY_ARMOR_STAND_FALL("entity.armor_stand.fall"),
|
ENTITY_ARMOR_STAND_FALL("entity.armor_stand.fall"),
|
||||||
ENTITY_ARMOR_STAND_HIT("entity.armor_stand.hit"),
|
ENTITY_ARMOR_STAND_HIT("entity.armor_stand.hit"),
|
||||||
|
@ -809,8 +874,22 @@ public enum Sound implements Keyed {
|
||||||
ENTITY_BOAT_PADDLE_LAND("entity.boat.paddle_land"),
|
ENTITY_BOAT_PADDLE_LAND("entity.boat.paddle_land"),
|
||||||
ENTITY_BOAT_PADDLE_WATER("entity.boat.paddle_water"),
|
ENTITY_BOAT_PADDLE_WATER("entity.boat.paddle_water"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
|
ENTITY_BOGGED_AMBIENT("entity.bogged.ambient"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ENTITY_BOGGED_DEATH("entity.bogged.death"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ENTITY_BOGGED_HURT("entity.bogged.hurt"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ENTITY_BOGGED_SHEAR("entity.bogged.shear"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ENTITY_BOGGED_STEP("entity.bogged.step"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ENTITY_BREEZE_CHARGE("entity.breeze.charge"),
|
||||||
|
@MinecraftExperimental
|
||||||
ENTITY_BREEZE_DEATH("entity.breeze.death"),
|
ENTITY_BREEZE_DEATH("entity.breeze.death"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
|
ENTITY_BREEZE_DEFLECT("entity.breeze.deflect"),
|
||||||
|
@MinecraftExperimental
|
||||||
ENTITY_BREEZE_HURT("entity.breeze.hurt"),
|
ENTITY_BREEZE_HURT("entity.breeze.hurt"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
ENTITY_BREEZE_IDLE_AIR("entity.breeze.idle_air"),
|
ENTITY_BREEZE_IDLE_AIR("entity.breeze.idle_air"),
|
||||||
|
@ -826,6 +905,10 @@ public enum Sound implements Keyed {
|
||||||
ENTITY_BREEZE_SHOOT("entity.breeze.shoot"),
|
ENTITY_BREEZE_SHOOT("entity.breeze.shoot"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
ENTITY_BREEZE_SLIDE("entity.breeze.slide"),
|
ENTITY_BREEZE_SLIDE("entity.breeze.slide"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ENTITY_BREEZE_WHIRL("entity.breeze.whirl"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ENTITY_BREEZE_WIND_BURST("entity.breeze.wind_burst"),
|
||||||
ENTITY_CAMEL_AMBIENT("entity.camel.ambient"),
|
ENTITY_CAMEL_AMBIENT("entity.camel.ambient"),
|
||||||
ENTITY_CAMEL_DASH("entity.camel.dash"),
|
ENTITY_CAMEL_DASH("entity.camel.dash"),
|
||||||
ENTITY_CAMEL_DASH_READY("entity.camel.dash_ready"),
|
ENTITY_CAMEL_DASH_READY("entity.camel.dash_ready"),
|
||||||
|
@ -879,6 +962,7 @@ public enum Sound implements Keyed {
|
||||||
ENTITY_DONKEY_DEATH("entity.donkey.death"),
|
ENTITY_DONKEY_DEATH("entity.donkey.death"),
|
||||||
ENTITY_DONKEY_EAT("entity.donkey.eat"),
|
ENTITY_DONKEY_EAT("entity.donkey.eat"),
|
||||||
ENTITY_DONKEY_HURT("entity.donkey.hurt"),
|
ENTITY_DONKEY_HURT("entity.donkey.hurt"),
|
||||||
|
ENTITY_DONKEY_JUMP("entity.donkey.jump"),
|
||||||
ENTITY_DRAGON_FIREBALL_EXPLODE("entity.dragon_fireball.explode"),
|
ENTITY_DRAGON_FIREBALL_EXPLODE("entity.dragon_fireball.explode"),
|
||||||
ENTITY_DROWNED_AMBIENT("entity.drowned.ambient"),
|
ENTITY_DROWNED_AMBIENT("entity.drowned.ambient"),
|
||||||
ENTITY_DROWNED_AMBIENT_WATER("entity.drowned.ambient_water"),
|
ENTITY_DROWNED_AMBIENT_WATER("entity.drowned.ambient_water"),
|
||||||
|
@ -970,8 +1054,6 @@ public enum Sound implements Keyed {
|
||||||
ENTITY_GENERIC_SMALL_FALL("entity.generic.small_fall"),
|
ENTITY_GENERIC_SMALL_FALL("entity.generic.small_fall"),
|
||||||
ENTITY_GENERIC_SPLASH("entity.generic.splash"),
|
ENTITY_GENERIC_SPLASH("entity.generic.splash"),
|
||||||
ENTITY_GENERIC_SWIM("entity.generic.swim"),
|
ENTITY_GENERIC_SWIM("entity.generic.swim"),
|
||||||
@MinecraftExperimental
|
|
||||||
ENTITY_GENERIC_WIND_BURST("entity.generic.wind_burst"),
|
|
||||||
ENTITY_GHAST_AMBIENT("entity.ghast.ambient"),
|
ENTITY_GHAST_AMBIENT("entity.ghast.ambient"),
|
||||||
ENTITY_GHAST_DEATH("entity.ghast.death"),
|
ENTITY_GHAST_DEATH("entity.ghast.death"),
|
||||||
ENTITY_GHAST_HURT("entity.ghast.hurt"),
|
ENTITY_GHAST_HURT("entity.ghast.hurt"),
|
||||||
|
@ -1101,6 +1183,7 @@ public enum Sound implements Keyed {
|
||||||
ENTITY_MULE_DEATH("entity.mule.death"),
|
ENTITY_MULE_DEATH("entity.mule.death"),
|
||||||
ENTITY_MULE_EAT("entity.mule.eat"),
|
ENTITY_MULE_EAT("entity.mule.eat"),
|
||||||
ENTITY_MULE_HURT("entity.mule.hurt"),
|
ENTITY_MULE_HURT("entity.mule.hurt"),
|
||||||
|
ENTITY_MULE_JUMP("entity.mule.jump"),
|
||||||
ENTITY_OCELOT_AMBIENT("entity.ocelot.ambient"),
|
ENTITY_OCELOT_AMBIENT("entity.ocelot.ambient"),
|
||||||
ENTITY_OCELOT_DEATH("entity.ocelot.death"),
|
ENTITY_OCELOT_DEATH("entity.ocelot.death"),
|
||||||
ENTITY_OCELOT_HURT("entity.ocelot.hurt"),
|
ENTITY_OCELOT_HURT("entity.ocelot.hurt"),
|
||||||
|
@ -1124,6 +1207,8 @@ public enum Sound implements Keyed {
|
||||||
ENTITY_PARROT_HURT("entity.parrot.hurt"),
|
ENTITY_PARROT_HURT("entity.parrot.hurt"),
|
||||||
ENTITY_PARROT_IMITATE_BLAZE("entity.parrot.imitate.blaze"),
|
ENTITY_PARROT_IMITATE_BLAZE("entity.parrot.imitate.blaze"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
|
ENTITY_PARROT_IMITATE_BOGGED("entity.parrot.imitate.bogged"),
|
||||||
|
@MinecraftExperimental
|
||||||
ENTITY_PARROT_IMITATE_BREEZE("entity.parrot.imitate.breeze"),
|
ENTITY_PARROT_IMITATE_BREEZE("entity.parrot.imitate.breeze"),
|
||||||
ENTITY_PARROT_IMITATE_CREEPER("entity.parrot.imitate.creeper"),
|
ENTITY_PARROT_IMITATE_CREEPER("entity.parrot.imitate.creeper"),
|
||||||
ENTITY_PARROT_IMITATE_DROWNED("entity.parrot.imitate.drowned"),
|
ENTITY_PARROT_IMITATE_DROWNED("entity.parrot.imitate.drowned"),
|
||||||
|
@ -1402,6 +1487,10 @@ public enum Sound implements Keyed {
|
||||||
ENTITY_WARDEN_SONIC_CHARGE("entity.warden.sonic_charge"),
|
ENTITY_WARDEN_SONIC_CHARGE("entity.warden.sonic_charge"),
|
||||||
ENTITY_WARDEN_STEP("entity.warden.step"),
|
ENTITY_WARDEN_STEP("entity.warden.step"),
|
||||||
ENTITY_WARDEN_TENDRIL_CLICKS("entity.warden.tendril_clicks"),
|
ENTITY_WARDEN_TENDRIL_CLICKS("entity.warden.tendril_clicks"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ENTITY_WIND_CHARGE_THROW("entity.wind_charge.throw"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ENTITY_WIND_CHARGE_WIND_BURST("entity.wind_charge.wind_burst"),
|
||||||
ENTITY_WITCH_AMBIENT("entity.witch.ambient"),
|
ENTITY_WITCH_AMBIENT("entity.witch.ambient"),
|
||||||
ENTITY_WITCH_CELEBRATE("entity.witch.celebrate"),
|
ENTITY_WITCH_CELEBRATE("entity.witch.celebrate"),
|
||||||
ENTITY_WITCH_DEATH("entity.witch.death"),
|
ENTITY_WITCH_DEATH("entity.witch.death"),
|
||||||
|
@ -1456,6 +1545,12 @@ public enum Sound implements Keyed {
|
||||||
ENTITY_ZOMBIFIED_PIGLIN_ANGRY("entity.zombified_piglin.angry"),
|
ENTITY_ZOMBIFIED_PIGLIN_ANGRY("entity.zombified_piglin.angry"),
|
||||||
ENTITY_ZOMBIFIED_PIGLIN_DEATH("entity.zombified_piglin.death"),
|
ENTITY_ZOMBIFIED_PIGLIN_DEATH("entity.zombified_piglin.death"),
|
||||||
ENTITY_ZOMBIFIED_PIGLIN_HURT("entity.zombified_piglin.hurt"),
|
ENTITY_ZOMBIFIED_PIGLIN_HURT("entity.zombified_piglin.hurt"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
EVENT_MOB_EFFECT_BAD_OMEN("event.mob_effect.bad_omen"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
EVENT_MOB_EFFECT_RAID_OMEN("event.mob_effect.raid_omen"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
EVENT_MOB_EFFECT_TRIAL_OMEN("event.mob_effect.trial_omen"),
|
||||||
EVENT_RAID_HORN("event.raid.horn"),
|
EVENT_RAID_HORN("event.raid.horn"),
|
||||||
INTENTIONALLY_EMPTY("intentionally_empty"),
|
INTENTIONALLY_EMPTY("intentionally_empty"),
|
||||||
ITEM_ARMOR_EQUIP_CHAIN("item.armor.equip_chain"),
|
ITEM_ARMOR_EQUIP_CHAIN("item.armor.equip_chain"),
|
||||||
|
@ -1467,6 +1562,8 @@ public enum Sound implements Keyed {
|
||||||
ITEM_ARMOR_EQUIP_LEATHER("item.armor.equip_leather"),
|
ITEM_ARMOR_EQUIP_LEATHER("item.armor.equip_leather"),
|
||||||
ITEM_ARMOR_EQUIP_NETHERITE("item.armor.equip_netherite"),
|
ITEM_ARMOR_EQUIP_NETHERITE("item.armor.equip_netherite"),
|
||||||
ITEM_ARMOR_EQUIP_TURTLE("item.armor.equip_turtle"),
|
ITEM_ARMOR_EQUIP_TURTLE("item.armor.equip_turtle"),
|
||||||
|
ITEM_ARMOR_EQUIP_WOLF("item.armor.equip_wolf"),
|
||||||
|
ITEM_ARMOR_UNEQUIP_WOLF("item.armor.unequip_wolf"),
|
||||||
ITEM_AXE_SCRAPE("item.axe.scrape"),
|
ITEM_AXE_SCRAPE("item.axe.scrape"),
|
||||||
ITEM_AXE_STRIP("item.axe.strip"),
|
ITEM_AXE_STRIP("item.axe.strip"),
|
||||||
ITEM_AXE_WAX_OFF("item.axe.wax_off"),
|
ITEM_AXE_WAX_OFF("item.axe.wax_off"),
|
||||||
|
@ -1528,7 +1625,15 @@ public enum Sound implements Keyed {
|
||||||
ITEM_HONEY_BOTTLE_DRINK("item.honey_bottle.drink"),
|
ITEM_HONEY_BOTTLE_DRINK("item.honey_bottle.drink"),
|
||||||
ITEM_INK_SAC_USE("item.ink_sac.use"),
|
ITEM_INK_SAC_USE("item.ink_sac.use"),
|
||||||
ITEM_LODESTONE_COMPASS_LOCK("item.lodestone_compass.lock"),
|
ITEM_LODESTONE_COMPASS_LOCK("item.lodestone_compass.lock"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ITEM_MACE_SMASH_AIR("item.mace.smash_air"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ITEM_MACE_SMASH_GROUND("item.mace.smash_ground"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ITEM_MACE_SMASH_GROUND_HEAVY("item.mace.smash_ground_heavy"),
|
||||||
ITEM_NETHER_WART_PLANT("item.nether_wart.plant"),
|
ITEM_NETHER_WART_PLANT("item.nether_wart.plant"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ITEM_OMINOUS_BOTTLE_DISPOSE("item.ominous_bottle.dispose"),
|
||||||
ITEM_SHIELD_BLOCK("item.shield.block"),
|
ITEM_SHIELD_BLOCK("item.shield.block"),
|
||||||
ITEM_SHIELD_BREAK("item.shield.break"),
|
ITEM_SHIELD_BREAK("item.shield.break"),
|
||||||
ITEM_SHOVEL_FLATTEN("item.shovel.flatten"),
|
ITEM_SHOVEL_FLATTEN("item.shovel.flatten"),
|
||||||
|
@ -1543,6 +1648,14 @@ public enum Sound implements Keyed {
|
||||||
ITEM_TRIDENT_RIPTIDE_3("item.trident.riptide_3"),
|
ITEM_TRIDENT_RIPTIDE_3("item.trident.riptide_3"),
|
||||||
ITEM_TRIDENT_THROW("item.trident.throw"),
|
ITEM_TRIDENT_THROW("item.trident.throw"),
|
||||||
ITEM_TRIDENT_THUNDER("item.trident.thunder"),
|
ITEM_TRIDENT_THUNDER("item.trident.thunder"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ITEM_WOLF_ARMOR_BREAK("item.wolf_armor.break"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ITEM_WOLF_ARMOR_CRACK("item.wolf_armor.crack"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ITEM_WOLF_ARMOR_DAMAGE("item.wolf_armor.damage"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
ITEM_WOLF_ARMOR_REPAIR("item.wolf_armor.repair"),
|
||||||
MUSIC_CREATIVE("music.creative"),
|
MUSIC_CREATIVE("music.creative"),
|
||||||
MUSIC_CREDITS("music.credits"),
|
MUSIC_CREDITS("music.credits"),
|
||||||
MUSIC_DISC_11("music_disc.11"),
|
MUSIC_DISC_11("music_disc.11"),
|
||||||
|
|
|
@ -260,6 +260,10 @@ public interface Tag<T extends Keyed> extends Keyed {
|
||||||
* Vanilla block tag representing all terracotta.
|
* Vanilla block tag representing all terracotta.
|
||||||
*/
|
*/
|
||||||
Tag<Material> TERRACOTTA = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("terracotta"), Material.class);
|
Tag<Material> TERRACOTTA = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("terracotta"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla block tag representing all badlands terracotta.
|
||||||
|
*/
|
||||||
|
Tag<Material> BADLANDS_TERRACOTTA = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("badlands_terracotta"), Material.class);
|
||||||
/**
|
/**
|
||||||
* Vanilla block tag representing all concrete powder.
|
* Vanilla block tag representing all concrete powder.
|
||||||
*/
|
*/
|
||||||
|
@ -583,6 +587,30 @@ public interface Tag<T extends Keyed> extends Keyed {
|
||||||
* Vanilla block tag representing all blocks which require a stone tool.
|
* Vanilla block tag representing all blocks which require a stone tool.
|
||||||
*/
|
*/
|
||||||
Tag<Material> NEEDS_STONE_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("needs_stone_tool"), Material.class);
|
Tag<Material> NEEDS_STONE_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("needs_stone_tool"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla block tag representing all blocks which will not drop items with a netherite tool.
|
||||||
|
*/
|
||||||
|
Tag<Material> INCORRECT_FOR_NETHERITE_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_netherite_tool"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla block tag representing all blocks which will not drop items with a diamond tool.
|
||||||
|
*/
|
||||||
|
Tag<Material> INCORRECT_FOR_DIAMOND_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_diamond_tool"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla block tag representing all blocks which will not drop items with a iron tool.
|
||||||
|
*/
|
||||||
|
Tag<Material> INCORRECT_FOR_IRON_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_iron_tool"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla block tag representing all blocks which will not drop items with a stone tool.
|
||||||
|
*/
|
||||||
|
Tag<Material> INCORRECT_FOR_STONE_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_stone_tool"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla block tag representing all blocks which will not drop items with a gold tool.
|
||||||
|
*/
|
||||||
|
Tag<Material> INCORRECT_FOR_GOLD_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_gold_tool"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla block tag representing all blocks which will not drop items with a wooden tool.
|
||||||
|
*/
|
||||||
|
Tag<Material> INCORRECT_FOR_WOODEN_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_wooden_tool"), Material.class);
|
||||||
/**
|
/**
|
||||||
* Vanilla block tag representing all blocks which will not be replaced by
|
* Vanilla block tag representing all blocks which will not be replaced by
|
||||||
* world generation features.
|
* world generation features.
|
||||||
|
@ -623,6 +651,10 @@ public interface Tag<T extends Keyed> extends Keyed {
|
||||||
* Vanilla block tag representing all blocks which animals will spawn on.
|
* Vanilla block tag representing all blocks which animals will spawn on.
|
||||||
*/
|
*/
|
||||||
Tag<Material> ANIMALS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("animals_spawnable_on"), Material.class);
|
Tag<Material> ANIMALS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("animals_spawnable_on"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla block tag representing all blocks which armadillos will spawn on.
|
||||||
|
*/
|
||||||
|
Tag<Material> ARMADILLO_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("armadillo_spawnable_on"), Material.class);
|
||||||
/**
|
/**
|
||||||
* Vanilla block tag representing all blocks which axolotls will spawn on.
|
* Vanilla block tag representing all blocks which axolotls will spawn on.
|
||||||
*/
|
*/
|
||||||
|
@ -731,6 +763,14 @@ public interface Tag<T extends Keyed> extends Keyed {
|
||||||
* Vanilla block tag representing all blocks which do not destroy farmland when placed.
|
* Vanilla block tag representing all blocks which do not destroy farmland when placed.
|
||||||
*/
|
*/
|
||||||
Tag<Material> MAINTAINS_FARMLAND = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("maintains_farmland"), Material.class);
|
Tag<Material> MAINTAINS_FARMLAND = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("maintains_farmland"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla block tag representing all blocks which block wind charge explosions.
|
||||||
|
*/
|
||||||
|
Tag<Material> BLOCKS_WIND_CHARGE_EXPLOSIONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("blocks_wind_charge_explosions"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla block tag representing solid blocks which do not block hopper operation.
|
||||||
|
*/
|
||||||
|
Tag<Material> DOES_NOT_BLOCK_HOPPERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("does_not_block_hoppers"), Material.class);
|
||||||
/**
|
/**
|
||||||
* Key for the built in item registry.
|
* Key for the built in item registry.
|
||||||
*/
|
*/
|
||||||
|
@ -743,14 +783,136 @@ public interface Tag<T extends Keyed> extends Keyed {
|
||||||
* Vanilla item tag representing all items ignored by piglin babies.
|
* Vanilla item tag representing all items ignored by piglin babies.
|
||||||
*/
|
*/
|
||||||
Tag<Material> IGNORED_BY_PIGLIN_BABIES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("ignored_by_piglin_babies"), Material.class);
|
Tag<Material> IGNORED_BY_PIGLIN_BABIES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("ignored_by_piglin_babies"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all meat.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_MEAT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("meat"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all sniffer food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_SNIFFER_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("sniffer_food"), Material.class);
|
||||||
/**
|
/**
|
||||||
* Vanilla item tag representing all piglin food.
|
* Vanilla item tag representing all piglin food.
|
||||||
*/
|
*/
|
||||||
Tag<Material> PIGLIN_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_food"), Material.class);
|
Tag<Material> ITEMS_PIGLIN_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all piglin food.
|
||||||
|
*
|
||||||
|
* @deprecated use {@link #ITEMS_PIGLIN_FOOD}
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
Tag<Material> PIGLIN_FOOD = ITEMS_PIGLIN_FOOD;
|
||||||
/**
|
/**
|
||||||
* Vanilla item tag representing all fox food.
|
* Vanilla item tag representing all fox food.
|
||||||
*/
|
*/
|
||||||
Tag<Material> FOX_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("fox_food"), Material.class);
|
Tag<Material> ITEMS_FOX_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("fox_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all fox food.
|
||||||
|
*
|
||||||
|
* @deprecated use {@link #ITEMS_FOX_FOOD}
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
Tag<Material> FOX_FOOD = ITEMS_FOX_FOOD;
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all cow food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_COW_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("cow_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all goat food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_GOAT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("goat_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all sheep food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_SHEEP_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("sheep_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all wolf food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_WOLF_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wolf_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all cat food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_CAT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("cat_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all horse food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_HORSE_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("horse_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all horse tempt items.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_HORSE_TEMPT_ITEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("horse_tempt_items"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all camel food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_CAMEL_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("camel_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all armadillo food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ARMADILLO_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("armadillo_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all bee food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_BEE_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("bee_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all chicken food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_CHICKEN_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("chicken_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all frog food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_FROG_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("frog_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all hoglin food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_HOGLIN_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("hoglin_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all llama food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_LLAMA_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("llama_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all llama tempt items.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_LLAMA_TEMPT_ITEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("llama_tempt_items"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all ocelot food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_OCELOT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("ocelot_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all panda food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_PANDA_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("panda_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all pig food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_PIG_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("pig_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all rabbit food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_RABBIT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("rabbit_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all strider food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_STRIDER_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("strider_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all strider tempt items.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_STRIDER_TEMPT_ITEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("strider_tempt_items"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all turtle food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_TURTLE_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("turtle_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all parrot food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_PARROT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("parrot_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all parrot poisonous food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_PARROT_POISONOUS_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("parrot_poisonous_food"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all axolotl food.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_AXOLOTL_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("axolotl_food"), Material.class);
|
||||||
/**
|
/**
|
||||||
* Vanilla item tag representing all banner items.
|
* Vanilla item tag representing all banner items.
|
||||||
*/
|
*/
|
||||||
|
@ -824,6 +986,26 @@ public interface Tag<T extends Keyed> extends Keyed {
|
||||||
* Vanilla item tag representing all items which modify note block sounds when placed on top.
|
* Vanilla item tag representing all items which modify note block sounds when placed on top.
|
||||||
*/
|
*/
|
||||||
Tag<Material> ITEMS_NOTE_BLOCK_TOP_INSTRUMENTS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("noteblock_top_instruments"), Material.class);
|
Tag<Material> ITEMS_NOTE_BLOCK_TOP_INSTRUMENTS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("noteblock_top_instruments"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all foot armor.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_FOOT_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("foot_armor"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all leg armor.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_LEG_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("leg_armor"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all chest armor.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_CHEST_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("chest_armor"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all head armor.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_HEAD_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("head_armor"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all skulls.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_SKULLS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("skulls"), Material.class);
|
||||||
/**
|
/**
|
||||||
* Vanilla item tag representing all trimmable armor items.
|
* Vanilla item tag representing all trimmable armor items.
|
||||||
*/
|
*/
|
||||||
|
@ -836,10 +1018,6 @@ public interface Tag<T extends Keyed> extends Keyed {
|
||||||
* Vanilla item tag representing all trimming templates.
|
* Vanilla item tag representing all trimming templates.
|
||||||
*/
|
*/
|
||||||
Tag<Material> ITEMS_TRIM_TEMPLATES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trim_templates"), Material.class);
|
Tag<Material> ITEMS_TRIM_TEMPLATES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trim_templates"), Material.class);
|
||||||
/**
|
|
||||||
* Vanilla item tag representing all food for sniffers.
|
|
||||||
*/
|
|
||||||
Tag<Material> ITEMS_SNIFFER_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("sniffer_food"), Material.class);
|
|
||||||
/**
|
/**
|
||||||
* Vanilla item tag representing all decorated pot sherds.
|
* Vanilla item tag representing all decorated pot sherds.
|
||||||
*/
|
*/
|
||||||
|
@ -880,6 +1058,86 @@ public interface Tag<T extends Keyed> extends Keyed {
|
||||||
* Vanilla item tag representing all seeds planteable by villagers.
|
* Vanilla item tag representing all seeds planteable by villagers.
|
||||||
*/
|
*/
|
||||||
Tag<Material> ITEMS_VILLAGER_PLANTABLE_SEEDS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("villager_plantable_seeds"), Material.class);
|
Tag<Material> ITEMS_VILLAGER_PLANTABLE_SEEDS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("villager_plantable_seeds"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all dyeable items.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_DYEABLE = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("dyeable"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all enchantable foot armor.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_FOOT_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/foot_armor"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all enchantable leg armor.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_LEG_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/leg_armor"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all enchantable chest armor.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_CHEST_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/chest_armor"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all enchantable head armor.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_HEAD_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/head_armor"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all enchantable armor.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/armor"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all enchantable swords.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_SWORD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/sword"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all items enchantable with the fire aspect enchantment.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_FIRE_ASPECT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/fire_aspect"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all items enchantable with the sharpness enchantment.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_SHARP_WEAPON = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/sharp_weapon"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all enchantable weapons.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_WEAPON = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/weapon"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all enchantable mining tools.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_MINING = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/mining"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all items enchantable with the mining_loot enchantment.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_MINING_LOOT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/mining_loot"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all items enchantable with fishing enchantments.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_FISHING = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/fishing"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all items enchantable with trident enchantments.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_TRIDENT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/trident"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all items enchantable with durability enchantments.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_DURABILITY = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/durability"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all items enchantable with bow enchantments.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_BOW = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/bow"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all items enchantable with the binding enchantment.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_EQUIPPABLE = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/equippable"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all items enchantable with crossbow enchantments.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_CROSSBOW = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/crossbow"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all items enchantable with the vanishing enchantment.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_VANISHING = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/vanishing"), Material.class);
|
||||||
|
/**
|
||||||
|
* Vanilla item tag representing all items enchantable with mace enchantments.
|
||||||
|
*/
|
||||||
|
Tag<Material> ITEMS_ENCHANTABLE_MACE = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/mace"), Material.class);
|
||||||
/**
|
/**
|
||||||
* Vanilla item tag representing all items that confer freeze immunity on
|
* Vanilla item tag representing all items that confer freeze immunity on
|
||||||
* the wearer.
|
* the wearer.
|
||||||
|
@ -887,8 +1145,11 @@ public interface Tag<T extends Keyed> extends Keyed {
|
||||||
Tag<Material> FREEZE_IMMUNE_WEARABLES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("freeze_immune_wearables"), Material.class);
|
Tag<Material> FREEZE_IMMUNE_WEARABLES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("freeze_immune_wearables"), Material.class);
|
||||||
/**
|
/**
|
||||||
* Vanilla item tag representing all items which tempt axolotls.
|
* Vanilla item tag representing all items which tempt axolotls.
|
||||||
|
*
|
||||||
|
* @deprecated use {@link #ITEMS_AXOLOTL_FOOD}
|
||||||
*/
|
*/
|
||||||
Tag<Material> AXOLOTL_TEMPT_ITEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("axolotl_tempt_items"), Material.class);
|
@Deprecated
|
||||||
|
Tag<Material> AXOLOTL_TEMPT_ITEMS = ITEMS_AXOLOTL_FOOD;
|
||||||
/**
|
/**
|
||||||
* Vanilla item tag representing all items which are preferred for
|
* Vanilla item tag representing all items which are preferred for
|
||||||
* harvesting clusters (unused).
|
* harvesting clusters (unused).
|
||||||
|
@ -967,17 +1228,79 @@ public interface Tag<T extends Keyed> extends Keyed {
|
||||||
*/
|
*/
|
||||||
Tag<EntityType> ENTITY_TYPES_NON_CONTROLLING_RIDER = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("non_controlling_rider"), EntityType.class);
|
Tag<EntityType> ENTITY_TYPES_NON_CONTROLLING_RIDER = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("non_controlling_rider"), EntityType.class);
|
||||||
/**
|
/**
|
||||||
* Vanilla tag representing entities which deflect arrows.
|
* Vanilla tag representing entities which deflect projectiles.
|
||||||
*/
|
*/
|
||||||
Tag<EntityType> ENTITY_TYPES_DEFLECTS_ARROWS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("deflects_arrows"), EntityType.class);
|
Tag<EntityType> ENTITY_TYPES_DEFLECTS_PROJECTILES = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("deflects_projectiles"), EntityType.class);
|
||||||
/**
|
/**
|
||||||
* Vanilla tag representing entities which deflect tridents.
|
* Vanilla tag representing entities which deflect arrows.
|
||||||
|
* @deprecated use {@link #ENTITY_TYPES_DEFLECTS_PROJECTILES}
|
||||||
*/
|
*/
|
||||||
Tag<EntityType> ENTITY_TYPES_DEFLECTS_TRIDENTS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("deflects_tridents"), EntityType.class);
|
@Deprecated
|
||||||
|
Tag<EntityType> ENTITY_TYPES_DEFLECTS_ARROWS = ENTITY_TYPES_DEFLECTS_PROJECTILES;
|
||||||
/**
|
/**
|
||||||
* Vanilla tag representing entities which can turn in boats.
|
* Vanilla tag representing entities which can turn in boats.
|
||||||
*/
|
*/
|
||||||
Tag<EntityType> ENTITY_TYPES_CAN_TURN_IN_BOATS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("can_turn_in_boats"), EntityType.class);
|
Tag<EntityType> ENTITY_TYPES_CAN_TURN_IN_BOATS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("can_turn_in_boats"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all entities sensitive to illager enchantments.
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_ILLAGER = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("illager"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all entities sensitive to aquatic enchantments..
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_AQUATIC = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("aquatic"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all entities sensitive to arthropod enchantments..
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_ARTHROPOD = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("arthropod"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all entities which ignores poison and regeneration effects.
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_IGNORES_POISON_AND_REGEN = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("ignores_poison_and_regen"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all entities which are sensitive to inverted healing and harm potion effects.
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_INVERTED_HEALING_AND_HARM = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("inverted_healing_and_harm"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all entities which are friendly with withers.
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_WITHER_FRIENDS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("wither_friends"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all entities which are friendly with illagers.
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_ILLAGER_FRIENDS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("illager_friends"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all entities which are not scary for pufferfish.
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_NOT_SCARY_FOR_PUFFERFISH = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("not_scary_for_pufferfish"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all entities which are sensitive to impaling.
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_SENSITIVE_TO_IMPALING = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("sensitive_to_impaling"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all entities which are sensitive to the bane_of_arthropods enchantment.
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_SENSITIVE_TO_BANE_OF_ARTHROPODS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("sensitive_to_bane_of_arthropods"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all entities which are sensitive to the smite enchantment.
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_SENSITIVE_TO_SMITE = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("sensitive_to_smite"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all entities which do not receive anger from wind charges.
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_NO_ANGER_FROM_WIND_CHARGE = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("no_anger_from_wind_charge"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all entities which are immune from the oozing effect.
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_IMMUNE_TO_OOZING = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("immune_to_oozing"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all entities which are immune from the infested effect.
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_IMMUNE_TO_INFESTED = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("immune_to_infested"), EntityType.class);
|
||||||
|
/**
|
||||||
|
* Vanilla tag representing all projectiles which can be punched back.
|
||||||
|
*/
|
||||||
|
Tag<EntityType> ENTITY_TYPES_REDIRECTABLE_PROJECTILE = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("redirectable_projectile"), EntityType.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns whether or not this tag has an entry for the specified item.
|
* Returns whether or not this tag has an entry for the specified item.
|
||||||
|
|
|
@ -1556,7 +1556,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
||||||
* or not.
|
* or not.
|
||||||
*
|
*
|
||||||
* @return true if the world's spawn area will be kept loaded into memory.
|
* @return true if the world's spawn area will be kept loaded into memory.
|
||||||
|
* @deprecated use {@link GameRule#SPAWN_CHUNK_RADIUS} for finer control
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public boolean getKeepSpawnInMemory();
|
public boolean getKeepSpawnInMemory();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1565,7 +1567,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
||||||
*
|
*
|
||||||
* @param keepLoaded if true then the world's spawn area will be kept
|
* @param keepLoaded if true then the world's spawn area will be kept
|
||||||
* loaded into memory.
|
* loaded into memory.
|
||||||
|
* @deprecated use {@link GameRule#SPAWN_CHUNK_RADIUS} for finer control
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public void setKeepSpawnInMemory(boolean keepLoaded);
|
public void setKeepSpawnInMemory(boolean keepLoaded);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -51,6 +51,10 @@ public enum Attribute implements Keyed, Translatable {
|
||||||
* Armor durability bonus of an Entity.
|
* Armor durability bonus of an Entity.
|
||||||
*/
|
*/
|
||||||
GENERIC_ARMOR_TOUGHNESS("generic.armor_toughness"),
|
GENERIC_ARMOR_TOUGHNESS("generic.armor_toughness"),
|
||||||
|
/**
|
||||||
|
* The fall damage multiplier of an Entity.
|
||||||
|
*/
|
||||||
|
GENERIC_FALL_DAMAGE_MULTIPLIER("generic.fall_damage_multiplier"),
|
||||||
/**
|
/**
|
||||||
* Luck bonus of an Entity.
|
* Luck bonus of an Entity.
|
||||||
*/
|
*/
|
||||||
|
@ -60,9 +64,37 @@ public enum Attribute implements Keyed, Translatable {
|
||||||
*/
|
*/
|
||||||
GENERIC_MAX_ABSORPTION("generic.max_absorption"),
|
GENERIC_MAX_ABSORPTION("generic.max_absorption"),
|
||||||
/**
|
/**
|
||||||
* Strength with which a horse will jump.
|
* The distance which an Entity can fall without damage.
|
||||||
*/
|
*/
|
||||||
HORSE_JUMP_STRENGTH("horse.jump_strength"),
|
GENERIC_SAFE_FALL_DISTANCE("generic.safe_fall_distance"),
|
||||||
|
/**
|
||||||
|
* The relative scale of an Entity.
|
||||||
|
*/
|
||||||
|
GENERIC_SCALE("generic.scale"),
|
||||||
|
/**
|
||||||
|
* The height which an Entity can walk over.
|
||||||
|
*/
|
||||||
|
GENERIC_STEP_HEIGHT("generic.step_height"),
|
||||||
|
/**
|
||||||
|
* The gravity applied to an Entity.
|
||||||
|
*/
|
||||||
|
GENERIC_GRAVITY("generic.gravity"),
|
||||||
|
/**
|
||||||
|
* Strength with which an Entity will jump.
|
||||||
|
*/
|
||||||
|
GENERIC_JUMP_STRENGTH("generic.jump_strength"),
|
||||||
|
/**
|
||||||
|
* The block reach distance of a Player.
|
||||||
|
*/
|
||||||
|
PLAYER_BLOCK_INTERACTION_RANGE("player.block_interaction_range"),
|
||||||
|
/**
|
||||||
|
* The entity reach distance of a Player.
|
||||||
|
*/
|
||||||
|
PLAYER_ENTITY_INTERACTION_RANGE("player.entity_interaction_range"),
|
||||||
|
/**
|
||||||
|
* Block break speed of a Player.
|
||||||
|
*/
|
||||||
|
PLAYER_BLOCK_BREAK_SPEED("player.block_break_speed"),
|
||||||
/**
|
/**
|
||||||
* Chance of a zombie to spawn reinforcements.
|
* Chance of a zombie to spawn reinforcements.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -7,6 +7,7 @@ import java.util.Objects;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
||||||
import org.bukkit.inventory.EquipmentSlot;
|
import org.bukkit.inventory.EquipmentSlot;
|
||||||
|
import org.bukkit.inventory.EquipmentSlotGroup;
|
||||||
import org.bukkit.util.NumberConversions;
|
import org.bukkit.util.NumberConversions;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
@ -20,17 +21,21 @@ public class AttributeModifier implements ConfigurationSerializable {
|
||||||
private final String name;
|
private final String name;
|
||||||
private final double amount;
|
private final double amount;
|
||||||
private final Operation operation;
|
private final Operation operation;
|
||||||
private final EquipmentSlot slot;
|
private final EquipmentSlotGroup slot;
|
||||||
|
|
||||||
public AttributeModifier(@NotNull String name, double amount, @NotNull Operation operation) {
|
public AttributeModifier(@NotNull String name, double amount, @NotNull Operation operation) {
|
||||||
this(UUID.randomUUID(), name, amount, operation);
|
this(UUID.randomUUID(), name, amount, operation);
|
||||||
}
|
}
|
||||||
|
|
||||||
public AttributeModifier(@NotNull UUID uuid, @NotNull String name, double amount, @NotNull Operation operation) {
|
public AttributeModifier(@NotNull UUID uuid, @NotNull String name, double amount, @NotNull Operation operation) {
|
||||||
this(uuid, name, amount, operation, null);
|
this(uuid, name, amount, operation, (EquipmentSlotGroup) null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public AttributeModifier(@NotNull UUID uuid, @NotNull String name, double amount, @NotNull Operation operation, @Nullable EquipmentSlot slot) {
|
public AttributeModifier(@NotNull UUID uuid, @NotNull String name, double amount, @NotNull Operation operation, @Nullable EquipmentSlot slot) {
|
||||||
|
this(uuid, name, amount, operation, (slot) == null ? EquipmentSlotGroup.ANY : slot.getGroup());
|
||||||
|
}
|
||||||
|
|
||||||
|
public AttributeModifier(@NotNull UUID uuid, @NotNull String name, double amount, @NotNull Operation operation, @NotNull EquipmentSlotGroup slot) {
|
||||||
Preconditions.checkArgument(uuid != null, "UUID cannot be null");
|
Preconditions.checkArgument(uuid != null, "UUID cannot be null");
|
||||||
Preconditions.checkArgument(name != null, "Name cannot be null");
|
Preconditions.checkArgument(name != null, "Name cannot be null");
|
||||||
Preconditions.checkArgument(operation != null, "Operation cannot be null");
|
Preconditions.checkArgument(operation != null, "Operation cannot be null");
|
||||||
|
@ -85,9 +90,22 @@ public class AttributeModifier implements ConfigurationSerializable {
|
||||||
* or null if this modifier is applicable for any slot.
|
* or null if this modifier is applicable for any slot.
|
||||||
*
|
*
|
||||||
* @return the slot
|
* @return the slot
|
||||||
|
* @deprecated use {@link #getSlotGroup()}
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@Deprecated
|
||||||
public EquipmentSlot getSlot() {
|
public EquipmentSlot getSlot() {
|
||||||
|
return slot.getExample();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the {@link EquipmentSlot} this AttributeModifier is active on,
|
||||||
|
* or null if this modifier is applicable for any slot.
|
||||||
|
*
|
||||||
|
* @return the slot
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
public EquipmentSlotGroup getSlotGroup() {
|
||||||
return slot;
|
return slot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,8 +117,8 @@ public class AttributeModifier implements ConfigurationSerializable {
|
||||||
data.put("name", name);
|
data.put("name", name);
|
||||||
data.put("operation", operation.ordinal());
|
data.put("operation", operation.ordinal());
|
||||||
data.put("amount", amount);
|
data.put("amount", amount);
|
||||||
if (slot != null) {
|
if (slot != null && slot != EquipmentSlotGroup.ANY) {
|
||||||
data.put("slot", slot.name());
|
data.put("slot", slot.toString());
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -133,14 +151,24 @@ public class AttributeModifier implements ConfigurationSerializable {
|
||||||
+ ", name=" + this.name
|
+ ", name=" + this.name
|
||||||
+ ", operation=" + this.operation.name()
|
+ ", operation=" + this.operation.name()
|
||||||
+ ", amount=" + this.amount
|
+ ", amount=" + this.amount
|
||||||
+ ", slot=" + (this.slot != null ? this.slot.name() : "")
|
+ ", slot=" + (this.slot != null ? this.slot.toString() : "")
|
||||||
+ "}";
|
+ "}";
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static AttributeModifier deserialize(@NotNull Map<String, Object> args) {
|
public static AttributeModifier deserialize(@NotNull Map<String, Object> args) {
|
||||||
if (args.containsKey("slot")) {
|
if (args.containsKey("slot")) {
|
||||||
return new AttributeModifier(UUID.fromString((String) args.get("uuid")), (String) args.get("name"), NumberConversions.toDouble(args.get("amount")), Operation.values()[NumberConversions.toInt(args.get("operation"))], EquipmentSlot.valueOf((args.get("slot").toString().toUpperCase())));
|
EquipmentSlotGroup slotGroup = EquipmentSlotGroup.getByName(args.get("slot").toString().toLowerCase());
|
||||||
|
if (slotGroup == null) {
|
||||||
|
slotGroup = EquipmentSlotGroup.ANY;
|
||||||
|
|
||||||
|
EquipmentSlot slot = EquipmentSlot.valueOf((args.get("slot").toString().toUpperCase()));
|
||||||
|
if (slot != null) {
|
||||||
|
slotGroup = slot.getGroup();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new AttributeModifier(UUID.fromString((String) args.get("uuid")), (String) args.get("name"), NumberConversions.toDouble(args.get("amount")), Operation.values()[NumberConversions.toInt(args.get("operation"))], slotGroup);
|
||||||
}
|
}
|
||||||
return new AttributeModifier(UUID.fromString((String) args.get("uuid")), (String) args.get("name"), NumberConversions.toDouble(args.get("amount")), Operation.values()[NumberConversions.toInt(args.get("operation"))]);
|
return new AttributeModifier(UUID.fromString((String) args.get("uuid")), (String) args.get("name"), NumberConversions.toDouble(args.get("amount")), Operation.values()[NumberConversions.toInt(args.get("operation"))]);
|
||||||
}
|
}
|
||||||
|
|
12
paper-api/src/main/java/org/bukkit/block/Vault.java
Normal file
12
paper-api/src/main/java/org/bukkit/block/Vault.java
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
package org.bukkit.block;
|
||||||
|
|
||||||
|
import org.bukkit.MinecraftExperimental;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a captured state of a trial spawner.
|
||||||
|
*/
|
||||||
|
@MinecraftExperimental
|
||||||
|
@ApiStatus.Experimental
|
||||||
|
public interface Vault extends TileState {
|
||||||
|
}
|
|
@ -3,6 +3,7 @@ package org.bukkit.block.banner;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import org.bukkit.Keyed;
|
import org.bukkit.Keyed;
|
||||||
|
import org.bukkit.MinecraftExperimental;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.Registry;
|
import org.bukkit.Registry;
|
||||||
import org.jetbrains.annotations.Contract;
|
import org.jetbrains.annotations.Contract;
|
||||||
|
@ -50,7 +51,11 @@ public enum PatternType implements Keyed {
|
||||||
FLOWER("flo", "flower"),
|
FLOWER("flo", "flower"),
|
||||||
MOJANG("moj", "mojang"),
|
MOJANG("moj", "mojang"),
|
||||||
GLOBE("glb", "globe"),
|
GLOBE("glb", "globe"),
|
||||||
PIGLIN("pig", "piglin");
|
PIGLIN("pig", "piglin"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
FLOW("flw", "flow"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
GUSTER("gus", "guster");
|
||||||
|
|
||||||
private final String identifier;
|
private final String identifier;
|
||||||
private final NamespacedKey key;
|
private final NamespacedKey key;
|
||||||
|
@ -82,7 +87,7 @@ public enum PatternType implements Keyed {
|
||||||
* @deprecated magic value
|
* @deprecated magic value
|
||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
@Deprecated
|
@Deprecated(forRemoval = true)
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
return identifier;
|
return identifier;
|
||||||
}
|
}
|
||||||
|
@ -98,7 +103,7 @@ public enum PatternType implements Keyed {
|
||||||
*/
|
*/
|
||||||
@Contract("null -> null")
|
@Contract("null -> null")
|
||||||
@Nullable
|
@Nullable
|
||||||
@Deprecated
|
@Deprecated(forRemoval = true)
|
||||||
public static PatternType getByIdentifier(@Nullable String identifier) {
|
public static PatternType getByIdentifier(@Nullable String identifier) {
|
||||||
return byString.get(identifier);
|
return byString.get(identifier);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,8 @@ import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 'trial_spawner_state' indicates the current operational phase of the spawner.
|
* 'trial_spawner_state' indicates the current operational phase of the spawner.
|
||||||
|
* <br>
|
||||||
|
* 'ominous' indicates if the block has ominous effects.
|
||||||
*/
|
*/
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
@ApiStatus.Experimental
|
@ApiStatus.Experimental
|
||||||
|
@ -27,6 +29,20 @@ public interface TrialSpawner extends BlockData {
|
||||||
*/
|
*/
|
||||||
void setTrialSpawnerState(@NotNull State state);
|
void setTrialSpawnerState(@NotNull State state);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the 'ominous' property.
|
||||||
|
*
|
||||||
|
* @return the 'ominous' value
|
||||||
|
*/
|
||||||
|
boolean isOminous();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the 'ominous' property.
|
||||||
|
*
|
||||||
|
* @param ominous the new 'ominous' value
|
||||||
|
*/
|
||||||
|
void setOminous(boolean ominous);
|
||||||
|
|
||||||
public enum State {
|
public enum State {
|
||||||
|
|
||||||
INACTIVE,
|
INACTIVE,
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
package org.bukkit.block.data.type;
|
||||||
|
|
||||||
|
import org.bukkit.MinecraftExperimental;
|
||||||
|
import org.bukkit.block.data.Directional;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 'vault_state' indicates the current operational phase of the vault block.
|
||||||
|
* <br>
|
||||||
|
* 'ominous' indicates if the block has ominous effects.
|
||||||
|
*/
|
||||||
|
@MinecraftExperimental
|
||||||
|
@ApiStatus.Experimental
|
||||||
|
public interface Vault extends Directional {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the 'vault_state' property.
|
||||||
|
*
|
||||||
|
* @return the 'vault_state' value
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
State getTrialSpawnerState();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the 'vault_state' property.
|
||||||
|
*
|
||||||
|
* @param state the new 'vault_state' value
|
||||||
|
*/
|
||||||
|
void setTrialSpawnerState(@NotNull State state);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the 'ominous' property.
|
||||||
|
*
|
||||||
|
* @return the 'ominous' value
|
||||||
|
*/
|
||||||
|
boolean isOminous();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the 'ominous' property.
|
||||||
|
*
|
||||||
|
* @param ominous the new 'ominous' value
|
||||||
|
*/
|
||||||
|
void setOminous(boolean ominous);
|
||||||
|
|
||||||
|
public enum State {
|
||||||
|
|
||||||
|
INACTIVE,
|
||||||
|
ACTIVE,
|
||||||
|
UNLOCKING,
|
||||||
|
EJECTING
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +1,11 @@
|
||||||
package org.bukkit.block.spawner;
|
package org.bukkit.block.spawner;
|
||||||
|
|
||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
|
import java.util.Map;
|
||||||
import org.bukkit.entity.EntitySnapshot;
|
import org.bukkit.entity.EntitySnapshot;
|
||||||
|
import org.bukkit.inventory.EquipmentSlot;
|
||||||
|
import org.bukkit.loot.LootTable;
|
||||||
|
import org.bukkit.loot.LootTables;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
@ -13,13 +17,19 @@ public class SpawnerEntry {
|
||||||
private EntitySnapshot snapshot;
|
private EntitySnapshot snapshot;
|
||||||
private int spawnWeight;
|
private int spawnWeight;
|
||||||
private SpawnRule spawnRule;
|
private SpawnRule spawnRule;
|
||||||
|
private Equipment equipment;
|
||||||
|
|
||||||
public SpawnerEntry(@NotNull EntitySnapshot snapshot, int spawnWeight, @Nullable SpawnRule spawnRule) {
|
public SpawnerEntry(@NotNull EntitySnapshot snapshot, int spawnWeight, @Nullable SpawnRule spawnRule) {
|
||||||
|
this(snapshot, spawnWeight, spawnRule, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SpawnerEntry(@NotNull EntitySnapshot snapshot, int spawnWeight, @Nullable SpawnRule spawnRule, @Nullable Equipment equipment) {
|
||||||
Preconditions.checkArgument(snapshot != null, "Snapshot cannot be null");
|
Preconditions.checkArgument(snapshot != null, "Snapshot cannot be null");
|
||||||
|
|
||||||
this.snapshot = snapshot;
|
this.snapshot = snapshot;
|
||||||
this.spawnWeight = spawnWeight;
|
this.spawnWeight = spawnWeight;
|
||||||
this.spawnRule = spawnRule;
|
this.spawnRule = spawnRule;
|
||||||
|
this.equipment = equipment;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -82,4 +92,75 @@ public class SpawnerEntry {
|
||||||
public void setSpawnRule(@Nullable SpawnRule spawnRule) {
|
public void setSpawnRule(@Nullable SpawnRule spawnRule) {
|
||||||
this.spawnRule = spawnRule;
|
this.spawnRule = spawnRule;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the equipment which will be applied to the spawned entity.
|
||||||
|
*
|
||||||
|
* @return the equipment, or null
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
public Equipment getEquipment() {
|
||||||
|
return equipment;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the equipment which will be applied to the spawned entity.
|
||||||
|
*
|
||||||
|
* @param equipment new equipment, or null
|
||||||
|
*/
|
||||||
|
public void setEquipment(@Nullable Equipment equipment) {
|
||||||
|
this.equipment = equipment;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents the equipment loot table applied to a spawned entity.
|
||||||
|
*/
|
||||||
|
public static class Equipment {
|
||||||
|
|
||||||
|
private LootTable equipmentLootTable;
|
||||||
|
private final Map<EquipmentSlot, Float> dropChances;
|
||||||
|
|
||||||
|
public Equipment(@NotNull LootTable equipmentLootTable, @NotNull Map<EquipmentSlot, Float> dropChances) {
|
||||||
|
this.equipmentLootTable = equipmentLootTable;
|
||||||
|
this.dropChances = dropChances;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the loot table for the entity.
|
||||||
|
* <br>
|
||||||
|
* To remove a loot table use null. Do not use {@link LootTables#EMPTY}
|
||||||
|
* to clear a LootTable.
|
||||||
|
*
|
||||||
|
* @param table this {@link org.bukkit.entity.Mob} will have.
|
||||||
|
*/
|
||||||
|
public void setEquipmentLootTable(@NotNull LootTable table) {
|
||||||
|
this.equipmentLootTable = table;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the loot table for the entity.
|
||||||
|
* <br>
|
||||||
|
*
|
||||||
|
* If an entity does not have a loot table, this will return null, NOT
|
||||||
|
* an empty loot table.
|
||||||
|
*
|
||||||
|
* @return the loot table for this entity.
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
public LootTable getEquipmentLootTable() {
|
||||||
|
return this.equipmentLootTable;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets a mutable map of the drop chances for each slot of the entity.
|
||||||
|
* If non-null, the entity's drop chances will be overridden with the
|
||||||
|
* given value.
|
||||||
|
*
|
||||||
|
* @return mutable map of drop chances
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
public Map<EquipmentSlot, Float> getDropChances() {
|
||||||
|
return this.dropChances;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,7 @@ public interface DamageType extends Keyed, Translatable {
|
||||||
public static final DamageType ARROW = getDamageType("arrow");
|
public static final DamageType ARROW = getDamageType("arrow");
|
||||||
public static final DamageType TRIDENT = getDamageType("trident");
|
public static final DamageType TRIDENT = getDamageType("trident");
|
||||||
public static final DamageType MOB_PROJECTILE = getDamageType("mob_projectile");
|
public static final DamageType MOB_PROJECTILE = getDamageType("mob_projectile");
|
||||||
|
public static final DamageType SPIT = getDamageType("spit");
|
||||||
public static final DamageType FIREWORKS = getDamageType("fireworks");
|
public static final DamageType FIREWORKS = getDamageType("fireworks");
|
||||||
public static final DamageType FIREBALL = getDamageType("fireball");
|
public static final DamageType FIREBALL = getDamageType("fireball");
|
||||||
public static final DamageType UNATTRIBUTED_FIREBALL = getDamageType("unattributed_fireball");
|
public static final DamageType UNATTRIBUTED_FIREBALL = getDamageType("unattributed_fireball");
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.bukkit.enchantments;
|
||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import org.bukkit.Keyed;
|
import org.bukkit.Keyed;
|
||||||
|
import org.bukkit.MinecraftExperimental;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.Registry;
|
import org.bukkit.Registry;
|
||||||
import org.bukkit.Translatable;
|
import org.bukkit.Translatable;
|
||||||
|
@ -103,7 +104,7 @@ public abstract class Enchantment implements Keyed, Translatable {
|
||||||
/**
|
/**
|
||||||
* Increases damage against targets when using a sweep attack
|
* Increases damage against targets when using a sweep attack
|
||||||
*/
|
*/
|
||||||
public static final Enchantment SWEEPING_EDGE = getEnchantment("sweeping");
|
public static final Enchantment SWEEPING_EDGE = getEnchantment("sweeping_edge");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Increases the rate at which you mine/dig
|
* Increases the rate at which you mine/dig
|
||||||
|
@ -192,6 +193,24 @@ public abstract class Enchantment implements Keyed, Translatable {
|
||||||
*/
|
*/
|
||||||
public static final Enchantment PIERCING = getEnchantment("piercing");
|
public static final Enchantment PIERCING = getEnchantment("piercing");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Increases fall damage of maces
|
||||||
|
*/
|
||||||
|
@MinecraftExperimental
|
||||||
|
public static final Enchantment DENSITY = getEnchantment("density");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reduces armor effectiveness against maces
|
||||||
|
*/
|
||||||
|
@MinecraftExperimental
|
||||||
|
public static final Enchantment BREACH = getEnchantment("breach");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Emits wind burst upon hitting enemy
|
||||||
|
*/
|
||||||
|
@MinecraftExperimental
|
||||||
|
public static final Enchantment WIND_BURST = getEnchantment("wind_burst");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows mending the item using experience orbs
|
* Allows mending the item using experience orbs
|
||||||
*/
|
*/
|
||||||
|
@ -250,8 +269,10 @@ public abstract class Enchantment implements Keyed, Translatable {
|
||||||
* Gets the type of {@link ItemStack} that may fit this Enchantment.
|
* Gets the type of {@link ItemStack} that may fit this Enchantment.
|
||||||
*
|
*
|
||||||
* @return Target type of the Enchantment
|
* @return Target type of the Enchantment
|
||||||
|
* @deprecated enchantment groupings are now managed by tags, not categories
|
||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
|
@Deprecated
|
||||||
public abstract EnchantmentTarget getItemTarget();
|
public abstract EnchantmentTarget getItemTarget();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -373,8 +394,8 @@ public abstract class Enchantment implements Keyed, Translatable {
|
||||||
return "bane_of_arthropods";
|
return "bane_of_arthropods";
|
||||||
case "loot_bonus_mobs":
|
case "loot_bonus_mobs":
|
||||||
return "looting";
|
return "looting";
|
||||||
case "sweeping_edge":
|
case "sweeping":
|
||||||
return "sweeping";
|
return "sweeping_edge";
|
||||||
case "dig_speed":
|
case "dig_speed":
|
||||||
return "efficiency";
|
return "efficiency";
|
||||||
case "durability":
|
case "durability":
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package org.bukkit.entity;
|
||||||
|
|
||||||
|
import org.bukkit.MinecraftExperimental;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a Wind Charge.
|
||||||
|
*/
|
||||||
|
@MinecraftExperimental
|
||||||
|
@ApiStatus.Experimental
|
||||||
|
public interface AbstractWindCharge extends Fireball {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Immediately explode this WindCharge.
|
||||||
|
*/
|
||||||
|
public void explode();
|
||||||
|
|
||||||
|
}
|
|
@ -3,7 +3,6 @@ package org.bukkit.entity;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.Particle;
|
import org.bukkit.Particle;
|
||||||
import org.bukkit.potion.PotionData;
|
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
import org.bukkit.potion.PotionType;
|
import org.bukkit.potion.PotionType;
|
||||||
|
@ -146,38 +145,19 @@ public interface AreaEffectCloud extends Entity {
|
||||||
*/
|
*/
|
||||||
<T> void setParticle(@NotNull Particle particle, @Nullable T data);
|
<T> void setParticle(@NotNull Particle particle, @Nullable T data);
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the underlying potion data
|
|
||||||
*
|
|
||||||
* @param data PotionData to set the base potion state to
|
|
||||||
* @deprecated Upgraded / extended potions are now their own {@link PotionType} use {@link #setBasePotionType} instead.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
void setBasePotionData(@NotNull PotionData data);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the potion data about the base potion
|
|
||||||
*
|
|
||||||
* @return a PotionData object
|
|
||||||
* @deprecated Upgraded / extended potions are now their own {@link PotionType} use {@link #getBasePotionType()} instead.
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
@Deprecated
|
|
||||||
PotionData getBasePotionData();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the underlying potion type
|
* Sets the underlying potion type
|
||||||
*
|
*
|
||||||
* @param type PotionType to set the base potion state to
|
* @param type PotionType to set the base potion state to
|
||||||
*/
|
*/
|
||||||
void setBasePotionType(@NotNull PotionType type);
|
void setBasePotionType(@Nullable PotionType type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the potion type about the base potion
|
* Returns the potion type about the base potion
|
||||||
*
|
*
|
||||||
* @return a PotionType object
|
* @return a PotionType object
|
||||||
*/
|
*/
|
||||||
@NotNull
|
@Nullable
|
||||||
PotionType getBasePotionType();
|
PotionType getBasePotionType();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
8
paper-api/src/main/java/org/bukkit/entity/Armadillo.java
Normal file
8
paper-api/src/main/java/org/bukkit/entity/Armadillo.java
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
package org.bukkit.entity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents an Armadillo.
|
||||||
|
*/
|
||||||
|
public interface Armadillo extends Animals {
|
||||||
|
|
||||||
|
}
|
|
@ -2,7 +2,6 @@ package org.bukkit.entity;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.potion.PotionData;
|
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
import org.bukkit.potion.PotionType;
|
import org.bukkit.potion.PotionType;
|
||||||
|
@ -11,38 +10,19 @@ import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public interface Arrow extends AbstractArrow {
|
public interface Arrow extends AbstractArrow {
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the underlying potion data
|
|
||||||
*
|
|
||||||
* @param data PotionData to set the base potion state to
|
|
||||||
* @deprecated Upgraded / extended potions are now their own {@link PotionType} use {@link #setBasePotionType} instead.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
void setBasePotionData(@NotNull PotionData data);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the potion data about the base potion
|
|
||||||
*
|
|
||||||
* @return a PotionData object
|
|
||||||
* @deprecated Upgraded / extended potions are now their own {@link PotionType} use {@link #getBasePotionType()} instead.
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
@Deprecated
|
|
||||||
PotionData getBasePotionData();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the underlying potion type
|
* Sets the underlying potion type
|
||||||
*
|
*
|
||||||
* @param type PotionType to set the base potion state to
|
* @param type PotionType to set the base potion state to
|
||||||
*/
|
*/
|
||||||
void setBasePotionType(@NotNull PotionType type);
|
void setBasePotionType(@Nullable PotionType type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the potion type about the base potion
|
* Returns the potion type about the base potion
|
||||||
*
|
*
|
||||||
* @return a PotionType object
|
* @return a PotionType object
|
||||||
*/
|
*/
|
||||||
@NotNull
|
@Nullable
|
||||||
PotionType getBasePotionType();
|
PotionType getBasePotionType();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
12
paper-api/src/main/java/org/bukkit/entity/Bogged.java
Normal file
12
paper-api/src/main/java/org/bukkit/entity/Bogged.java
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
package org.bukkit.entity;
|
||||||
|
|
||||||
|
import org.bukkit.MinecraftExperimental;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a Bogged Skeleton.
|
||||||
|
*/
|
||||||
|
@MinecraftExperimental
|
||||||
|
@ApiStatus.Experimental
|
||||||
|
public interface Bogged extends AbstractSkeleton {
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package org.bukkit.entity;
|
||||||
|
|
||||||
|
import org.bukkit.MinecraftExperimental;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a Wind Charge.
|
||||||
|
*/
|
||||||
|
@MinecraftExperimental
|
||||||
|
@ApiStatus.Experimental
|
||||||
|
public interface BreezeWindCharge extends AbstractWindCharge {
|
||||||
|
|
||||||
|
}
|
|
@ -292,6 +292,16 @@ public enum EntityType implements Keyed, Translatable {
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
@ApiStatus.Experimental
|
@ApiStatus.Experimental
|
||||||
WIND_CHARGE("wind_charge", WindCharge.class, -1),
|
WIND_CHARGE("wind_charge", WindCharge.class, -1),
|
||||||
|
@MinecraftExperimental
|
||||||
|
@ApiStatus.Experimental
|
||||||
|
BREEZE_WIND_CHARGE("breeze_wind_charge", BreezeWindCharge.class, -1),
|
||||||
|
ARMADILLO("armadillo", Armadillo.class, -1),
|
||||||
|
@MinecraftExperimental
|
||||||
|
@ApiStatus.Experimental
|
||||||
|
BOGGED("bogged", Bogged.class, -1),
|
||||||
|
@MinecraftExperimental
|
||||||
|
@ApiStatus.Experimental
|
||||||
|
OMINOUS_ITEM_SPAWNER("ominous_item_spawner", OminousItemSpawner.class, -1),
|
||||||
/**
|
/**
|
||||||
* A fishing line and bobber.
|
* A fishing line and bobber.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -758,8 +758,10 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
||||||
* debuffs.
|
* debuffs.
|
||||||
*
|
*
|
||||||
* @return the entity category
|
* @return the entity category
|
||||||
|
* @deprecated entity groupings are now managed by tags, not categories
|
||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
|
@Deprecated
|
||||||
public EntityCategory getCategory();
|
public EntityCategory getCategory();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
package org.bukkit.entity;
|
||||||
|
|
||||||
|
import org.bukkit.MinecraftExperimental;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents an ominous item spawner.
|
||||||
|
*/
|
||||||
|
@MinecraftExperimental
|
||||||
|
@ApiStatus.Experimental
|
||||||
|
public interface OminousItemSpawner extends Entity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the item which will be spawned by this spawner.
|
||||||
|
*
|
||||||
|
* @return the item
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
ItemStack getItem();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the item which will be spawned by this spawner.
|
||||||
|
*
|
||||||
|
* @param item the item
|
||||||
|
*/
|
||||||
|
void setItem(@Nullable ItemStack item);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the ticks after which this item will be spawned.
|
||||||
|
*
|
||||||
|
* @return total spawn ticks
|
||||||
|
*/
|
||||||
|
long getSpawnItemAfterTicks();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the ticks after which this item will be spawned.
|
||||||
|
*
|
||||||
|
* @param ticks total spawn ticks
|
||||||
|
*/
|
||||||
|
void setSpawnItemAfterTicks(long ticks);
|
||||||
|
}
|
|
@ -8,6 +8,7 @@ import java.util.Collection;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
import org.bukkit.BanEntry;
|
import org.bukkit.BanEntry;
|
||||||
import org.bukkit.DyeColor;
|
import org.bukkit.DyeColor;
|
||||||
import org.bukkit.Effect;
|
import org.bukkit.Effect;
|
||||||
|
@ -15,6 +16,7 @@ import org.bukkit.GameMode;
|
||||||
import org.bukkit.Instrument;
|
import org.bukkit.Instrument;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.Note;
|
import org.bukkit.Note;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.Particle;
|
import org.bukkit.Particle;
|
||||||
|
@ -165,6 +167,48 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||||
@Nullable
|
@Nullable
|
||||||
public InetSocketAddress getAddress();
|
public InetSocketAddress getAddress();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets if this connection has been transferred from another server.
|
||||||
|
*
|
||||||
|
* @return true if the connection has been transferred
|
||||||
|
*/
|
||||||
|
public boolean isTransferred();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves a cookie from this player.
|
||||||
|
*
|
||||||
|
* @param key the key identifying the cookie cookie
|
||||||
|
* @return a {@link CompletableFuture} that will be completed when the
|
||||||
|
* Cookie response is received or otherwise available. If the cookie is not
|
||||||
|
* set in the client, the {@link CompletableFuture} will complete with a
|
||||||
|
* null value.
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
@ApiStatus.Experimental
|
||||||
|
CompletableFuture<byte[]> retrieveCookie(@NotNull NamespacedKey key);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stores a cookie in this player's client.
|
||||||
|
*
|
||||||
|
* @param key the key identifying the cookie cookie
|
||||||
|
* @param value the data to store in the cookie
|
||||||
|
* @throws IllegalStateException if a cookie cannot be stored at this time
|
||||||
|
*/
|
||||||
|
@ApiStatus.Experimental
|
||||||
|
void storeCookie(@NotNull NamespacedKey key, @NotNull byte[] value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Requests this player to connect to a different server specified by host
|
||||||
|
* and port.
|
||||||
|
*
|
||||||
|
* @param host the host of the server to transfer to
|
||||||
|
* @param port the port of the server to transfer to
|
||||||
|
* @throws IllegalStateException if a transfer cannot take place at this
|
||||||
|
* time
|
||||||
|
*/
|
||||||
|
@ApiStatus.Experimental
|
||||||
|
void transfer(@NotNull String host, int port);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends this sender a message raw
|
* Sends this sender a message raw
|
||||||
*
|
*
|
||||||
|
|
|
@ -62,6 +62,10 @@ public interface Skeleton extends AbstractSkeleton {
|
||||||
/**
|
/**
|
||||||
* Stray skeleton. Generally found in ice biomes. Shoots tipped arrows.
|
* Stray skeleton. Generally found in ice biomes. Shoots tipped arrows.
|
||||||
*/
|
*/
|
||||||
STRAY;
|
STRAY,
|
||||||
|
/**
|
||||||
|
* Bogged skeleton.
|
||||||
|
*/
|
||||||
|
BOGGED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,11 +8,6 @@ import org.jetbrains.annotations.ApiStatus;
|
||||||
*/
|
*/
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
@ApiStatus.Experimental
|
@ApiStatus.Experimental
|
||||||
public interface WindCharge extends Fireball {
|
public interface WindCharge extends AbstractWindCharge {
|
||||||
|
|
||||||
/**
|
|
||||||
* Immediately explode this WindCharge.
|
|
||||||
*/
|
|
||||||
public void explode();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
package org.bukkit.entity;
|
package org.bukkit.entity;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
import org.bukkit.DyeColor;
|
import org.bukkit.DyeColor;
|
||||||
|
import org.bukkit.Keyed;
|
||||||
|
import org.bukkit.NamespacedKey;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -67,4 +70,46 @@ public interface Wolf extends Tameable, Sittable {
|
||||||
* @param interested Whether the wolf is interested
|
* @param interested Whether the wolf is interested
|
||||||
*/
|
*/
|
||||||
public void setInterested(boolean interested);
|
public void setInterested(boolean interested);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the variant of this wolf.
|
||||||
|
*
|
||||||
|
* @return wolf variant
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
Variant getVariant();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the variant of this wolf.
|
||||||
|
*
|
||||||
|
* @param variant wolf variant
|
||||||
|
*/
|
||||||
|
void setVariant(@NotNull Variant variant);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents the variant of a wolf.
|
||||||
|
*/
|
||||||
|
public enum Variant implements Keyed {
|
||||||
|
|
||||||
|
PALE,
|
||||||
|
SPOTTED,
|
||||||
|
SNOWY,
|
||||||
|
BLACK,
|
||||||
|
ASHEN,
|
||||||
|
RUSTY,
|
||||||
|
WOODS,
|
||||||
|
CHESTNUT,
|
||||||
|
STRIPED;
|
||||||
|
private final NamespacedKey key;
|
||||||
|
|
||||||
|
private Variant() {
|
||||||
|
this.key = NamespacedKey.minecraft(name().toLowerCase(Locale.ROOT));
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public NamespacedKey getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,7 +112,9 @@ public class EntityShootBowEvent extends EntityEvent implements Cancellable {
|
||||||
* consumed).
|
* consumed).
|
||||||
*
|
*
|
||||||
* @param consumeItem whether or not to consume the item
|
* @param consumeItem whether or not to consume the item
|
||||||
|
* @deprecated not currently functional
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public void setConsumeItem(boolean consumeItem) {
|
public void setConsumeItem(boolean consumeItem) {
|
||||||
this.consumeItem = consumeItem;
|
this.consumeItem = consumeItem;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,19 +18,26 @@ public class AsyncPlayerPreLoginEvent extends Event {
|
||||||
private final String name;
|
private final String name;
|
||||||
private final InetAddress ipAddress;
|
private final InetAddress ipAddress;
|
||||||
private final UUID uniqueId;
|
private final UUID uniqueId;
|
||||||
|
private final boolean transferred;
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress) {
|
public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress) {
|
||||||
this(name, ipAddress, null);
|
this(name, ipAddress, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId) {
|
public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId) {
|
||||||
|
this(name, ipAddress, uniqueId, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId, boolean transferred) {
|
||||||
super(true);
|
super(true);
|
||||||
this.result = Result.ALLOWED;
|
this.result = Result.ALLOWED;
|
||||||
this.message = "";
|
this.message = "";
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.ipAddress = ipAddress;
|
this.ipAddress = ipAddress;
|
||||||
this.uniqueId = uniqueId;
|
this.uniqueId = uniqueId;
|
||||||
|
this.transferred = transferred;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -163,6 +170,15 @@ public class AsyncPlayerPreLoginEvent extends Event {
|
||||||
return uniqueId;
|
return uniqueId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets if this connection has been transferred from another server.
|
||||||
|
*
|
||||||
|
* @return true if the connection has been transferred
|
||||||
|
*/
|
||||||
|
public boolean isTransferred() {
|
||||||
|
return transferred;
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public HandlerList getHandlers() {
|
public HandlerList getHandlers() {
|
||||||
|
|
|
@ -1,11 +1,35 @@
|
||||||
package org.bukkit.inventory;
|
package org.bukkit.inventory;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public enum EquipmentSlot {
|
public enum EquipmentSlot {
|
||||||
|
|
||||||
HAND,
|
HAND(EquipmentSlotGroup.MAINHAND),
|
||||||
OFF_HAND,
|
OFF_HAND(EquipmentSlotGroup.OFFHAND),
|
||||||
FEET,
|
FEET(EquipmentSlotGroup.FEET),
|
||||||
LEGS,
|
LEGS(EquipmentSlotGroup.LEGS),
|
||||||
CHEST,
|
CHEST(EquipmentSlotGroup.CHEST),
|
||||||
HEAD
|
HEAD(EquipmentSlotGroup.HEAD),
|
||||||
|
/**
|
||||||
|
* Only for certain entities such as horses and wolves.
|
||||||
|
*/
|
||||||
|
BODY(EquipmentSlotGroup.ARMOR);
|
||||||
|
|
||||||
|
private final EquipmentSlotGroup group;
|
||||||
|
|
||||||
|
private EquipmentSlot(/*@NotNull*/ EquipmentSlotGroup group) {
|
||||||
|
this.group = group;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the {@link EquipmentSlotGroup} corresponding to this slot.
|
||||||
|
*
|
||||||
|
* @return corresponding {@link EquipmentSlotGroup}
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
@ApiStatus.Internal
|
||||||
|
public EquipmentSlotGroup getGroup() {
|
||||||
|
return group;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
package org.bukkit.inventory;
|
||||||
|
|
||||||
|
import com.google.common.base.Preconditions;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.function.Predicate;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a group of {@link EquipmentSlot}.
|
||||||
|
*/
|
||||||
|
@ApiStatus.Experimental
|
||||||
|
public final class EquipmentSlotGroup implements Predicate<EquipmentSlot> {
|
||||||
|
|
||||||
|
private static final Map<String, EquipmentSlotGroup> BY_NAME = new HashMap<>();
|
||||||
|
//
|
||||||
|
public static final EquipmentSlotGroup ANY = get("any", (test) -> true, EquipmentSlot.HAND);
|
||||||
|
public static final EquipmentSlotGroup MAINHAND = get("mainhand", EquipmentSlot.HAND);
|
||||||
|
public static final EquipmentSlotGroup OFFHAND = get("offhand", EquipmentSlot.OFF_HAND);
|
||||||
|
public static final EquipmentSlotGroup HAND = get("hand", (test) -> test == EquipmentSlot.HAND || test == EquipmentSlot.OFF_HAND, EquipmentSlot.HAND);
|
||||||
|
public static final EquipmentSlotGroup FEET = get("feet", EquipmentSlot.FEET);
|
||||||
|
public static final EquipmentSlotGroup LEGS = get("legs", EquipmentSlot.LEGS);
|
||||||
|
public static final EquipmentSlotGroup CHEST = get("chest", EquipmentSlot.CHEST);
|
||||||
|
public static final EquipmentSlotGroup HEAD = get("head", EquipmentSlot.HEAD);
|
||||||
|
public static final EquipmentSlotGroup ARMOR = get("armor", (test) -> test == EquipmentSlot.FEET || test == EquipmentSlot.LEGS || test == EquipmentSlot.CHEST || test == EquipmentSlot.HEAD, EquipmentSlot.CHEST);
|
||||||
|
//
|
||||||
|
private final String key;
|
||||||
|
private final Predicate<EquipmentSlot> predicate;
|
||||||
|
private final EquipmentSlot example;
|
||||||
|
|
||||||
|
private EquipmentSlotGroup(@NotNull String key, @NotNull Predicate<EquipmentSlot> predicate, @NotNull EquipmentSlot example) {
|
||||||
|
this.key = key;
|
||||||
|
this.predicate = predicate;
|
||||||
|
this.example = example;
|
||||||
|
|
||||||
|
BY_NAME.put(key, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean test(@NotNull EquipmentSlot test) {
|
||||||
|
return this.predicate.test(test);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return this.key;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets an {@link EquipmentSlot} which is an example of a slot in this
|
||||||
|
* group.
|
||||||
|
*
|
||||||
|
* @return an example slot
|
||||||
|
* @deprecated for internal compatibility use only
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
@Deprecated
|
||||||
|
@ApiStatus.Internal
|
||||||
|
public EquipmentSlot getExample() {
|
||||||
|
return example;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the {@link EquipmentSlotGroup} corresponding to the given string.
|
||||||
|
*
|
||||||
|
* @param name group name
|
||||||
|
* @return associated group or null
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
@ApiStatus.Internal
|
||||||
|
public static EquipmentSlotGroup getByName(@NotNull String name) {
|
||||||
|
Preconditions.checkArgument(name != null, "Name cannot be null");
|
||||||
|
|
||||||
|
return BY_NAME.get(name.toLowerCase(java.util.Locale.ENGLISH));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static EquipmentSlotGroup get(@NotNull String key, @NotNull EquipmentSlot slot) {
|
||||||
|
return get(key, (test) -> test == slot, slot);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static EquipmentSlotGroup get(@NotNull String key, @NotNull Predicate<EquipmentSlot> predicate, @NotNull EquipmentSlot example) {
|
||||||
|
return new EquipmentSlotGroup(key, predicate, example);
|
||||||
|
}
|
||||||
|
}
|
25
paper-api/src/main/java/org/bukkit/inventory/ItemRarity.java
Normal file
25
paper-api/src/main/java/org/bukkit/inventory/ItemRarity.java
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
package org.bukkit.inventory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A item's rarity determines the default color of its name. This enum is
|
||||||
|
* ordered from least rare to most rare.
|
||||||
|
*/
|
||||||
|
public enum ItemRarity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* White item name.
|
||||||
|
*/
|
||||||
|
COMMON,
|
||||||
|
/**
|
||||||
|
* Yellow item name.
|
||||||
|
*/
|
||||||
|
UNCOMMON,
|
||||||
|
/**
|
||||||
|
* Aqua item name.
|
||||||
|
*/
|
||||||
|
RARE,
|
||||||
|
/**
|
||||||
|
* Light purple item name.
|
||||||
|
*/
|
||||||
|
EPIC;
|
||||||
|
}
|
|
@ -1,32 +1,11 @@
|
||||||
package org.bukkit.inventory.meta;
|
package org.bukkit.inventory.meta;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.bukkit.DyeColor;
|
|
||||||
import org.bukkit.block.banner.Pattern;
|
import org.bukkit.block.banner.Pattern;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
public interface BannerMeta extends ItemMeta {
|
public interface BannerMeta extends ItemMeta {
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the base color for this banner
|
|
||||||
*
|
|
||||||
* @return the base color
|
|
||||||
* @deprecated banner color is now stored as the data value, not meta.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
@Nullable
|
|
||||||
DyeColor getBaseColor();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the base color for this banner
|
|
||||||
*
|
|
||||||
* @param color the base color
|
|
||||||
* @deprecated banner color is now stored as the data value, not meta.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
void setBaseColor(@Nullable DyeColor color);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a list of patterns on this banner
|
* Returns a list of patterns on this banner
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,15 +1,14 @@
|
||||||
package org.bukkit.inventory.meta;
|
package org.bukkit.inventory.meta;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a book ({@link Material#WRITABLE_BOOK} or {@link
|
* Represents a {@link Material#WRITTEN_BOOK}) that can have a title, an author,
|
||||||
* Material#WRITTEN_BOOK}) that can have a title, an author, and pages.
|
* and pages.
|
||||||
*/
|
*/
|
||||||
public interface BookMeta extends ItemMeta {
|
public interface BookMeta extends WritableBookMeta {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the generation (or level of copying) of a written book
|
* Represents the generation (or level of copying) of a written book
|
||||||
|
@ -111,77 +110,6 @@ public interface BookMeta extends ItemMeta {
|
||||||
*/
|
*/
|
||||||
void setGeneration(@Nullable Generation generation);
|
void setGeneration(@Nullable Generation generation);
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks for the existence of pages in the book.
|
|
||||||
*
|
|
||||||
* @return true if the book has pages
|
|
||||||
*/
|
|
||||||
boolean hasPages();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the specified page in the book. The given page must exist.
|
|
||||||
* <p>
|
|
||||||
* Pages are 1-indexed.
|
|
||||||
*
|
|
||||||
* @param page the page number to get, in range [1, getPageCount()]
|
|
||||||
* @return the page from the book
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
String getPage(int page);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the specified page in the book. Pages of the book must be
|
|
||||||
* contiguous.
|
|
||||||
* <p>
|
|
||||||
* The data can be up to 1024 characters in length, additional characters
|
|
||||||
* are truncated.
|
|
||||||
* <p>
|
|
||||||
* Pages are 1-indexed.
|
|
||||||
*
|
|
||||||
* @param page the page number to set, in range [1, getPageCount()]
|
|
||||||
* @param data the data to set for that page
|
|
||||||
*/
|
|
||||||
void setPage(int page, @NotNull String data);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets all the pages in the book.
|
|
||||||
*
|
|
||||||
* @return list of all the pages in the book
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
List<String> getPages();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Clears the existing book pages, and sets the book to use the provided
|
|
||||||
* pages. Maximum 100 pages with 1024 characters per page.
|
|
||||||
*
|
|
||||||
* @param pages A list of pages to set the book to use
|
|
||||||
*/
|
|
||||||
void setPages(@NotNull List<String> pages);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Clears the existing book pages, and sets the book to use the provided
|
|
||||||
* pages. Maximum 100 pages with 1024 characters per page.
|
|
||||||
*
|
|
||||||
* @param pages A list of strings, each being a page
|
|
||||||
*/
|
|
||||||
void setPages(@NotNull String... pages);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds new pages to the end of the book. Up to a maximum of 100 pages with
|
|
||||||
* 1024 characters per page.
|
|
||||||
*
|
|
||||||
* @param pages A list of strings, each being a page
|
|
||||||
*/
|
|
||||||
void addPage(@NotNull String... pages);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the number of pages in the book.
|
|
||||||
*
|
|
||||||
* @return the number of pages in the book
|
|
||||||
*/
|
|
||||||
int getPageCount();
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
BookMeta clone();
|
BookMeta clone();
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package org.bukkit.inventory.meta;
|
package org.bukkit.inventory.meta;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents an item that has durability and can take damage.
|
* Represents an item that has durability and can take damage.
|
||||||
|
@ -28,6 +29,29 @@ public interface Damageable extends ItemMeta {
|
||||||
*/
|
*/
|
||||||
void setDamage(int damage);
|
void setDamage(int damage);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks to see if this item has a maximum amount of damage.
|
||||||
|
*
|
||||||
|
* @return true if this has maximum amount of damage
|
||||||
|
*/
|
||||||
|
boolean hasMaxDamage();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the maximum amount of damage.
|
||||||
|
*
|
||||||
|
* Plugins should check {@link #hasMaxDamage()} before calling this method.
|
||||||
|
*
|
||||||
|
* @return the maximum amount of damage
|
||||||
|
*/
|
||||||
|
int getMaxDamage();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the maximum amount of damage.
|
||||||
|
*
|
||||||
|
* @param maxDamage maximum amount of damage
|
||||||
|
*/
|
||||||
|
void setMaxDamage(@Nullable Integer maxDamage);
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
Damageable clone();
|
Damageable clone();
|
||||||
|
|
|
@ -11,6 +11,8 @@ import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.inventory.EquipmentSlot;
|
import org.bukkit.inventory.EquipmentSlot;
|
||||||
import org.bukkit.inventory.ItemFlag;
|
import org.bukkit.inventory.ItemFlag;
|
||||||
|
import org.bukkit.inventory.ItemRarity;
|
||||||
|
import org.bukkit.inventory.meta.components.FoodComponent;
|
||||||
import org.bukkit.inventory.meta.tags.CustomItemTagContainer;
|
import org.bukkit.inventory.meta.tags.CustomItemTagContainer;
|
||||||
import org.bukkit.persistence.PersistentDataHolder;
|
import org.bukkit.persistence.PersistentDataHolder;
|
||||||
import org.jetbrains.annotations.ApiStatus;
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
@ -50,11 +52,47 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
|
||||||
*/
|
*/
|
||||||
void setDisplayName(@Nullable String name);
|
void setDisplayName(@Nullable String name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks for existence of an item name.
|
||||||
|
* <br>
|
||||||
|
* Item name differs from display name in that it is cannot be edited by an
|
||||||
|
* anvil, is not styled with italics, and does not show labels.
|
||||||
|
*
|
||||||
|
* @return true if this has an item name
|
||||||
|
*/
|
||||||
|
boolean hasItemName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the item name that is set.
|
||||||
|
* <br>
|
||||||
|
* Item name differs from display name in that it is cannot be edited by an
|
||||||
|
* anvil, is not styled with italics, and does not show labels.
|
||||||
|
* <p>
|
||||||
|
* Plugins should check that hasItemName() returns <code>true</code> before
|
||||||
|
* calling this method.
|
||||||
|
*
|
||||||
|
* @return the item name that is set
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
String getItemName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the item name.
|
||||||
|
* <br>
|
||||||
|
* Item name differs from display name in that it is cannot be edited by an
|
||||||
|
* anvil, is not styled with italics, and does not show labels.
|
||||||
|
*
|
||||||
|
* @param name the name to set
|
||||||
|
*/
|
||||||
|
void setItemName(@Nullable String name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks for existence of a localized name.
|
* Checks for existence of a localized name.
|
||||||
*
|
*
|
||||||
* @return true if this has a localized name
|
* @return true if this has a localized name
|
||||||
|
* @deprecated meta no longer exists
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true)
|
||||||
boolean hasLocalizedName();
|
boolean hasLocalizedName();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -64,15 +102,19 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
|
||||||
* before calling this method.
|
* before calling this method.
|
||||||
*
|
*
|
||||||
* @return the localized name that is set
|
* @return the localized name that is set
|
||||||
|
* @deprecated meta no longer exists
|
||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
|
@Deprecated(forRemoval = true)
|
||||||
String getLocalizedName();
|
String getLocalizedName();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the localized name.
|
* Sets the localized name.
|
||||||
*
|
*
|
||||||
* @param name the name to set
|
* @param name the name to set
|
||||||
|
* @deprecated meta no longer exists
|
||||||
*/
|
*/
|
||||||
|
@Deprecated(forRemoval = true)
|
||||||
void setLocalizedName(@Nullable String name);
|
void setLocalizedName(@Nullable String name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -231,6 +273,22 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
|
||||||
*/
|
*/
|
||||||
boolean hasItemFlag(@NotNull ItemFlag flag);
|
boolean hasItemFlag(@NotNull ItemFlag flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets if this item has hide_tooltip set. An item with this set will not
|
||||||
|
* show any tooltip whatsoever.
|
||||||
|
*
|
||||||
|
* @return hide_tooltip
|
||||||
|
*/
|
||||||
|
boolean isHideTooltip();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets if this item has hide_tooltip set. An item with this set will not
|
||||||
|
* show any tooltip whatsoever.
|
||||||
|
*
|
||||||
|
* @param hideTooltip new hide_tooltip
|
||||||
|
*/
|
||||||
|
void setHideTooltip(boolean hideTooltip);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return if the unbreakable tag is true. An unbreakable item will not lose
|
* Return if the unbreakable tag is true. An unbreakable item will not lose
|
||||||
* durability.
|
* durability.
|
||||||
|
@ -246,6 +304,120 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
|
||||||
*/
|
*/
|
||||||
void setUnbreakable(boolean unbreakable);
|
void setUnbreakable(boolean unbreakable);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets if an enchantment_glint_override is set.
|
||||||
|
*
|
||||||
|
* @return if an enchantment_glint_override is set
|
||||||
|
*/
|
||||||
|
boolean hasEnchantmentGlintOverride();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the enchantment_glint_override. If true, the item will glint, even
|
||||||
|
* without enchantments; if false, the item will not glint, even with
|
||||||
|
* enchantments.
|
||||||
|
*
|
||||||
|
* Plugins should check {@link #hasEnchantmentGlintOverride()} before
|
||||||
|
* calling this method.
|
||||||
|
*
|
||||||
|
* @return enchantment_glint_override
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
Boolean getEnchantmentGlintOverride();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the enchantment_glint_override. If true, the item will glint, even
|
||||||
|
* without enchantments; if false, the item will not glint, even with
|
||||||
|
* enchantments. If null, the override will be cleared.
|
||||||
|
*
|
||||||
|
* @param override new enchantment_glint_override
|
||||||
|
*/
|
||||||
|
void setEnchantmentGlintOverride(@Nullable Boolean override);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if this item is fire_resistant. If true, it will not burn in fire
|
||||||
|
* or lava.
|
||||||
|
*
|
||||||
|
* @return fire_resistant
|
||||||
|
*/
|
||||||
|
boolean isFireResistant();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets if this item is fire_resistant. If true, it will not burn in fire
|
||||||
|
* or lava.
|
||||||
|
*
|
||||||
|
* @param fireResistant fire_resistant
|
||||||
|
*/
|
||||||
|
void setFireResistant(boolean fireResistant);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets if the max_stack_size is set.
|
||||||
|
*
|
||||||
|
* @return if a max_stack_size is set.
|
||||||
|
*/
|
||||||
|
boolean hasMaxStackSize();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the max_stack_size. This is the maximum amount which an item will
|
||||||
|
* stack.
|
||||||
|
*
|
||||||
|
* @return max_stack_size
|
||||||
|
*/
|
||||||
|
int getMaxStackSize();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the max_stack_size. This is the maximum amount which an item will
|
||||||
|
* stack.
|
||||||
|
*
|
||||||
|
* @param max max_stack_size, between 1 and 99 (inclusive)
|
||||||
|
*/
|
||||||
|
void setMaxStackSize(@Nullable Integer max);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets if the rarity is set.
|
||||||
|
*
|
||||||
|
* @return rarity
|
||||||
|
*/
|
||||||
|
boolean hasRarity();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the item rarity.
|
||||||
|
*
|
||||||
|
* Plugins should check {@link #hasRarity()} before calling this method.
|
||||||
|
*
|
||||||
|
* @return rarity
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
ItemRarity getRarity();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the item rarity.
|
||||||
|
*
|
||||||
|
* @param rarity new rarity
|
||||||
|
*/
|
||||||
|
void setRarity(@Nullable ItemRarity rarity);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the food is set.
|
||||||
|
*
|
||||||
|
* @return if a food is set
|
||||||
|
*/
|
||||||
|
boolean hasFood();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the food set on this item, or creates an empty food instance.
|
||||||
|
*
|
||||||
|
* @return food
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
FoodComponent getFood();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the item food.
|
||||||
|
*
|
||||||
|
* @param food new food
|
||||||
|
*/
|
||||||
|
void setFood(@Nullable FoodComponent food);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks for the existence of any AttributeModifiers.
|
* Checks for the existence of any AttributeModifiers.
|
||||||
*
|
*
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
package org.bukkit.inventory.meta;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a map that can be scalable.
|
||||||
|
*/
|
||||||
|
public interface OminousBottleMeta extends ItemMeta {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks for the presence of an amplifier.
|
||||||
|
*
|
||||||
|
* @return true if a customer amplifier is applied
|
||||||
|
*/
|
||||||
|
boolean hasAmplifier();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the amplifier amount for an Ominous Bottle's bad omen effect.
|
||||||
|
* <p>
|
||||||
|
* Plugins should check that hasAmplifier() returns true before calling this
|
||||||
|
* method.
|
||||||
|
*
|
||||||
|
* @return amplifier
|
||||||
|
*/
|
||||||
|
int getAmplifier();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the amplifier amount for an Ominous Bottle's bad omen effect.
|
||||||
|
*
|
||||||
|
* @param amplifier between 0 and 4
|
||||||
|
*/
|
||||||
|
void setAmplifier(int amplifier);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
OminousBottleMeta clone();
|
||||||
|
}
|
|
@ -2,7 +2,6 @@ package org.bukkit.inventory.meta;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.potion.PotionData;
|
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
import org.bukkit.potion.PotionType;
|
import org.bukkit.potion.PotionType;
|
||||||
|
@ -14,40 +13,28 @@ import org.jetbrains.annotations.Nullable;
|
||||||
*/
|
*/
|
||||||
public interface PotionMeta extends ItemMeta {
|
public interface PotionMeta extends ItemMeta {
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the underlying potion data
|
|
||||||
*
|
|
||||||
* @param data PotionData to set the base potion state to
|
|
||||||
* @deprecated Upgraded / extended potions are now their own {@link PotionType} use {@link #setBasePotionType} instead.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
void setBasePotionData(@NotNull PotionData data);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the potion data about the base potion
|
|
||||||
*
|
|
||||||
* @return a PotionData object
|
|
||||||
* @deprecated Upgraded / extended potions are now their own {@link PotionType} use {@link #getBasePotionType()} instead.
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
@Deprecated
|
|
||||||
PotionData getBasePotionData();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the underlying potion type
|
* Sets the underlying potion type
|
||||||
*
|
*
|
||||||
* @param type PotionType to set the base potion state to
|
* @param type PotionType to set the base potion state to
|
||||||
*/
|
*/
|
||||||
void setBasePotionType(@NotNull PotionType type);
|
void setBasePotionType(@Nullable PotionType type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the potion type about the base potion
|
* Returns the potion type about the base potion
|
||||||
*
|
*
|
||||||
* @return a PotionType object
|
* @return a PotionType object
|
||||||
*/
|
*/
|
||||||
@NotNull
|
@Nullable
|
||||||
PotionType getBasePotionType();
|
PotionType getBasePotionType();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks for the presence of a base potion type
|
||||||
|
*
|
||||||
|
* @return true if a base potion type is present
|
||||||
|
*/
|
||||||
|
boolean hasBasePotionType();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks for the presence of custom potion effects.
|
* Checks for the presence of custom potion effects.
|
||||||
*
|
*
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
package org.bukkit.inventory.meta;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a book ({@link Material#WRITABLE_BOOK} or {@link
|
||||||
|
* Material#WRITTEN_BOOK}) that can have pages.
|
||||||
|
*/
|
||||||
|
public interface WritableBookMeta extends ItemMeta {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks for the existence of pages in the book.
|
||||||
|
*
|
||||||
|
* @return true if the book has pages
|
||||||
|
*/
|
||||||
|
boolean hasPages();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the specified page in the book. The given page must exist.
|
||||||
|
* <p>
|
||||||
|
* Pages are 1-indexed.
|
||||||
|
*
|
||||||
|
* @param page the page number to get, in range [1, getPageCount()]
|
||||||
|
* @return the page from the book
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
String getPage(int page);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the specified page in the book. Pages of the book must be
|
||||||
|
* contiguous.
|
||||||
|
* <p>
|
||||||
|
* The data can be up to 1024 characters in length, additional characters
|
||||||
|
* are truncated.
|
||||||
|
* <p>
|
||||||
|
* Pages are 1-indexed.
|
||||||
|
*
|
||||||
|
* @param page the page number to set, in range [1, getPageCount()]
|
||||||
|
* @param data the data to set for that page
|
||||||
|
*/
|
||||||
|
void setPage(int page, @NotNull String data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets all the pages in the book.
|
||||||
|
*
|
||||||
|
* @return list of all the pages in the book
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
List<String> getPages();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clears the existing book pages, and sets the book to use the provided
|
||||||
|
* pages. Maximum 100 pages with 1024 characters per page.
|
||||||
|
*
|
||||||
|
* @param pages A list of pages to set the book to use
|
||||||
|
*/
|
||||||
|
void setPages(@NotNull List<String> pages);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clears the existing book pages, and sets the book to use the provided
|
||||||
|
* pages. Maximum 100 pages with 1024 characters per page.
|
||||||
|
*
|
||||||
|
* @param pages A list of strings, each being a page
|
||||||
|
*/
|
||||||
|
void setPages(@NotNull String... pages);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds new pages to the end of the book. Up to a maximum of 100 pages with
|
||||||
|
* 1024 characters per page.
|
||||||
|
*
|
||||||
|
* @param pages A list of strings, each being a page
|
||||||
|
*/
|
||||||
|
void addPage(@NotNull String... pages);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the number of pages in the book.
|
||||||
|
*
|
||||||
|
* @return the number of pages in the book
|
||||||
|
*/
|
||||||
|
int getPageCount();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
WritableBookMeta clone();
|
||||||
|
}
|
|
@ -0,0 +1,130 @@
|
||||||
|
package org.bukkit.inventory.meta.components;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
||||||
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a component which can turn any item into food.
|
||||||
|
*/
|
||||||
|
@ApiStatus.Experimental
|
||||||
|
public interface FoodComponent extends ConfigurationSerializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the food restored by this item when eaten.
|
||||||
|
*
|
||||||
|
* @return nutrition value
|
||||||
|
*/
|
||||||
|
int getNutrition();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the food restored by this item when eaten.
|
||||||
|
*
|
||||||
|
* @param nutrition new nutrition value, must be non-negative
|
||||||
|
*/
|
||||||
|
void setNutrition(int nutrition);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the saturation restored by this item when eaten.
|
||||||
|
*
|
||||||
|
* @return saturation value
|
||||||
|
*/
|
||||||
|
float getSaturationModifier();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the saturation restored by this item when eaten.
|
||||||
|
*
|
||||||
|
* @param saturationModifier new saturation value
|
||||||
|
*/
|
||||||
|
void setSaturationModifier(float saturationModifier);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets if this item can be eaten even when not hungry.
|
||||||
|
*
|
||||||
|
* @return true if always edible
|
||||||
|
*/
|
||||||
|
boolean canAlwaysEat();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets if this item can be eaten even when not hungry.
|
||||||
|
*
|
||||||
|
* @param canAlwaysEat whether always edible
|
||||||
|
*/
|
||||||
|
void setCanAlwaysEat(boolean canAlwaysEat);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the time in seconds it will take for this item to be eaten.
|
||||||
|
*
|
||||||
|
* @return eat time
|
||||||
|
*/
|
||||||
|
float getEatSeconds();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the time in seconds it will take for this item to be eaten.
|
||||||
|
*
|
||||||
|
* @param eatSeconds new eat time
|
||||||
|
*/
|
||||||
|
void setEatSeconds(float eatSeconds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the effects which may be applied by this item when eaten.
|
||||||
|
*
|
||||||
|
* @return food effects
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
List<FoodEffect> getEffects();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the effects which may be applied by this item when eaten.
|
||||||
|
*
|
||||||
|
* @param effects new effects
|
||||||
|
*/
|
||||||
|
void setEffects(@NotNull List<FoodEffect> effects);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds an effect which may be applied by this item when eaten.
|
||||||
|
*
|
||||||
|
* @param effect the effect
|
||||||
|
* @param probability the probability of the effect being applied
|
||||||
|
* @return the added effect
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
FoodEffect addEffect(@NotNull PotionEffect effect, float probability);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An effect which may be applied by this item when eaten.
|
||||||
|
*/
|
||||||
|
public interface FoodEffect extends ConfigurationSerializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the effect which may be applied.
|
||||||
|
*
|
||||||
|
* @return the effect
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
PotionEffect getEffect();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the effect which may be applied.
|
||||||
|
*
|
||||||
|
* @param effect the new effect
|
||||||
|
*/
|
||||||
|
void setEffect(@NotNull PotionEffect effect);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the probability of this effect being applied.
|
||||||
|
*
|
||||||
|
* @return probability
|
||||||
|
*/
|
||||||
|
float getProbability();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the probability of this effect being applied.
|
||||||
|
*
|
||||||
|
* @param probability between 0 and 1 inclusive.
|
||||||
|
*/
|
||||||
|
void setProbability(float probability);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
/**
|
||||||
|
* Isolated components which may form part of item meta.
|
||||||
|
*/
|
||||||
|
@org.jetbrains.annotations.ApiStatus.Experimental
|
||||||
|
package org.bukkit.inventory.meta.components;
|
|
@ -75,4 +75,12 @@ public interface TrimPattern extends Keyed, Translatable {
|
||||||
* {@link Material#HOST_ARMOR_TRIM_SMITHING_TEMPLATE}.
|
* {@link Material#HOST_ARMOR_TRIM_SMITHING_TEMPLATE}.
|
||||||
*/
|
*/
|
||||||
public static final TrimPattern HOST = Registry.TRIM_PATTERN.get(NamespacedKey.minecraft("host"));
|
public static final TrimPattern HOST = Registry.TRIM_PATTERN.get(NamespacedKey.minecraft("host"));
|
||||||
|
/**
|
||||||
|
* {@link Material#FLOW_ARMOR_TRIM_SMITHING_TEMPLATE}.
|
||||||
|
*/
|
||||||
|
public static final TrimPattern FLOW = Registry.TRIM_PATTERN.get(NamespacedKey.minecraft("flow"));
|
||||||
|
/**
|
||||||
|
* {@link Material#BOLT_ARMOR_TRIM_SMITHING_TEMPLATE}.
|
||||||
|
*/
|
||||||
|
public static final TrimPattern BOLT = Registry.TRIM_PATTERN.get(NamespacedKey.minecraft("bolt"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,20 @@ public enum LootTables implements Keyed {
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
TRIAL_CHAMBERS_REWARD("chests/trial_chambers/reward"),
|
TRIAL_CHAMBERS_REWARD("chests/trial_chambers/reward"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
|
TRIAL_CHAMBERS_REWARD_COMMON("chests/trial_chambers/reward_common"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
TRIAL_CHAMBERS_REWARD_RARE("chests/trial_chambers/reward_rare"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
TRIAL_CHAMBERS_REWARD_UNIQUE("chests/trial_chambers/reward_unique"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
TRIAL_CHAMBERS_REWARD_OMINOUS("chests/trial_chambers/reward_ominous"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
TRIAL_CHAMBERS_REWARD_OMINOUS_COMMON("chests/trial_chambers/reward_ominous_common"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
TRIAL_CHAMBERS_REWARD_OMINOUS_RARE("chests/trial_chambers/reward_ominous_rare"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
TRIAL_CHAMBERS_REWARD_OMINOUS_UNIQUE("chests/trial_chambers/reward_ominous_unique"),
|
||||||
|
@MinecraftExperimental
|
||||||
TRIAL_CHAMBERS_SUPPLY("chests/trial_chambers/supply"),
|
TRIAL_CHAMBERS_SUPPLY("chests/trial_chambers/supply"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
TRIAL_CHAMBERS_CORRIDOR("chests/trial_chambers/corridor"),
|
TRIAL_CHAMBERS_CORRIDOR("chests/trial_chambers/corridor"),
|
||||||
|
@ -54,6 +68,12 @@ public enum LootTables implements Keyed {
|
||||||
TRIAL_CHAMBERS_WATER_DISPENSER("dispensers/trial_chambers/water"),
|
TRIAL_CHAMBERS_WATER_DISPENSER("dispensers/trial_chambers/water"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
TRIAL_CHAMBERS_CORRIDOR_POT("pots/trial_chambers/corridor"),
|
TRIAL_CHAMBERS_CORRIDOR_POT("pots/trial_chambers/corridor"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
EQUIPMENT_TRIAL_CHAMBER("equipment/trial_chamber"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
EQUIPMENT_TRIAL_CHAMBER_RANGED("equipment/trial_chamber_ranged"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
EQUIPMENT_TRIAL_CHAMBER_MELEE("equipment/trial_chamber_melee"),
|
||||||
SHIPWRECK_MAP("chests/shipwreck_map"),
|
SHIPWRECK_MAP("chests/shipwreck_map"),
|
||||||
SHIPWRECK_SUPPLY("chests/shipwreck_supply"),
|
SHIPWRECK_SUPPLY("chests/shipwreck_supply"),
|
||||||
SHIPWRECK_TREASURE("chests/shipwreck_treasure"),
|
SHIPWRECK_TREASURE("chests/shipwreck_treasure"),
|
||||||
|
@ -177,12 +197,21 @@ public enum LootTables implements Keyed {
|
||||||
TOOLSMITH_GIFT("gameplay/hero_of_the_village/toolsmith_gift"),
|
TOOLSMITH_GIFT("gameplay/hero_of_the_village/toolsmith_gift"),
|
||||||
WEAPONSMITH_GIFT("gameplay/hero_of_the_village/weaponsmith_gift"),
|
WEAPONSMITH_GIFT("gameplay/hero_of_the_village/weaponsmith_gift"),
|
||||||
SNIFFER_DIGGING("gameplay/sniffer_digging"),
|
SNIFFER_DIGGING("gameplay/sniffer_digging"),
|
||||||
|
PANDA_SNEEZE("gameplay/panda_sneeze"),
|
||||||
PIGLIN_BARTERING("gameplay/piglin_bartering"),
|
PIGLIN_BARTERING("gameplay/piglin_bartering"),
|
||||||
// Spawners
|
// Spawners
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
TRIAL_CHAMBER_KEY("spawners/trial_chamber/key"),
|
TRIAL_CHAMBER_KEY("spawners/trial_chamber/key"),
|
||||||
@MinecraftExperimental
|
@MinecraftExperimental
|
||||||
TRIAL_CHAMBER_CONSUMABLES("spawners/trial_chamber/consumables"),
|
TRIAL_CHAMBER_CONSUMABLES("spawners/trial_chamber/consumables"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
OMINOUS_TRIAL_CHAMBER_KEY("spawners/ominous/trial_chamber/key"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
OMINOUS_TRIAL_CHAMBER_CONSUMABLES("spawners/ominous/trial_chamber/consumables"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
TRIAL_CHAMBER_ITEMS_TO_DROP_WHEN_OMINOUS("spawners/trial_chamber/items_to_drop_when_ominous"),
|
||||||
|
// Shearing
|
||||||
|
SHEARING_BOGGED("shearing/bogged"),
|
||||||
// Archaeology
|
// Archaeology
|
||||||
DESERT_WELL_ARCHAEOLOGY("archaeology/desert_well"),
|
DESERT_WELL_ARCHAEOLOGY("archaeology/desert_well"),
|
||||||
DESERT_PYRAMID_ARCHAEOLOGY("archaeology/desert_pyramid"),
|
DESERT_PYRAMID_ARCHAEOLOGY("archaeology/desert_pyramid"),
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package org.bukkit.map;
|
package org.bukkit.map;
|
||||||
|
|
||||||
|
import org.bukkit.Keyed;
|
||||||
|
import org.bukkit.NamespacedKey;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
@ -225,47 +227,56 @@ public final class MapCursor {
|
||||||
* index in the file './assets/minecraft/textures/map/map_icons.png' from minecraft.jar or from a
|
* index in the file './assets/minecraft/textures/map/map_icons.png' from minecraft.jar or from a
|
||||||
* resource pack.
|
* resource pack.
|
||||||
*/
|
*/
|
||||||
public enum Type {
|
public enum Type implements Keyed {
|
||||||
WHITE_POINTER(0),
|
WHITE_POINTER(0, "player"),
|
||||||
GREEN_POINTER(1),
|
GREEN_POINTER(1, "frame"),
|
||||||
RED_POINTER(2),
|
RED_POINTER(2, "red_marker"),
|
||||||
BLUE_POINTER(3),
|
BLUE_POINTER(3, "blue_marker"),
|
||||||
WHITE_CROSS(4),
|
WHITE_CROSS(4, "target_x"),
|
||||||
RED_MARKER(5),
|
RED_MARKER(5, "target_point"),
|
||||||
WHITE_CIRCLE(6),
|
WHITE_CIRCLE(6, "player_off_map"),
|
||||||
SMALL_WHITE_CIRCLE(7),
|
SMALL_WHITE_CIRCLE(7, "player_off_limits"),
|
||||||
MANSION(8),
|
MANSION(8, "mansion"),
|
||||||
TEMPLE(9),
|
TEMPLE(9, "monument"),
|
||||||
BANNER_WHITE(10),
|
BANNER_WHITE(10, "banner_white"),
|
||||||
BANNER_ORANGE(11),
|
BANNER_ORANGE(11, "banner_orange"),
|
||||||
BANNER_MAGENTA(12),
|
BANNER_MAGENTA(12, "banner_magenta"),
|
||||||
BANNER_LIGHT_BLUE(13),
|
BANNER_LIGHT_BLUE(13, "banner_light_blue"),
|
||||||
BANNER_YELLOW(14),
|
BANNER_YELLOW(14, "banner_yellow"),
|
||||||
BANNER_LIME(15),
|
BANNER_LIME(15, "banner_lime"),
|
||||||
BANNER_PINK(16),
|
BANNER_PINK(16, "banner_pink"),
|
||||||
BANNER_GRAY(17),
|
BANNER_GRAY(17, "banner_gray"),
|
||||||
BANNER_LIGHT_GRAY(18),
|
BANNER_LIGHT_GRAY(18, "banner_light_gray"),
|
||||||
BANNER_CYAN(19),
|
BANNER_CYAN(19, "banner_cyan"),
|
||||||
BANNER_PURPLE(20),
|
BANNER_PURPLE(20, "banner_purple"),
|
||||||
BANNER_BLUE(21),
|
BANNER_BLUE(21, "banner_blue"),
|
||||||
BANNER_BROWN(22),
|
BANNER_BROWN(22, "banner_brown"),
|
||||||
BANNER_GREEN(23),
|
BANNER_GREEN(23, "banner_green"),
|
||||||
BANNER_RED(24),
|
BANNER_RED(24, "banner_red"),
|
||||||
BANNER_BLACK(25),
|
BANNER_BLACK(25, "banner_black"),
|
||||||
RED_X(26),
|
RED_X(26, "red_x"),
|
||||||
DESERT_VILLAGE(27),
|
DESERT_VILLAGE(27, "village_desert"),
|
||||||
PLAINS_VILLAGE(28),
|
PLAINS_VILLAGE(28, "village_plains"),
|
||||||
SAVANNA_VILLAGE(29),
|
SAVANNA_VILLAGE(29, "village_savanna"),
|
||||||
SNOWY_VILLAGE(30),
|
SNOWY_VILLAGE(30, "village_snowy"),
|
||||||
TAIGA_VILLAGE(31),
|
TAIGA_VILLAGE(31, "village_taiga"),
|
||||||
JUNGLE_TEMPLE(32),
|
JUNGLE_TEMPLE(32, "jungle_temple"),
|
||||||
SWAMP_HUT(33),
|
SWAMP_HUT(33, "swamp_hut"),
|
||||||
|
TRIAL_CHAMBERS(34, "trial_chambers")
|
||||||
;
|
;
|
||||||
|
|
||||||
private byte value;
|
private byte value;
|
||||||
|
private final NamespacedKey key;
|
||||||
|
|
||||||
private Type(int value) {
|
private Type(int value, String key) {
|
||||||
this.value = (byte) value;
|
this.value = (byte) value;
|
||||||
|
this.key = NamespacedKey.minecraft(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public NamespacedKey getKey() {
|
||||||
|
return key;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,395 +0,0 @@
|
||||||
package org.bukkit.potion;
|
|
||||||
|
|
||||||
import com.google.common.base.Preconditions;
|
|
||||||
import java.util.Collection;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.LivingEntity;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.inventory.meta.PotionMeta;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Potion Adapter for pre-1.9 data values
|
|
||||||
* see @PotionMeta for 1.9+
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public class Potion {
|
|
||||||
private boolean extended = false;
|
|
||||||
private boolean splash = false;
|
|
||||||
private int level = 1;
|
|
||||||
private PotionType type;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Construct a new potion of the given type. Unless the type is {@link
|
|
||||||
* PotionType#WATER}, it will be level one, without extended duration.
|
|
||||||
* Don't use this constructor to create a no-effect potion other than
|
|
||||||
* water bottle.
|
|
||||||
*
|
|
||||||
* @param type The potion type
|
|
||||||
*/
|
|
||||||
public Potion(@NotNull PotionType type) {
|
|
||||||
Preconditions.checkArgument(type != null, "Null PotionType");
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new potion of the given type and level.
|
|
||||||
*
|
|
||||||
* @param type The type of potion.
|
|
||||||
* @param level The potion's level.
|
|
||||||
*/
|
|
||||||
public Potion(@NotNull PotionType type, int level) {
|
|
||||||
this(type);
|
|
||||||
Preconditions.checkArgument(type != null, "Type cannot be null");
|
|
||||||
Preconditions.checkArgument(level > 0 && level < 3, "Level must be 1 or 2");
|
|
||||||
this.level = level;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new potion of the given type and level.
|
|
||||||
*
|
|
||||||
* @param type The type of potion.
|
|
||||||
* @param level The potion's level.
|
|
||||||
* @param splash Whether it is a splash potion.
|
|
||||||
* @deprecated In favour of using {@link #Potion(PotionType)} with {@link
|
|
||||||
* #splash()}.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public Potion(@NotNull PotionType type, int level, boolean splash) {
|
|
||||||
this(type, level);
|
|
||||||
this.splash = splash;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new potion of the given type and level.
|
|
||||||
*
|
|
||||||
* @param type The type of potion.
|
|
||||||
* @param level The potion's level.
|
|
||||||
* @param splash Whether it is a splash potion.
|
|
||||||
* @param extended Whether it has an extended duration.
|
|
||||||
* @deprecated In favour of using {@link #Potion(PotionType)} with {@link
|
|
||||||
* #extend()} and possibly {@link #splash()}.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public Potion(@NotNull PotionType type, int level, boolean splash, boolean extended) {
|
|
||||||
this(type, level, splash);
|
|
||||||
this.extended = extended;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Chain this to the constructor to make the potion a splash potion.
|
|
||||||
*
|
|
||||||
* @return The potion.
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
public Potion splash() {
|
|
||||||
setSplash(true);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Chain this to the constructor to extend the potion's duration.
|
|
||||||
*
|
|
||||||
* @return The potion.
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
public Potion extend() {
|
|
||||||
setHasExtendedDuration(true);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Applies the effects of this potion to the given {@link ItemStack}. The
|
|
||||||
* ItemStack must be a potion.
|
|
||||||
*
|
|
||||||
* @param to The itemstack to apply to
|
|
||||||
*/
|
|
||||||
public void apply(@NotNull ItemStack to) {
|
|
||||||
Preconditions.checkArgument(to != null, "itemstack cannot be null");
|
|
||||||
Preconditions.checkArgument(to.hasItemMeta(), "given itemstack is not a potion");
|
|
||||||
Preconditions.checkArgument(to.getItemMeta() instanceof PotionMeta, "given itemstack is not a potion");
|
|
||||||
PotionMeta meta = (PotionMeta) to.getItemMeta();
|
|
||||||
meta.setBasePotionData(new PotionData(type, extended, level == 2));
|
|
||||||
to.setItemMeta(meta);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Applies the effects that would be applied by this potion to the given
|
|
||||||
* {@link LivingEntity}.
|
|
||||||
*
|
|
||||||
* @param to The entity to apply the effects to
|
|
||||||
* @see LivingEntity#addPotionEffects(Collection)
|
|
||||||
*/
|
|
||||||
public void apply(@NotNull LivingEntity to) {
|
|
||||||
Preconditions.checkArgument(to != null, "entity cannot be null");
|
|
||||||
to.addPotionEffects(getEffects());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (this == obj) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (obj == null || getClass() != obj.getClass()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
Potion other = (Potion) obj;
|
|
||||||
return extended == other.extended && splash == other.splash && level == other.level && type == other.type;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a collection of {@link PotionEffect}s that this {@link Potion}
|
|
||||||
* would confer upon a {@link LivingEntity}.
|
|
||||||
*
|
|
||||||
* @return The effects that this potion applies
|
|
||||||
* @see PotionBrewer#getEffectsFromDamage(int)
|
|
||||||
* @see Potion#toDamageValue()
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
public Collection<PotionEffect> getEffects() {
|
|
||||||
return getBrewer().getEffects(type, level == 2, extended);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the level of this potion.
|
|
||||||
*
|
|
||||||
* @return The level of this potion
|
|
||||||
*/
|
|
||||||
public int getLevel() {
|
|
||||||
return level;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the {@link PotionType} of this potion.
|
|
||||||
*
|
|
||||||
* @return The type of this potion
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
public PotionType getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns whether this potion has an extended duration.
|
|
||||||
*
|
|
||||||
* @return Whether this potion has extended duration
|
|
||||||
*/
|
|
||||||
public boolean hasExtendedDuration() {
|
|
||||||
return extended;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
final int prime = 31;
|
|
||||||
int result = prime + level;
|
|
||||||
result = prime * result + (extended ? 1231 : 1237);
|
|
||||||
result = prime * result + (splash ? 1231 : 1237);
|
|
||||||
result = prime * result + ((type == null) ? 0 : type.hashCode());
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns whether this potion is a splash potion.
|
|
||||||
*
|
|
||||||
* @return Whether this is a splash potion
|
|
||||||
*/
|
|
||||||
public boolean isSplash() {
|
|
||||||
return splash;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set whether this potion has extended duration. This will cause the
|
|
||||||
* potion to have roughly 8/3 more duration than a regular potion.
|
|
||||||
*
|
|
||||||
* @param isExtended Whether the potion should have extended duration
|
|
||||||
*/
|
|
||||||
public void setHasExtendedDuration(boolean isExtended) {
|
|
||||||
Preconditions.checkArgument(type == null || !type.isInstant(), "Instant potions cannot be extended");
|
|
||||||
extended = isExtended;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets whether this potion is a splash potion. Splash potions can be
|
|
||||||
* thrown for a radius effect.
|
|
||||||
*
|
|
||||||
* @param isSplash Whether this is a splash potion
|
|
||||||
*/
|
|
||||||
public void setSplash(boolean isSplash) {
|
|
||||||
splash = isSplash;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the {@link PotionType} of this potion.
|
|
||||||
*
|
|
||||||
* @param type The new type of this potion
|
|
||||||
*/
|
|
||||||
public void setType(@NotNull PotionType type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the level of this potion.
|
|
||||||
*
|
|
||||||
* @param level The new level of this potion
|
|
||||||
*/
|
|
||||||
public void setLevel(int level) {
|
|
||||||
Preconditions.checkArgument(this.type != null, "No-effect potions don't have a level.");
|
|
||||||
Preconditions.checkArgument(level > 0 && level <= 2, "Level must be between 1 and 2 for this potion");
|
|
||||||
this.level = level;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts this potion to a valid potion damage short, usable for potion
|
|
||||||
* item stacks.
|
|
||||||
*
|
|
||||||
* @return The damage value of this potion
|
|
||||||
* @deprecated Non-functional
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public short toDamageValue() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts this potion to an {@link ItemStack} with the specified amount
|
|
||||||
* and a correct damage value.
|
|
||||||
*
|
|
||||||
* @param amount The amount of the ItemStack
|
|
||||||
* @return The created ItemStack
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
public ItemStack toItemStack(int amount) {
|
|
||||||
Material material;
|
|
||||||
if (isSplash()) {
|
|
||||||
material = Material.SPLASH_POTION;
|
|
||||||
} else {
|
|
||||||
material = Material.POTION;
|
|
||||||
}
|
|
||||||
ItemStack itemStack = new ItemStack(material, amount);
|
|
||||||
PotionMeta meta = (PotionMeta) itemStack.getItemMeta();
|
|
||||||
meta.setBasePotionData(new PotionData(type, level == 2, extended));
|
|
||||||
itemStack.setItemMeta(meta);
|
|
||||||
return itemStack;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static PotionBrewer brewer;
|
|
||||||
|
|
||||||
private static final int EXTENDED_BIT = 0x40;
|
|
||||||
private static final int POTION_BIT = 0xF;
|
|
||||||
private static final int SPLASH_BIT = 0x4000;
|
|
||||||
private static final int TIER_BIT = 0x20;
|
|
||||||
private static final int TIER_SHIFT = 5;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the potion from its damage value.
|
|
||||||
*
|
|
||||||
* @param damage the damage value
|
|
||||||
* @return the produced potion
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
public static Potion fromDamage(int damage) {
|
|
||||||
PotionType type;
|
|
||||||
switch (damage & POTION_BIT) {
|
|
||||||
case 0:
|
|
||||||
type = PotionType.WATER;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
type = PotionType.REGEN;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
type = PotionType.SPEED;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
type = PotionType.FIRE_RESISTANCE;
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
type = PotionType.POISON;
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
type = PotionType.INSTANT_HEAL;
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
type = PotionType.NIGHT_VISION;
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
type = PotionType.WEAKNESS;
|
|
||||||
break;
|
|
||||||
case 9:
|
|
||||||
type = PotionType.STRENGTH;
|
|
||||||
break;
|
|
||||||
case 10:
|
|
||||||
type = PotionType.SLOWNESS;
|
|
||||||
break;
|
|
||||||
case 11:
|
|
||||||
type = PotionType.JUMP;
|
|
||||||
break;
|
|
||||||
case 12:
|
|
||||||
type = PotionType.INSTANT_DAMAGE;
|
|
||||||
break;
|
|
||||||
case 13:
|
|
||||||
type = PotionType.WATER_BREATHING;
|
|
||||||
break;
|
|
||||||
case 14:
|
|
||||||
type = PotionType.INVISIBILITY;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
type = PotionType.WATER;
|
|
||||||
}
|
|
||||||
Potion potion;
|
|
||||||
if (type == null || type == PotionType.WATER) {
|
|
||||||
potion = new Potion(PotionType.WATER);
|
|
||||||
} else {
|
|
||||||
int level = (damage & TIER_BIT) >> TIER_SHIFT;
|
|
||||||
level++;
|
|
||||||
potion = new Potion(type, level);
|
|
||||||
}
|
|
||||||
if ((damage & SPLASH_BIT) != 0) {
|
|
||||||
potion = potion.splash();
|
|
||||||
}
|
|
||||||
if ((damage & EXTENDED_BIT) != 0) {
|
|
||||||
potion = potion.extend();
|
|
||||||
}
|
|
||||||
return potion;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public static Potion fromItemStack(@NotNull ItemStack item) {
|
|
||||||
Preconditions.checkArgument(item != null, "item cannot be null");
|
|
||||||
if (item.getType() != Material.POTION)
|
|
||||||
throw new IllegalArgumentException("item is not a potion");
|
|
||||||
return fromDamage(item.getDurability());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns an instance of {@link PotionBrewer}.
|
|
||||||
*
|
|
||||||
* @return An instance of PotionBrewer
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
public static PotionBrewer getBrewer() {
|
|
||||||
return brewer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the current instance of {@link PotionBrewer}. Generally not to be
|
|
||||||
* used from within a plugin.
|
|
||||||
*
|
|
||||||
* @param other The new PotionBrewer
|
|
||||||
*/
|
|
||||||
public static void setPotionBrewer(@NotNull PotionBrewer other) {
|
|
||||||
if (brewer != null)
|
|
||||||
throw new IllegalArgumentException("brewer can only be set internally");
|
|
||||||
brewer = other;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the potion from its name id.
|
|
||||||
*
|
|
||||||
* @return the name id
|
|
||||||
* @deprecated Non-functional
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public int getNameId() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,93 +0,0 @@
|
||||||
package org.bukkit.potion;
|
|
||||||
|
|
||||||
import com.google.common.base.Preconditions;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated Upgraded / extended potions are now their own {@link PotionType} use them instead.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public final class PotionData {
|
|
||||||
|
|
||||||
private final PotionType type;
|
|
||||||
private final boolean extended;
|
|
||||||
private final boolean upgraded;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Instantiates a final PotionData object to contain information about a
|
|
||||||
* Potion
|
|
||||||
*
|
|
||||||
* @param type the type of the Potion
|
|
||||||
* @param extended whether the potion is extended PotionType#isExtendable()
|
|
||||||
* must be true
|
|
||||||
* @param upgraded whether the potion is upgraded PotionType#isUpgradable()
|
|
||||||
* must be true
|
|
||||||
*/
|
|
||||||
public PotionData(@NotNull PotionType type, boolean extended, boolean upgraded) {
|
|
||||||
Preconditions.checkArgument(type != null, "Potion Type must not be null");
|
|
||||||
Preconditions.checkArgument(!upgraded || type.isUpgradeable(), "Potion Type is not upgradable");
|
|
||||||
Preconditions.checkArgument(!extended || type.isExtendable(), "Potion Type is not extendable");
|
|
||||||
Preconditions.checkArgument(!upgraded || !extended, "Potion cannot be both extended and upgraded");
|
|
||||||
Preconditions.checkArgument(!type.getKey().getKey().startsWith("strong_"), "Strong potion type cannot be used directly, got %s", type.getKey());
|
|
||||||
Preconditions.checkArgument(!type.getKey().getKey().startsWith("long_"), "Extended potion type cannot be used directly, got %s", type.getKey());
|
|
||||||
this.type = type;
|
|
||||||
this.extended = extended;
|
|
||||||
this.upgraded = upgraded;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PotionData(@NotNull PotionType type) {
|
|
||||||
this(type, false, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the type of the potion, Type matches up with each kind of craftable
|
|
||||||
* potion
|
|
||||||
*
|
|
||||||
* @return the potion type
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
public PotionType getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if the potion is in an upgraded state. This refers to whether or
|
|
||||||
* not the potion is Tier 2, such as Potion of Fire Resistance II.
|
|
||||||
*
|
|
||||||
* @return true if the potion is upgraded;
|
|
||||||
*/
|
|
||||||
public boolean isUpgraded() {
|
|
||||||
return upgraded;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if the potion is in an extended state. This refers to the extended
|
|
||||||
* duration potions
|
|
||||||
*
|
|
||||||
* @return true if the potion is extended
|
|
||||||
*/
|
|
||||||
public boolean isExtended() {
|
|
||||||
return extended;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
int hash = 7;
|
|
||||||
hash = 23 * hash + (this.type != null ? this.type.hashCode() : 0);
|
|
||||||
hash = 23 * hash + (this.extended ? 1 : 0);
|
|
||||||
hash = 23 * hash + (this.upgraded ? 1 : 0);
|
|
||||||
return hash;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (this == obj) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (obj == null || getClass() != obj.getClass()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
PotionData other = (PotionData) obj;
|
|
||||||
return (this.upgraded == other.upgraded) && (this.extended == other.extended) && (this.type == other.type);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -173,7 +173,7 @@ public abstract class PotionEffectType implements Keyed, Translatable {
|
||||||
public static final PotionEffectType DOLPHINS_GRACE = getPotionEffectType(30, "dolphins_grace");
|
public static final PotionEffectType DOLPHINS_GRACE = getPotionEffectType(30, "dolphins_grace");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Triggers a raid when the player enters a village.<br>
|
* Triggers an ominous event when the player enters a village or trial chambers.<br>
|
||||||
* oof.
|
* oof.
|
||||||
*/
|
*/
|
||||||
public static final PotionEffectType BAD_OMEN = getPotionEffectType(31, "bad_omen");
|
public static final PotionEffectType BAD_OMEN = getPotionEffectType(31, "bad_omen");
|
||||||
|
@ -189,6 +189,36 @@ public abstract class PotionEffectType implements Keyed, Translatable {
|
||||||
*/
|
*/
|
||||||
public static final PotionEffectType DARKNESS = getPotionEffectType(33, "darkness");
|
public static final PotionEffectType DARKNESS = getPotionEffectType(33, "darkness");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Causes trial spawners to become ominous.
|
||||||
|
*/
|
||||||
|
public static final PotionEffectType TRIAL_OMEN = getPotionEffectType(34, "trial_omen");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Triggers a raid when a player enters a village.
|
||||||
|
*/
|
||||||
|
public static final PotionEffectType RAID_OMEN = getPotionEffectType(35, "raid_omen");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Emits a wind burst upon death.
|
||||||
|
*/
|
||||||
|
public static final PotionEffectType WIND_CHARGED = getPotionEffectType(36, "wind_charged");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates cobwebs upon death.
|
||||||
|
*/
|
||||||
|
public static final PotionEffectType WEAVING = getPotionEffectType(37, "weaving");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Causes slimes to spawn upon death.
|
||||||
|
*/
|
||||||
|
public static final PotionEffectType OOZING = getPotionEffectType(38, "oozing");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Chance of spawning silverfish when hurt.
|
||||||
|
*/
|
||||||
|
public static final PotionEffectType INFESTED = getPotionEffectType(39, "infested");
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private static PotionEffectType getPotionEffectType(int typeId, @NotNull String key) {
|
private static PotionEffectType getPotionEffectType(int typeId, @NotNull String key) {
|
||||||
NamespacedKey namespacedKey = NamespacedKey.minecraft(key);
|
NamespacedKey namespacedKey = NamespacedKey.minecraft(key);
|
||||||
|
|
|
@ -5,6 +5,7 @@ import java.util.List;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Keyed;
|
import org.bukkit.Keyed;
|
||||||
|
import org.bukkit.MinecraftExperimental;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.jetbrains.annotations.ApiStatus;
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -15,7 +16,6 @@ import org.jetbrains.annotations.Nullable;
|
||||||
* the Creative mode inventory
|
* the Creative mode inventory
|
||||||
*/
|
*/
|
||||||
public enum PotionType implements Keyed {
|
public enum PotionType implements Keyed {
|
||||||
UNCRAFTABLE("empty"),
|
|
||||||
WATER("water"),
|
WATER("water"),
|
||||||
MUNDANE("mundane"),
|
MUNDANE("mundane"),
|
||||||
THICK("thick"),
|
THICK("thick"),
|
||||||
|
@ -58,6 +58,14 @@ public enum PotionType implements Keyed {
|
||||||
STRONG_TURTLE_MASTER("strong_turtle_master"),
|
STRONG_TURTLE_MASTER("strong_turtle_master"),
|
||||||
SLOW_FALLING("slow_falling"),
|
SLOW_FALLING("slow_falling"),
|
||||||
LONG_SLOW_FALLING("long_slow_falling"),
|
LONG_SLOW_FALLING("long_slow_falling"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
WIND_CHARGED("wind_charged"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
WEAVING("weaving"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
OOZING("oozing"),
|
||||||
|
@MinecraftExperimental
|
||||||
|
INFESTED("infested"),
|
||||||
;
|
;
|
||||||
|
|
||||||
private final NamespacedKey key;
|
private final NamespacedKey key;
|
||||||
|
|
Loading…
Reference in a new issue