org.bukkit.metadata.MetadataValue.value()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(10.0k)|赞(0)|评价(0)|浏览(101)

本文整理了Java中org.bukkit.metadata.MetadataValue.value()方法的一些代码示例,展示了MetadataValue.value()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。MetadataValue.value()方法的具体详情如下:
包路径:org.bukkit.metadata.MetadataValue
类名称:MetadataValue
方法名:value

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);

相关文章