下面列出了org.bukkit.entity.Player#getFlySpeed ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void change(final Event e, final @Nullable Object[] delta, final ChangeMode mode) throws UnsupportedOperationException {
float input = delta == null ? 0 : ((Number) delta[0]).floatValue();
for (final Player p : getExpr().getArray(e)) {
float oldSpeed = walk ? p.getWalkSpeed() : p.getFlySpeed();
float newSpeed;
switch (mode) {
case SET:
newSpeed = input;
break;
case ADD:
newSpeed = oldSpeed + input;
break;
case REMOVE:
newSpeed = oldSpeed - input;
break;
//$CASES-OMITTED$
default:
newSpeed = walk ? 0.2f : 0.1f;
break;
}
final float d = Math2.fit(-1, newSpeed, 1);
if (walk)
p.setWalkSpeed(d);
else
p.setFlySpeed(d);
}
}
/**
* Creates a LimboPlayer with the given player's details.
*
* @param player the player to process
* @param isRegistered whether the player is registered
* @param location the player location
* @return limbo player with the player's data
*/
LimboPlayer createLimboPlayer(Player player, boolean isRegistered, Location location) {
// For safety reasons an unregistered player should not have OP status after registration
boolean isOperator = isRegistered && player.isOp();
boolean flyEnabled = player.getAllowFlight();
float walkSpeed = player.getWalkSpeed();
float flySpeed = player.getFlySpeed();
Collection<String> playerGroups = permissionsManager.hasGroupSupport()
? permissionsManager.getGroups(player) : Collections.emptyList();
logger.debug("Player `{0}` has groups `{1}`", player.getName(), String.join(", ", playerGroups));
return new LimboPlayer(location, isOperator, playerGroups, flyEnabled, walkSpeed, flySpeed);
}
@SuppressWarnings("null")
@Override
public Float convert(final Player p) {
return walk ? p.getWalkSpeed() : p.getFlySpeed();
}
private static LimboPlayer convertToLimboPlayer(Player player, Location location, Collection<String> groups) {
return new LimboPlayer(location, player.isOp(), groups, player.getAllowFlight(),
player.getWalkSpeed(), player.getFlySpeed());
}