下面列出了org.bukkit.util.CachedServerIcon#ch.njol.util.coll.CollectionUtils 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
@Nullable
public Class<?>[] acceptChange(ChangeMode mode) {
Class<?> returnType = getExpr().getReturnType();
if (FireworkEffect.class.isAssignableFrom(returnType))
return CollectionUtils.array(Color[].class);
if (mode != ChangeMode.SET && !getExpr().isSingle())
return null;
if (Entity.class.isAssignableFrom(returnType))
return CollectionUtils.array(Color.class);
else if (Block.class.isAssignableFrom(returnType))
return CollectionUtils.array(Color.class);
if (ItemType.class.isAssignableFrom(returnType))
return CollectionUtils.array(Color.class);
return null;
}
@SuppressWarnings("unchecked")
@Override
public Class<?>[] acceptChange(final Changer.ChangeMode mode) {
if (mode == Changer.ChangeMode.DELETE) {
return CollectionUtils.array(Object.class);
}
switch (ty) {
case 0: {
if (mode == Changer.ChangeMode.SET) {
return CollectionUtils.array(Object.class);
}
break;
}
case 1:
case 2:
case 3:
if (mode == Changer.ChangeMode.ADD || mode == Changer.ChangeMode.REMOVE) {
return CollectionUtils.array(Object.class);
}
break;
}
return null;
}
@Override
@Nullable
public Class<?>[] acceptChange(ChangeMode mode) {
if (!isReal) {
if (ScriptLoader.hasDelayBefore.isTrue()) {
Skript.error("Can't change the fake max players count anymore after the server list ping event has already passed");
return null;
}
switch (mode) {
case SET:
case ADD:
case REMOVE:
case DELETE:
case RESET:
return CollectionUtils.array(Number.class);
}
}
return null;
}
@Override
@Nullable
public Class<?>[] acceptChange(ChangeMode mode) {
if (mode == ChangeMode.DELETE && (type.acceptChange & ~PLAYER) != 0 || mode == ChangeMode.RESET)
return new Class[0];
if (mode != ChangeMode.SET)
return null;
if ((type.acceptChange & PLAYER) != 0 && Player.class.isAssignableFrom(getExpr().getReturnType())) {
changeType = PLAYER;
} else if ((type.acceptChange & INVENTORY) != 0 && Inventory.class.isAssignableFrom(getExpr().getReturnType())) {
changeType = INVENTORY;
} else if ((type.acceptChange & ITEM) != 0 && (getExpr().isSingle() && ChangerUtils.acceptsChange(getExpr(), ChangeMode.SET, ItemStack.class, ItemType.class) || Slot.class.isAssignableFrom(getExpr().getReturnType()))) {
changeType = ITEM;
} else if ((type.acceptChange & ENTITY) != 0 && Entity.class.isAssignableFrom(getExpr().getReturnType())) {
if (type == NameType.NAME && Player.class.isAssignableFrom(getExpr().getReturnType())) {
Skript.error("Can't change the Minecraft name of a player. Change the 'display name' or 'tab list name' instead.");
return null;
}
changeType = ENTITY;
}
return changeType == 0 ? null : CollectionUtils.array(String.class);
}
@Override
@Nullable
public Class<?>[] acceptChange(ChangeMode mode) {
if (!isDefault) {
if (ScriptLoader.hasDelayBefore.isTrue()) {
Skript.error("Can't change the MOTD anymore after the server list ping event has already passed");
return null;
}
switch (mode) {
case SET:
case DELETE:
case RESET:
return CollectionUtils.array(String.class);
}
}
return null;
}
@Override
@Nullable
public Class<?>[] acceptChange(final ChangeMode mode) {
switch (mode) {
case ADD:
case REMOVE:
return CollectionUtils.array(Timespan.class);
case SET:
return CollectionUtils.array(Time.class, Timeperiod.class);
case DELETE:
case REMOVE_ALL:
case RESET:
default:
return null;
}
}
@SuppressWarnings("unchecked")
@Override
@Nullable
public Class<?>[] acceptChange(final ChangeMode mode) {
switch (mode) {
case SET:
return CollectionUtils.array(ItemStack.class);
case ADD:
case REMOVE:
case DELETE:
case REMOVE_ALL:
case RESET:
default:
return null;
}
}
@Override
@Nullable
public Class<?>[] acceptChange(ChangeMode mode) {
if (ScriptLoader.hasDelayBefore.isTrue()) {
Skript.error("Can't change the hover list anymore after the server list ping event has already passed");
return null;
}
switch (mode) {
case SET:
case ADD:
case REMOVE:
case DELETE:
case RESET:
return CollectionUtils.array(String[].class, Player[].class);
}
return null;
}
@Override
protected Inventory[] get(Event e) {
String name = this.name != null ? this.name.getSingle(e) : "Chest";
Number rows = this.rows != null ? this.rows.getSingle(e) : 3;
// Shouldn't be null at this point, but empty variables are a thing
rows = rows == null ? 3 : rows;
name = name == null ? "Chest" : name;
int size = rows.intValue() * 9;
if (size % 9 != 0) {
size = 27;
}
// Sanitize inventory size
if (size < 0) // Negative sizes go and crash stuff deep in NMS code
size = 0;
if (size > 255) // Too big values cause visual weirdness
size = 255 * 9; // Plus, REALLY big values will HANG the server
return CollectionUtils.array(Bukkit.createInventory(null, size, name));
}
@Override
@Nullable
public Class<?>[] acceptChange(ChangeMode mode) {
if (!isReal) {
if (ScriptLoader.hasDelayBefore.isTrue()) {
Skript.error("Can't change the shown online players count anymore after the server list ping event has already passed");
return null;
}
switch (mode) {
case SET:
case ADD:
case REMOVE:
case DELETE:
case RESET:
return CollectionUtils.array(Number.class);
}
}
return null;
}
@SuppressWarnings("null")
@Override
protected boolean init(@Nullable Class<? extends Sheep> c, @Nullable Sheep e) {
if (e != null) {
sheared = e.isSheared() ? 1 : -1;
colors = CollectionUtils.array(SkriptColor.fromDyeColor(e.getColor()));
}
return true;
}
@SuppressWarnings("null")
@Override
public T getSingle() {
if (getAnd() && data.length > 1)
throw new SkriptAPIException("Call to getSingle on a non-single expression");
return CollectionUtils.getRandom(data);
}
@Override
@Nullable
public Class<?>[] acceptChange(ChangeMode mode) {
switch (mode) {
case SET:
case ADD:
case REMOVE:
case DELETE:
case RESET:
return CollectionUtils.array(String[].class);
default:
return null;
}
}
@Override
@Nullable
public Class<?>[] acceptChange(ChangeMode mode) {
if (ScriptLoader.hasDelayBefore.isTrue()) {
Skript.error("Can't change the protocol version anymore after the server list ping event has already passed");
return null;
}
if (mode == ChangeMode.SET)
return CollectionUtils.array(Number.class);
return null;
}
@SuppressWarnings("unchecked")
@Override
public Class<?>[] acceptChange(final Changer.ChangeMode mode) {
if (mode == Changer.ChangeMode.SET) {
return CollectionUtils.array(String[].class);
}
return null;
}
@SuppressWarnings("unchecked")
@Override
@Nullable
public Class<?>[] acceptChange(final ChangeMode mode) {
if (mode == ChangeMode.SET)
return CollectionUtils.array(String.class);
return null;
}
@Override
@SuppressWarnings("null")
protected Vector[] get(Event e) {
Vector v1 = first.getSingle(e);
Vector v2 = second.getSingle(e);
if (v1 == null || v2 == null)
return null;
return CollectionUtils.array(v1.clone().crossProduct(v2));
}
@Override
@Nullable
public Class<?>[] acceptChange(final ChangeMode mode) {
if (!Block.class.isAssignableFrom(getExpr().getReturnType()))
return null;
if (mode == ChangeMode.SET)
return CollectionUtils.array(Direction.class);
return null;
}
@Override
@Nullable
public Class<?>[] acceptChange(final Changer.ChangeMode mode) {
if (mode == ChangeMode.SET)
return CollectionUtils.array(World.class);
return null;
}
@Nullable
@Override
public Class<?>[] acceptChange(Changer.ChangeMode mode) {
if (mode == ChangeMode.SET || mode == ChangeMode.RESET)
return CollectionUtils.array(EntityData.class);
return null;
}
@Nullable
@Override
public Class<?>[] acceptChange(Changer.ChangeMode mode) {
if (mode == Changer.ChangeMode.SET
|| mode == Changer.ChangeMode.RESET
|| mode == Changer.ChangeMode.DELETE) {
return CollectionUtils.array(Entity.class);
}
return null;
}
@Override
@Nullable
public String[] get(Event e) {
if (isDefault)
return CollectionUtils.array(Bukkit.getMotd());
else
return CollectionUtils.array(((ServerListPingEvent) e).getMotd());
}
@Override
@SuppressWarnings("null")
public Class<?>[] acceptChange(ChangeMode mode) {
if ((mode == ChangeMode.ADD || mode == ChangeMode.REMOVE || mode == ChangeMode.SET || mode == ChangeMode.DELETE || mode == ChangeMode.RESET))
return CollectionUtils.array(Vector.class);
return null;
}
@Override
protected Integer[] get(final Event e) {
Enchantment[] enchantments = enchants.getArray(e);
return Stream.of(items.getArray(e))
.map(ItemType::getEnchantmentTypes)
.flatMap(Stream::of)
.filter(enchantment -> CollectionUtils.contains(enchantments, enchantment.getType()))
.map(EnchantmentType::getLevel)
.toArray(Integer[]::new);
}
@Nullable
@Override
public Class<?>[] acceptChange(ChangeMode mode) {
switch (mode) {
case SET:
case REMOVE:
case ADD:
return CollectionUtils.array(Number.class);
default:
return null;
}
}
@Override
@SuppressWarnings("null")
protected Double[] get(Event e) {
Vector v1 = first.getSingle(e);
Vector v2 = second.getSingle(e);
if (v1 == null || v2 == null)
return null;
return CollectionUtils.array(v1.getX() * v2.getX() + v1.getY() * v2.getY() + v1.getZ() * v2.getZ());
}
@Override
@Nullable
public Class<?>[] acceptChange(Changer.ChangeMode mode) {
switch (mode) {
case SET:
case DELETE:
case RESET:
return CollectionUtils.array(String.class);
}
return null;
}
@Override
@SuppressWarnings("null")
protected Vector[] get(Event e) {
Number r = radius.getSingle(e);
Number y = yaw.getSingle(e);
Number h = height.getSingle(e);
if (r == null || y == null || h == null)
return null;
return CollectionUtils.array(VectorMath.fromCylindricalCoordinates(r.doubleValue(), VectorMath.fromSkriptYaw(y.floatValue()), h.doubleValue()));
}
@Override
@Nullable
public Class<?>[] acceptChange(final ChangeMode mode) {
if (mode == ChangeMode.DELETE || mode == ChangeMode.SET)
return CollectionUtils.array(WeatherType.class);
return null;
}
@SuppressWarnings("unchecked")
@Override
@Nullable
public Class<?>[] acceptChange(final ChangeMode mode) {
if (mode == ChangeMode.REMOVE_ALL)
return null;
return CollectionUtils.array(Number.class);
}