本文整理了Java中org.bukkit.metadata.MetadataValue.value()
方法的一些代码示例,展示了MetadataValue.value()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。MetadataValue.value()
方法的具体详情如下:
包路径:org.bukkit.metadata.MetadataValue
类名称:MetadataValue
方法名:value
[英]Fetches the value of this metadata item.
[中]获取此元数据项的值。
代码示例来源:origin: EngineHub/CommandHelper
@Override
public Object value() {
return this.value.value();
}
代码示例来源:origin: games647/ScoreboardStats
public Optional<PlayerStats> getStats(Player request) {
if (request != null) {
for (MetadataValue metadata : request.getMetadata(METAKEY)) {
if (metadata.value() instanceof PlayerStats) {
return Optional.of((PlayerStats) metadata.value());
}
}
}
return Optional.empty();
}
代码示例来源:origin: mcMMO-Dev/mcMMO
public static McMMOPlayer getPlayer(Player player) {
return (McMMOPlayer) player.getMetadata(mcMMO.playerDataKey).get(0).value();
}
代码示例来源:origin: garbagemule/MobArena
private Player getPlanter(Metadatable tnt) {
List<MetadataValue> values = tnt.getMetadata("mobarena-planter");
for (MetadataValue value : values) {
if (value.getOwningPlugin().equals(plugin)) {
return (Player) value.value();
}
}
return null;
}
代码示例来源:origin: xXKeyleXx/MyPet
@SuppressWarnings("unchecked")
public static Map<UUID, Double> getDamageToEntityPercent(LivingEntity victim) {
Map<UUID, Double> damagePercentMap = new HashMap<>();
if (victim.hasMetadata("DamageCount")) {
for (MetadataValue value : victim.getMetadata("DamageCount")) {
if (value.getOwningPlugin().getName().equals("MyPet")) {
Map<UUID, Double> damageMap = (Map<UUID, Double>) value.value();
double allDamage = 0;
for (Double damage : damageMap.values()) {
allDamage += damage;
}
if (allDamage <= 0) {
return damagePercentMap;
}
for (UUID entity : damageMap.keySet()) {
damagePercentMap.put(entity, damageMap.get(entity) / allDamage);
}
return damagePercentMap;
}
}
}
return damagePercentMap;
}
}
代码示例来源:origin: xXKeyleXx/MyPet
@SuppressWarnings("unchecked")
public static double getDamageToEntityPercent(LivingEntity damager, LivingEntity victim) {
if (victim.hasMetadata("DamageCount")) {
UUID damagerUUID = damager.getUniqueId();
for (MetadataValue value : victim.getMetadata("DamageCount")) {
if (value.getOwningPlugin().getName().equals("MyPet")) {
Map<UUID, Double> damageMap = (Map<UUID, Double>) value.value();
double allDamage = 0;
double damagerDamage = damageMap.containsKey(damagerUUID) ? damageMap.get(damagerUUID) : 0;
for (UUID entity : damageMap.keySet()) {
allDamage += damageMap.get(entity);
}
return damagerDamage / allDamage;
}
}
}
return 0;
}
代码示例来源:origin: xXKeyleXx/MyPet
@SuppressWarnings("unchecked")
public static double getDamageToEntity(LivingEntity damager, LivingEntity victim) {
for (MetadataValue value : victim.getMetadata("DamageCount")) {
if (value.getOwningPlugin().getName().equals("MyPet")) {
Map<UUID, Double> damageMap = (Map<UUID, Double>) value.value();
if (damageMap.containsKey(damager.getUniqueId())) {
return damageMap.get(damager.getUniqueId());
}
return 0;
}
}
return 0;
}
代码示例来源:origin: EngineHub/WorldGuard
/**
* Get the (first) metadata value on the given target that has the given
* key and is of the given class type.
*
* @param target the target
* @param key the key
* @param expected the type of the value
* @param <T> the type of the value
* @return a value, or {@code null} if one does not exists
*/
@Nullable
@SuppressWarnings("unchecked")
public static <T> T getIfPresent(Metadatable target, String key, Class<T> expected) {
List<MetadataValue> values = target.getMetadata(key);
WorldGuardPlugin owner = WorldGuardPlugin.inst();
for (MetadataValue value : values) {
if (value.getOwningPlugin() == owner) {
Object v = value.value();
if (expected.isInstance(v)) {
return (T) v;
}
}
}
return null;
}
代码示例来源:origin: elBukkit/MagicPlugin
@Override
public void finish(CastContext context) {
Player player = context.getMage().getPlayer();
List<MetadataValue> meta = player
.getMetadata(INITIAL_MOVEMENT_SPEED_META);
if (meta.isEmpty()) {
return;
}
SpeedDataStack stack = (SpeedDataStack) meta.get(0).value();
stack.map.remove(this);
final float oldSpeed;
if (stack.map.isEmpty()) {
oldSpeed = stack.initialSpeed;
player.removeMetadata(INITIAL_MOVEMENT_SPEED_META,
context.getPlugin());
} else {
oldSpeed = Iterators.getLast(stack.map.values().iterator());
}
player.setWalkSpeed(oldSpeed);
}
}
代码示例来源:origin: AddstarMC/Minigames
@Override
public void signBreak(Sign sign, MinigamePlayer player) {
Minigame minigame = (Minigame)sign.getBlock().getMetadata("Minigame").get(0).value();
if(minigame != null) {
minigame.getScoreboardData().removeDisplay(sign.getBlock());
}
}
代码示例来源:origin: mcMMO-Dev/mcMMO
/**
* Calculate bonus XP awarded for Archery when hitting a far-away target.
*
* @param target The {@link LivingEntity} damaged by the arrow
* @param damager The {@link Entity} who shot the arrow
*/
public void distanceXpBonus(LivingEntity target, Entity damager) {
Location firedLocation = (Location) damager.getMetadata(mcMMO.arrowDistanceKey).get(0).value();
Location targetLocation = target.getLocation();
if (firedLocation.getWorld() != targetLocation.getWorld()) {
return;
}
applyXpGain((int) (Math.min(firedLocation.distanceSquared(targetLocation), 2500) * Archery.DISTANCE_XP_MULTIPLIER), getXPGainReason(target, damager));
}
代码示例来源:origin: AddstarMC/Minigames
@EventHandler(ignoreCancelled=true)
private void breakScoreboard(BlockBreakEvent event) {
Block block = event.getBlock();
if (block.getType() == Material.WALL_SIGN) {
if (block.hasMetadata("MGScoreboardSign")) {
Minigame minigame = (Minigame)block.getMetadata("Minigame").get(0).value();
minigame.getScoreboardData().removeDisplay(block);
}
}
}
}
代码示例来源:origin: elBukkit/MagicPlugin
@Override
public SpellResult perform(CastContext context) {
Player player = context.getMage().getPlayer();
if (player == null) {
return SpellResult.PLAYER_REQUIRED;
}
List<MetadataValue> meta = player
.getMetadata(INITIAL_MOVEMENT_SPEED_META);
final SpeedDataStack stack;
if (meta.isEmpty()) {
stack = new SpeedDataStack();
stack.initialSpeed = player.getWalkSpeed();
player.setMetadata(INITIAL_MOVEMENT_SPEED_META,
new FixedMetadataValue(context.getPlugin(), stack));
} else {
stack = (SpeedDataStack) meta.get(0).value();
}
stack.map.put(this, speed);
player.setWalkSpeed(speed);
return SpellResult.CAST;
}
代码示例来源:origin: xXKeyleXx/MyPet
@SuppressWarnings("unchecked")
public static void addDamageToEntity(LivingEntity damager, LivingEntity victim, double damage) {
Map<UUID, Double> damageMap;
if (victim.hasMetadata("DamageCount")) {
for (MetadataValue value : victim.getMetadata("DamageCount")) {
if (value.getOwningPlugin().getName().equals("MyPet")) {
damageMap = (Map<UUID, Double>) value.value();
if (damageMap.containsKey(damager)) {
double oldDamage = damageMap.get(damager);
damageMap.put(damager.getUniqueId(), victim.getHealth() < damage ? victim.getHealth() + oldDamage : damage + oldDamage);
} else {
damageMap.put(damager.getUniqueId(), victim.getHealth() < damage ? victim.getHealth() : damage);
}
break;
}
}
} else {
damageMap = new WeakHashMap<>();
damageMap.put(damager.getUniqueId(), victim.getHealth() < damage ? victim.getHealth() : damage);
victim.setMetadata("DamageCount", new FixedMetadataValue(MyPetApi.getPlugin(), damageMap));
}
}
代码示例来源:origin: elBukkit/MagicPlugin
@Nullable
public static com.elmakers.mine.bukkit.api.block.UndoList getUndoList(Entity entity) {
com.elmakers.mine.bukkit.api.block.UndoList blockList = null;
if (entity != null && entity.hasMetadata("MagicBlockList")) {
List<MetadataValue> values = entity.getMetadata("MagicBlockList");
for (MetadataValue metadataValue : values) {
Object value = metadataValue.value();
if (value instanceof com.elmakers.mine.bukkit.api.block.UndoList) {
blockList = (com.elmakers.mine.bukkit.api.block.UndoList)value;
}
}
} else if (entity != null && entity instanceof FallingBlock) {
// Falling blocks need to check their location to handle chain reaction effects
Location entityLocation = entity.getLocation();
blockList = getUndoList(entityLocation);
if (blockList == null) {
// Check one block down as well, in case a spell removed the block underneath a falling block
entityLocation.setY(entityLocation.getY() - 1);
blockList = getUndoList(entityLocation);
}
}
return blockList;
}
代码示例来源:origin: ChestShop-authors/ChestShop-3
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public static void onSign(BlockPhysicsEvent event) {
Block block = event.getBlock();
if (!BlockUtil.isSign(block)) {
return;
}
Sign sign = (Sign) block.getState();
Block attachedBlock = BlockUtil.getAttachedBlock(sign);
if (attachedBlock.getType() == Material.AIR && ChestShopSign.isValid(sign)) {
if (!block.hasMetadata(METADATA_NAME)) {
return;
}
sendShopDestroyedEvent(sign, (Player) block.getMetadata(METADATA_NAME).get(0).value());
}
}
代码示例来源:origin: mcMMO-Dev/mcMMO
/**
* Monitor falling blocks.
*
* @param event The event to watch
*/
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onFallingBlock(EntityChangeBlockEvent event) {
/* WORLD BLACKLIST CHECK */
if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld()))
return;
if (BlockUtils.shouldBeWatched(event.getBlock().getState()) && event.getEntityType().equals(EntityType.FALLING_BLOCK)) {
if (event.getTo().equals(Material.AIR) && mcMMO.getPlaceStore().isTrue(event.getBlock())) {
event.getEntity().setMetadata("mcMMOBlockFall", new FixedMetadataValue( plugin, event.getBlock().getLocation()));
} else {
List<MetadataValue> values = event.getEntity().getMetadata( "mcMMOBlockFall" );
if (!values.isEmpty()) {
if (values.get(0).value() == null) return;
Block spawn = ((org.bukkit.Location) values.get(0).value()).getBlock();
mcMMO.getPlaceStore().setTrue( event.getBlock() );
mcMMO.getPlaceStore().setFalse( spawn );
}
}
}
}
代码示例来源:origin: TheBusyBiscuit/Slimefun4
if (e.getEntity().hasMetadata("android_killer")) {
for (MetadataValue value: e.getEntity().getMetadata("android_killer")) {
final AndroidObject obj = (AndroidObject) value.value();
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
代码示例来源:origin: BigScary/GriefPrevention
if(data != null && data.size() > 0)
UUID ownerID = (UUID)data.get(0).value();
代码示例来源:origin: ProjectKorra/ProjectKorra
final EarthGrab eg = (EarthGrab) event.getRightClicked().getMetadata("earthgrab:trap").get(0).value();
eg.damageTrap();
event.setCancelled(true);
内容来源于网络,如有侵权,请联系作者删除!