本文整理汇总了Java中org.bukkit.potion.PotionEffectType类的典型用法代码示例。如果您正苦于以下问题:Java PotionEffectType类的具体用法?Java PotionEffectType怎么用?Java PotionEffectType使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
PotionEffectType类属于org.bukkit.potion包,在下文中一共展示了PotionEffectType类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: onPotionSplash
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
@EventHandler
public void onPotionSplash(PotionSplashEvent event)
{
PotionEffect actual = null;
for (PotionEffect potionEffect : event.getPotion().getEffects())
{
if (potionEffect.getType().getName().equals("POISON"))
{
actual = potionEffect;
break;
}
}
if (actual != null)
{
event.setCancelled(true);
event.getAffectedEntities().forEach(entity -> entity.addPotionEffect(new PotionEffect(PotionEffectType.POISON, 8 * 20, 0)));
}
}
示例2: CraftMetaPotion
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
CraftMetaPotion(net.minecraft.nbt.NBTTagCompound tag) {
super(tag);
if (tag.hasKey(POTION_EFFECTS.NBT)) {
net.minecraft.nbt.NBTTagList list = tag.getTagList(POTION_EFFECTS.NBT, 10);
int length = list.tagCount();
if (length > 0) {
customEffects = new ArrayList<PotionEffect>(length);
for (int i = 0; i < length; i++) {
net.minecraft.nbt.NBTTagCompound effect = list.getCompoundTagAt(i);
PotionEffectType type = PotionEffectType.getById(effect.getByte(ID.NBT));
int amp = effect.getByte(AMPLIFIER.NBT);
int duration = effect.getInteger(DURATION.NBT);
boolean ambient = effect.getBoolean(AMBIENT.NBT);
customEffects.add(new PotionEffect(type, duration, amp, ambient));
}
}
}
}
示例3: getEffectsFromDamage
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
public Collection<PotionEffect> getEffectsFromDamage(int damage) {
if (cache.containsKey(damage))
return cache.get(damage);
List<?> mcEffects = net.minecraft.potion.PotionHelper.getPotionEffects(damage, false);
List<PotionEffect> effects = new ArrayList<PotionEffect>();
if (mcEffects == null)
return effects;
for (Object raw : mcEffects) {
if (raw == null || !(raw instanceof net.minecraft.potion.PotionEffect))
continue;
net.minecraft.potion.PotionEffect mcEffect = (net.minecraft.potion.PotionEffect) raw;
PotionEffect effect = new PotionEffect(PotionEffectType.getById(mcEffect.getPotionID()),
mcEffect.getDuration(), mcEffect.getAmplifier());
// Minecraft PotionBrewer applies duration modifiers automatically.
effects.add(effect);
}
cache.put(damage, effects);
return effects;
}
示例4: equipEffectsTask
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
public void equipEffectsTask() {
RScheduler.schedule(plugin, new Runnable() {
public void run() {
if (isValid()) {
Player p = getPlayer();
EntityEquipment ee = p.getEquipment();
if (ee.getHelmet() != null && ItemManager.isItem(ee.getHelmet(), "miner_helmet")) {
if (!equipStates.contains("miner_helmet")) {
p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0, true, false), true);
equipStates.add("miner_helmet");
}
} else {
if (equipStates.contains("miner_helmet")) {
equipStates.remove("miner_helmet");
p.removePotionEffect(PotionEffectType.NIGHT_VISION);
}
}
RScheduler.schedule(plugin, this, RTicks.seconds(1));
}
}
});
}
示例5: giveSlow
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
public void giveSlow(int durationSeconds, int tier) {
int highestTier = tier;
int remaining = 0;
Player p = getPlayer();
if (p == null)
return;
for (PotionEffect pe : p.getActivePotionEffects()) {
if (pe.getType().equals(PotionEffectType.SLOW)) {
remaining = pe.getDuration();
int temp = pe.getAmplifier();
if (temp > highestTier)
highestTier = temp;
}
}
p.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, RTicks.seconds(durationSeconds) + (remaining / 2), highestTier), true);
}
示例6: castSpell
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
public void castSpell(final LivingEntity caster, final MobData md, Player target) {
ArrayList<Location> locs = RLocation.findCastableLocs(caster.getLocation(), range, count);
for (Location loc : locs) {
FreezeSpellEffect effect = new FreezeSpellEffect(EffectFactory.em(), loc.add(0, 0.15, 0), 3);
effect.setEntity(caster);
effect.start();
RScheduler.schedule(Spell.plugin, () -> {
Entity activator = null;
for (Entity e : RMath.getNearbyEntities(loc, 1)) {
if (e instanceof Player && Spell.canDamage(e, false)) {
((Player) e).addPotionEffect(new PotionEffect(PotionEffectType.JUMP, RTicks.seconds(durationSec), -100), false);
((Player) e).addPotionEffect(new PotionEffect(PotionEffectType.SPEED, RTicks.seconds(durationSec), -100), false);
activator = e;
}
}
if (activator != null) {
FreezeSpellEndEffect end = new FreezeSpellEndEffect(EffectFactory.em(), loc, durationSec);
end.setEntity(activator);
end.start();
}
}, RTicks.seconds(3));
}
}
示例7: craftPotionEffect
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
public static PotionEffect craftPotionEffect(String name, ConfigurationSection section) {
if(section == null){
Error.MISSING.add();
return null;
}
PotionEffectType effect = PotionEffectType.getByName(name);
if( effect == null ) {
ErrorLogger.addError(name + " is not a valid potion effect type !");
return null;
}
int duration = section.getInt(Node.DURATION.get(), 120)*20;
int amplifier = section.getInt(Node.LEVEL.get(), 1) - 1;
boolean ambient = section.getBoolean(Node.AMBIANT.get(), true);
boolean particles = section.getBoolean(Node.PARTICLE.get(), true);
return new PotionEffect(effect, duration, amplifier, ambient, particles);
}
示例8: onPotionSplash
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
/**
* Patching witch's potions
*
* @param event Event
*/
@EventHandler
public void onPotionSplash(PotionSplashEvent event)
{
ThrownPotion potion = event.getPotion();
if (potion.getShooter() instanceof Witch)
{
event.setCancelled(true);
List<PotionEffectType> potionEffects = new ArrayList<>();
potionEffects.add(PotionEffectType.SLOW_DIGGING);
potionEffects.add(PotionEffectType.CONFUSION);
potionEffects.add(PotionEffectType.NIGHT_VISION);
potionEffects.add(PotionEffectType.HUNGER);
potionEffects.add(PotionEffectType.BLINDNESS);
PotionEffect selected = new PotionEffect(potionEffects.get(new Random().nextInt(potionEffects.size())), 20 * 15, 1);
for (LivingEntity ent : event.getAffectedEntities())
ent.addPotionEffect(selected);
}
}
示例9: onPlayerMove
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
@EventHandler
public void onPlayerMove(PlayerMoveEvent event) {
final Gamer g = Gamer.get(event.getPlayer());
if (g.getVariable("spectator") != null)
return;
if (g.getVariable("kit") != Kit.get("tank"))
return;
g.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 1, 100), true);
if (g.getPlayer().isSprinting()) {
new BukkitRunnable() {
public void run() {
g.getPlayer().setSprinting(false);
}
}.runTaskLater(Nexus.getPlugin(), 1);
}
}
示例10: buildFromJson
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
@Override
public Map<String, Object> buildFromJson(Map<String, JsonElement> configuration) throws Exception
{
if (configuration.containsKey("effects"))
{
JsonArray potionEffectsJson = configuration.get("effects").getAsJsonArray();
for (int i = 0; i < potionEffectsJson.size(); i++)
{
JsonObject potionEffectJson = potionEffectsJson.get(i).getAsJsonObject();
this.addPotionEffect(PotionEffectType.getByName(potionEffectJson.get("effect").getAsString()), potionEffectJson.get("level").getAsInt());
}
}
return this.build();
}
示例11: create
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
public static Pig create(Location l) {
Pig hov = (Pig) l.getWorld().spawnEntity(l, EntityType.PIG);
hov.setSaddle(true);
hov.setCustomName("HoverBike");
hov.addScoreboardTag("speed:10");
hov.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 30, true, false));
hov.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, Integer.MAX_VALUE, 1, true, false));
//hov.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, Integer.MAX_VALUE, 1, true, false));
hov.setAI(false);
hov.setGravity(true);
hov.setSilent(true);
hov.setMaxHealth(100);
hov.setHealth(100);
return hov;
}
示例12: onAttack
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
@EventHandler(priority = EventPriority.HIGHEST)
public void onAttack(EntityDamageByEntityEvent event)
{
if(event.isCancelled()) return;
if(event.getDamager() instanceof Player && event.getEntity() instanceof LivingEntity && event.getCause() == DamageCause.ENTITY_ATTACK)
{
Player player = (Player)event.getDamager();
ItemStack mainItem = player.getInventory().getItemInMainHand();
LivingEntity enemy = (LivingEntity)event.getEntity();
Random rand = new Random();
if(mainItem.getType() == Material.GOLD_AXE)
{
enemy.addPotionEffect(new PotionEffect(PotionEffectType.WITHER, 480, 2, false));
enemy.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 480, 0, false));
enemy.getLocation().getWorld().playSound(enemy.getLocation(), Sound.ENTITY_WITHER_SPAWN, 1.0F, rand.nextFloat() * 0.4F + 0.8F);
}
}
}
示例13: onEntityDamage
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
@EventHandler
public void onEntityDamage(EntityDamageByEntityEvent event) {
if(event.getEntity() instanceof Player && event.getDamager() instanceof Player) {
Player damager = (Player) event.getDamager();
if(damager.getInventory().getItemInMainHand() == null)
return;
if(!damager.getInventory().getItemInMainHand().hasItemMeta())
return;
if(damager.getInventory().getItemInMainHand().getItemMeta().getLore() == null)
return;
Player victim = (Player) event.getEntity();
if(!Utility.canAttack(damager, victim))
return;
List<String> lore = damager.getInventory().getItemInMainHand().getItemMeta().getLore();
if(contains(lore, "Wither Damage")) {
victim.addPotionEffect(new PotionEffect(PotionEffectType.WITHER, 200, 1));
}
if(contains(lore,"Fire Damage")) {
victim.setFireTicks(100);
}
if(contains(lore,"Poison Damage")) {
victim.addPotionEffect(new PotionEffect(PotionEffectType.POISON, 200, 0));
}
}
}
示例14: parseCompactPotionEffect
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
public static PotionEffect parseCompactPotionEffect(Node node, String text) throws InvalidXMLException {
String[] parts = text.split(":");
if(parts.length == 0) throw new InvalidXMLException("Missing potion effect", node);
PotionEffectType type = parsePotionEffectType(node, parts[0]);
Duration duration = TimeUtils.INF_POSITIVE;
int amplifier = 0;
boolean ambient = false;
if(parts.length >= 2) {
duration = parseTickDuration(node, parts[1]);
if(parts.length >= 3) {
amplifier = parseNumber(node, parts[2], Integer.class);
if(parts.length >= 4) {
ambient = parseBoolean(node, parts[3]);
}
}
}
return createPotionEffect(node, type, duration, amplifier, ambient);
}
示例15: checkAscension
import org.bukkit.potion.PotionEffectType; //导入依赖的package包/类
public void checkAscension(Player player, double y1, double y2) {
int max = MagicNumbers.ASCENSION_COUNT_MAX;
if(player.hasPotionEffect(PotionEffectType.JUMP)) {
max += 12;
}
Block block = player.getLocation().getBlock();
if(!isMovingExempt(player) && !Utilities.isInWater(player) && !player.isFlying() && !Utilities
.isClimbableBlock(player.getLocation().getBlock()) && !player.isInsideVehicle() && !MOVE_UP_BLOCKS
.contains(player.getLocation().add(0,-1,0).getBlock().getType()) && !MOVE_UP_BLOCKS.contains(player
.getLocation().add(0,-1.5,0).getBlock().getType())) {
if(y1 < y2) {
if(!block.getRelative(BlockFace.NORTH).isLiquid() && !block.getRelative(BlockFace.SOUTH).isLiquid() && !block.getRelative(BlockFace.EAST).isLiquid() && !block.getRelative(BlockFace.WEST).isLiquid()) {
incrementOld(player,ascensionCount,max);
if(ascensionCount.get(player) > max) {
for(Player pla : DynamicAC.instance.onlinestaff) {
pla.sendMessage(DynamicAC.prefix + player.getName() + " ascended Y Axis too fast!");
}
DACManager.getUserManager().incrementUser(DACManager.getUserManager().getUser(player.getName
()),"Climbed too fast");
}
}
}
}
}