本文整理汇总了Java中org.bukkit.Material.WEB属性的典型用法代码示例。如果您正苦于以下问题:Java Material.WEB属性的具体用法?Java Material.WEB怎么用?Java Material.WEB使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类org.bukkit.Material
的用法示例。
在下文中一共展示了Material.WEB属性的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: registerRunes
private void registerRunes() {
Rune rune;
rune = new Rune("Freeze", Material.ICE, 15, -1);
rune.addDescription(ChatColor.GRAY + "Freezes target");
rune.addDescription(ChatColor.GRAY + "Range: " + ChatColor.RED + "10 blocks");
rune.addDescription(ChatColor.GRAY + "Freeze duration: " + ChatColor.RED + "3 second");
runes.add(rune);
rune = new Rune("Fire Storm", Material.BLAZE_POWDER, 25, 30);
rune.addDescription(ChatColor.GRAY + "Sets everyone around on fire");
rune.addDescription(ChatColor.GRAY + "Range: " + ChatColor.RED + "2 blocks");
rune.addDescription(ChatColor.GRAY + "Burning duration: " + ChatColor.RED + "2 seconds");
runes.add(rune);
rune = new Rune("Slowdown", Material.WEB, 15, 30);
rune.addDescription(ChatColor.GRAY + "Slows everyone around");
rune.addDescription(ChatColor.GRAY + "Range: " + ChatColor.RED + "3 blocks");
rune.addDescription(ChatColor.GRAY + "Slow Level: " + ChatColor.RED + "I");
rune.addDescription(ChatColor.GRAY + "Slow duration: " + ChatColor.RED + "5 seconds");
runes.add(rune);
rune = new Rune("Invisibility", Material.GRASS, 10, 5);
rune.addDescription(ChatColor.GRAY + "Gives uninterruptible invisibility");
runes.add(rune);
rune = new Rune("Lightning", Material.FIREWORK, 15, -1);
rune.addDescription(ChatColor.GRAY + "Strikes lightning at target position");
rune.addDescription(ChatColor.GRAY + "Range: " + ChatColor.RED + "20 blocks");
rune.addDescription(ChatColor.GRAY + "Damage: " + ChatColor.RED + "5 hearts");
runes.add(rune);
rune = new Rune("Detonate", Material.TNT, 20, -1);
rune.addDescription(ChatColor.GRAY + "Strikes explosion at your location");
rune.addDescription(ChatColor.GRAY + "Explosion range: " + ChatColor.RED + "4 blocks");
rune.addDescription(ChatColor.GRAY + "Damage: " + ChatColor.RED + "3 hearts");
runes.add(rune);
}
示例2: isInWeb
/**
* @return If the player is in a cobweb or not.
*/
public final boolean isInWeb() {
return getBlockPlayerIsIn().getType() == Material.WEB;
}
示例3: getImminentDeath
/**
* Get the cause of the player's imminent death, or null if they are not about to die
* NOTE: not idempotent, has the side effect of clearing the recentDamage cache
*/
public @Nullable ImminentDeath getImminentDeath(Player player) {
// If the player is already dead or in creative mode, we don't care
if(player.isDead() || player.getGameMode() == GameMode.CREATIVE) return null;
// If the player was on the ground, or is flying, or is able to fly, they are fine
if(!(player.isOnGround() || player.isFlying() || player.getAllowFlight())) {
// If the player is falling, detect an imminent falling death
double fallDistance = player.getFallDistance();
Block landingBlock = null;
int waterDepth = 0;
Location location = player.getLocation();
if(location.getY() > 256) {
// If player is above Y 256, assume they fell at least to there
fallDistance += location.getY() - 256;
location.setY(256);
}
// Search the blocks directly beneath the player until we find what they would have landed on
Block block = null;
for(; location.getY() >= 0; location.add(0, -1, 0)) {
block = location.getBlock();
if(block != null) {
landingBlock = block;
if(Materials.isWater(landingBlock.getType())) {
// If the player falls through water, reset fall distance and inc the water depth
fallDistance = -1;
waterDepth += 1;
// Break if they have fallen through enough water to stop falling
if(waterDepth >= BREAK_FALL_WATER_DEPTH) break;
} else {
// If the block is not water, reset the water depth
waterDepth = 0;
if(Materials.isColliding(landingBlock.getType()) || Materials.isLava(landingBlock.getType())) {
// Break if the player hits a solid block or lava
break;
} else if(landingBlock.getType() == Material.WEB) {
// If they hit web, reset their fall distance, but assume they keep falling
fallDistance = -1;
}
}
}
fallDistance += 1;
}
double resistanceFactor = getResistanceFactor(player);
boolean fireResistance = hasFireResistance(player);
// Now decide if the landing would have killed them
if(location.getBlockY() < 0) {
// The player would have fallen into the void
return new ImminentDeath(EntityDamageEvent.DamageCause.VOID, location, null, false);
} else if(landingBlock != null) {
if(Materials.isColliding(landingBlock.getType()) && player.getHealth() <= resistanceFactor * (fallDistance - SAFE_FALL_DISTANCE)) {
// The player would have landed on a solid block and taken enough fall damage to kill them
return new ImminentDeath(EntityDamageEvent.DamageCause.FALL, landingBlock.getLocation().add(0, 0.5, 0), null, false);
} else if (Materials.isLava(landingBlock.getType()) && resistanceFactor > 0 && !fireResistance) {
// The player would have landed in lava, and we give the lava the benefit of the doubt
return new ImminentDeath(EntityDamageEvent.DamageCause.LAVA, landingBlock.getLocation(), landingBlock, false);
}
}
}
// If we didn't predict a falling death, detect combat log due to recent damage
Damage damage = this.recentDamage.remove(player);
if(damage != null && damage.time.plus(RECENT_DAMAGE_THRESHOLD).isAfter(Instant.now())) {
// Player logged out too soon after taking damage
return new ImminentDeath(damage.event.getCause(), player.getLocation(), null, true);
}
return null;
}
示例4: isInWeb
public static boolean isInWeb(Player player) {
return player.getLocation().getBlock().getType() == Material.WEB || player.getLocation().getBlock().getRelative(BlockFace.DOWN).getType() == Material.WEB || player.getLocation().getBlock().getRelative(BlockFace.UP).getType() == Material.WEB;
}