本文整理汇总了Java中org.spongepowered.api.effect.potion.PotionEffectType类的典型用法代码示例。如果您正苦于以下问题:Java PotionEffectType类的具体用法?Java PotionEffectType怎么用?Java PotionEffectType使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PotionEffectType类属于org.spongepowered.api.effect.potion包,在下文中一共展示了PotionEffectType类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: registerDefaults
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
@Override
public void registerDefaults() {
registerOption("block_state", BlockState.class);
registerOption("color", Color.class);
registerOption("direction", Direction.class);
registerOption("firework_effects", List.class,
value -> value.isEmpty() ? new IllegalArgumentException("The firework effects list may not be empty") : null);
registerOption("quantity", Integer.class,
value -> value < 1 ? new IllegalArgumentException("Quantity must be at least 1") : null);
registerOption("item_stack_snapshot", ItemStackSnapshot.class);
registerOption("note", NotePitch.class);
registerOption("offset", Vector3d.class);
registerOption("potion_effect_type", PotionEffectType.class);
registerOption("scale", Double.class,
value -> value < 0 ? new IllegalArgumentException("Scale may not be negative") : null);
registerOption("velocity", Vector3d.class);
registerOption("slow_horizontal_velocity", Boolean.class);
}
示例2: buildContent
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
@Override
protected Optional<PotionEffect> buildContent(DataView container) throws InvalidDataException {
checkNotNull(container);
if (!container.contains(DataQueries.POTION_TYPE) || !container.contains(DataQueries.POTION_DURATION)
|| !container.contains(DataQueries.POTION_AMPLIFIER) || !container.contains(DataQueries.POTION_AMBIANCE)
|| !container.contains(DataQueries.POTION_SHOWS_PARTICLES)) {
return Optional.empty();
}
String effectName = container.getString(DataQueries.POTION_TYPE).get();
Optional<PotionEffectType> optional = Sponge.getRegistry().getType(PotionEffectType.class, effectName);
if (!optional.isPresent()) {
throw new InvalidDataException("The container has an invalid potion type name: " + effectName);
}
int duration = container.getInt(DataQueries.POTION_DURATION).get();
int amplifier = container.getInt(DataQueries.POTION_AMPLIFIER).get();
boolean ambient = container.getBoolean(DataQueries.POTION_AMBIANCE).get();
boolean showParticles = container.getBoolean(DataQueries.POTION_SHOWS_PARTICLES).get();
return Optional.of(new LanternPotionEffect(optional.get(), duration, amplifier, ambient, showParticles));
}
示例3: throwSlashPotion
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
private void throwSlashPotion(Location<World> location) {
PotionEffectType[] thrownTypes = new PotionEffectType[] {
PotionEffectTypes.INSTANT_DAMAGE, PotionEffectTypes.INSTANT_DAMAGE,
PotionEffectTypes.POISON, PotionEffectTypes.WEAKNESS
};
Entity entity = location.getExtent().createEntity(EntityTypes.SPLASH_POTION, location.getPosition());
entity.setVelocity(new Vector3d(
random.nextDouble() * .5 - .25,
random.nextDouble() * .4 + .1,
random.nextDouble() * .5 - .25
));
PotionEffectType type = Probability.pickOneOf(thrownTypes);
PotionEffect effect = PotionEffect.of(type, 2, type.isInstant() ? 1 : 15 * 20);
entity.offer(Keys.POTION_EFFECTS, Lists.newArrayList(effect));
getRegion().getExtent().spawnEntity(entity, Cause.source(SpawnCause.builder().type(SpawnTypes.PLUGIN).build()).build());
}
示例4: throwSlashPotion
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
private void throwSlashPotion(Location<World> location) {
PotionEffectType[] thrownTypes = new PotionEffectType[] {
PotionEffectTypes.INSTANT_DAMAGE, PotionEffectTypes.INSTANT_DAMAGE,
PotionEffectTypes.POISON, PotionEffectTypes.WEAKNESS
};
Entity entity = location.getExtent().createEntity(EntityTypes.SPLASH_POTION, location.getPosition());
entity.setVelocity(new Vector3d(
random.nextDouble() * .5 - .25,
random.nextDouble() * .4 + .1,
random.nextDouble() * .5 - .25
));
PotionEffectType type = Probability.pickOneOf(thrownTypes);
PotionEffect effect = PotionEffect.of(type, 2, type.isInstant() ? 1 : 15 * 20);
entity.offer(Keys.POTION_EFFECTS, Lists.newArrayList(effect));
location.getExtent().spawnEntity(entity, Cause.source(SpawnCause.builder().type(SpawnTypes.PLUGIN).build()).build());
}
示例5: createPotionEffect
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
private PotionEffect createPotionEffect(PotionEffectType type, int amplifier, int duration) {
return PotionEffect.builder()
.potionType(type)
.amplifier(amplifier)
.particles(true)
.duration(duration).build();
}
示例6: awardPlayer
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
@Override
public boolean awardPlayer(Player player) {
final Optional<String> potionEffectTypeIDOpt = Util.safeGetString(this.data, "potionEffectType");
if (!potionEffectTypeIDOpt.isPresent()) {
this.plugin.getLogger().error("No potion effect type specified. Aborting.");
return false;
}
String potionEffectTypeID = potionEffectTypeIDOpt.get();
final Optional<PotionEffectType> optType = Sponge.getRegistry().getType(PotionEffectType.class,
potionEffectTypeID);
if (!optType.isPresent()) {
this.plugin.getLogger().error("Potion effect type " + potionEffectTypeID + " not found. Aborting.");
return false;
}
PotionEffect.Builder builder = Sponge.getRegistry().createBuilder(PotionEffect.Builder.class)
.potionType(optType.get());
Optional<Integer> durationOpt = Util.safeGetInt(this.data, "duration");
if (!durationOpt.isPresent()) {
this.plugin.getLogger().error("Potion effect duration not specified. Aborting.");
return false;
}
builder.duration(durationOpt.get());
builder.amplifier(Util.safeGetInt(this.data, "amplifier").orElse(1));
List<PotionEffect> currentEffects = player.get(Keys.POTION_EFFECTS).orElse(new ArrayList<>());
currentEffects.add(builder.build());
DataTransactionResult result = player.offer(Keys.POTION_EFFECTS, currentEffects);
return result.isSuccessful();
}
示例7: MessagePlayOutAddPotionEffect
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
public MessagePlayOutAddPotionEffect(int entityId, PotionEffectType potionEffectType, int duration, int amplifier,
boolean ambient, boolean showParticles) {
this.potionEffectType = potionEffectType;
this.entityId = entityId;
this.duration = duration;
this.amplifier = amplifier;
this.ambient = ambient;
this.showParticles = showParticles;
}
示例8: deserialize
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
@Nullable
public static PotionEffect deserialize(DataView dataView) {
final int internalId;
if (dataView.get(IDENTIFIER).get() instanceof Byte) {
internalId = dataView.getByte(IDENTIFIER).get() & 0xff;
} else {
internalId = dataView.getInt(IDENTIFIER).get();
}
final PotionEffectType effectType = PotionEffectTypeRegistryModule.get().getByInternalId(internalId).orElse(null);
if (effectType == null) {
Lantern.getLogger().warn("Unknown potion effect type: " + internalId);
return null;
}
final int amplifier = dataView.getInt(AMPLIFIER).get();
final int duration = dataView.getInt(DURATION).get();
final boolean ambient = dataView.getInt(AMBIENT).orElse(0) > 0;
final boolean particles = dataView.getInt(SHOW_PARTICLES).orElse(0) > 0;
return PotionEffect.builder()
.potionType(effectType)
.ambience(ambient)
.amplifier(amplifier)
.duration(duration)
.particles(particles)
.build();
}
示例9: bindPropertySupplier
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
@Override
public <T> void bindPropertySupplier(ContainerProperty<T> propertyType, Supplier<T> supplier) {
super.bindPropertySupplier(propertyType, supplier);
int index = -1;
if (propertyType == ContainerProperties.PRIMARY_POTION_EFFECT) {
index = 0;
} else if (propertyType == ContainerProperties.SECONDARY_POTION_EFFECT) {
index = 1;
}
if (index != -1) {
final Supplier<Optional<PotionEffectType>> supplier1 = (Supplier<Optional<PotionEffectType>>) supplier;
bindInternalProperty(index, () -> supplier1.get()
.map(type -> ((LanternPotionEffectType) type).getInternalId()).orElse(-1));
}
}
示例10: LanternPotionEffect
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
LanternPotionEffect(PotionEffectType effectType, int duration, int amplifier, boolean ambient, boolean showParticles) {
this.effectType = checkNotNull(effectType, "effectType");
this.showParticles = showParticles;
this.duration = duration;
this.amplifier = amplifier;
this.ambient = ambient;
}
示例11: hasPotionEffect
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
default boolean hasPotionEffect(PotionEffectType type) {
List<PotionEffect> potionEffects = getEntity().get(Keys.POTION_EFFECTS).get();
for (PotionEffect potionEffect : potionEffects) {
if (potionEffect.getType() == type) {
return true;
}
}
return false;
}
示例12: SkillPotion
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
public SkillPotion() {
super(PotionEffect.name);
Map<PotionEffectType, Long> list = new HashMap<>();
Collection<PotionEffectType> allOf = Sponge.getRegistry().getAllOf(PotionEffectType.class);
for (PotionEffectType type : allOf) {
list.put(type, 19000L);
}
SkillSettings settings = new SkillSettings();
settings.addNode("cooldown-reduced", 0, -125);
settings.addObjectNode("potions", gson.toJson(list));
}
示例13: execute
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
@Override
public void execute(CommandQueue queue, CommandEntry entry) {
EntityTag ent = EntityTag.getFor(queue.error, entry.getArgumentObject(queue, 0));
if (!ent.getInternal().supports(PotionEffectData.class)) {
queue.handleError(entry, "This entity type does not support potion effects!");
return;
}
PotionEffectData data = ent.getInternal().getOrCreate(PotionEffectData.class).get();
String name = entry.getArgumentObject(queue, 1).toString().toLowerCase();
Optional<PotionEffectType> type = Sponge.getRegistry().getType(PotionEffectType.class, name);
if (!type.isPresent()) {
queue.handleError(entry, "Invalid potion effect name: '" + name + "'!");
return;
}
DurationTag dur = DurationTag.getFor(queue.error, entry.getArgumentObject(queue, 2));
PotionEffect.Builder build = PotionEffect.builder().potionType(type.get()).duration((int) dur.getInternal() * 20);
if (entry.namedArgs.containsKey("amplifier")) {
IntegerTag amp = IntegerTag.getFor(queue.error, entry.getNamedArgumentObject(queue, "amplifier"));
build.amplifier((int) amp.getInternal() - 1);
}
if (entry.namedArgs.containsKey("ambient")) {
BooleanTag amb = BooleanTag.getFor(queue.error, entry.getNamedArgumentObject(queue, "ambient"));
build.ambience(amb.getInternal());
}
else {
build.particles(false);
}
if (entry.namedArgs.containsKey("particles")) {
BooleanTag part = BooleanTag.getFor(queue.error, entry.getNamedArgumentObject(queue, "particles"));
build.particles(part.getInternal());
}
else {
build.particles(true);
}
if (queue.shouldShowGood()) {
queue.outGood("Casting " + ColorSet.emphasis + type.get().getId() + ColorSet.good
+ " on " + ColorSet.emphasis + ent.debug() + ColorSet.good
+ " for " + ColorSet.emphasis + dur.debug() + ColorSet.good + " seconds!");
}
data.addElement(build.build());
ent.getInternal().offer(data);
}
示例14: PotionEffectTypeView
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
public PotionEffectTypeView(PotionEffectType value) {
super(value);
this.id = value.getId();
this.name = value.getTranslation().get();
}
示例15: MessagePlayOutRemovePotionEffect
import org.spongepowered.api.effect.potion.PotionEffectType; //导入依赖的package包/类
public MessagePlayOutRemovePotionEffect(int entityId, PotionEffectType potionEffectType) {
this.potionEffectType = potionEffectType;
this.entityId = entityId;
}