@Override public String getName() { return this.player.getName(); }
@Override public UUID getUniqueId() { return player.getUniqueId(); }
@Override public boolean hasPermission(EntityPlayerMP player, String permission) { return ((Player) player).hasPermission(permission); }
@Override public SessionKey getSessionKey() { return new SessionKeyImpl(player.getUniqueId(), player.getName()); }
@Override public Location getLocation() { org.spongepowered.api.world.Location<World> entityLoc = this.player.getLocation(); Vector3d entityRot = this.player.getRotation(); return SpongeWorldEdit.inst().getAdapter().adapt(entityLoc, entityRot); }
@Override public void setPosition(Vector3 pos, float pitch, float yaw) { org.spongepowered.api.world.Location<World> loc = new org.spongepowered.api.world.Location<>( this.player.getWorld(), pos.getX(), pos.getY(), pos.getZ() ); this.player.setLocationAndRotation(loc, new Vector3d(pitch, yaw, 0)); }
private void sendUpdateSelf() { receiver.getTabList().removeEntry(receiver.getUniqueId()); receiver.getTabList().addEntry(TabListEntry.builder() .displayName(receiver.getDisplayNameData().displayName().get()) .latency(receiver.getConnection().getLatency()) .list(receiver.getTabList()) .gameMode(receiver.getGameModeData().type().get()) .profile(receiver.getProfile()) .build()); Location<World> oldLocation = receiver.getLocation(); Vector3d rotation = receiver.getRotation(); World receiverWorld = receiver.getWorld(); Sponge.getServer().getWorlds() .stream() .filter(world -> !world.equals(receiverWorld)) .findFirst() .ifPresent(world -> { receiver.setLocation(world.getSpawnLocation()); receiver.setLocationAndRotation(oldLocation, rotation); }); } }
private void actOnJoinEvent(ClientConnectionEvent.Join event) { Player player = event.getTargetEntity(); UUID uuid = player.getUniqueId(); long time = System.currentTimeMillis(); SpongeAFKListener.AFK_TRACKER.performedAction(uuid, time); String world = player.getWorld().getName(); Optional<GameMode> gameMode = player.getGameModeData().get(Keys.GAME_MODE); String gm = gameMode.map(mode -> mode.getName().toUpperCase()).orElse("ADVENTURE"); InetAddress address = player.getConnection().getAddress().getAddress(); String playerName = player.getName(); String displayName = player.getDisplayNameData().displayName().get().toPlain(); boolean gatheringGeolocations = config.isTrue(DataGatheringSettings.GEOLOCATIONS); processing.submitCritical(() -> sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), time, world, gm))); runnableFactory.create("Player Register: " + uuid, processors.player().registerProcessor(uuid, () -> time, playerName, gatheringGeolocations ? processors.player().ipUpdateProcessor(uuid, address, time) : null, processors.player().nameProcessor(uuid, playerName, displayName), processors.info().playerPageUpdateProcessor(uuid) ) ).runTaskAsynchronously(); }
live.transferToWorld(optWorld.get(), req.getPosition()); } else { live.transferToWorld(optWorld.get()); live.setLocation(new Location<>(live.getWorld(), req.getPosition())); live.setVelocity(req.getVelocity()); live.setRotation(req.getRotation()); live.setRotation(req.getScale()); live.offer(live.getFoodData().foodLevel().set(req.getFoodLevel())); live.offer(live.getFoodData().exhaustion().set(req.getExhaustion())); live.offer(live.getFoodData().saturation().set(req.getSaturation())); live.get(ExperienceHolderData.class).ifPresent(exp -> live.offer(exp.totalExperience().set(req.getTotalExperience()))); live.get(ExperienceHolderData.class).ifPresent(exp -> live.offer(exp.level().set(req.getLevel()))); live.get(ExperienceHolderData.class).ifPresent(exp -> live.offer(exp.experienceSinceLevel().set(req.getExperienceSinceLevel()))); live.offer(live.getHealthData().health().set(req.getHealth()));
private Optional<Painting> getPainting(Player player) { return player.getWorld().getEntity(paintings.get(player.getUniqueId())).filter(entity -> entity instanceof Painting).map(entity -> (Painting) entity); }
private void performedAction(Player player) { UUID uuid = player.getUniqueId(); long time = System.currentTimeMillis(); if (player.hasPermission(Permissions.IGNORE_AFK.getPermission())) { AFK_TRACKER.hasIgnorePermission(uuid); } AFK_TRACKER.performedAction(uuid, time); }
@Listener public void onPlayerInteract(InteractBlockEvent.Secondary event, @First Player player) { event.getTargetBlock().getLocation().ifPresent((location) -> { int powerLevel = BlockUtil.getDirectBlockPowerLevel(location).orElse(-1); HandType hand = event instanceof InteractBlockEvent.Secondary.MainHand ? HandTypes.MAIN_HAND : HandTypes.OFF_HAND; if (powerLevel >= 0 && permissionNode.hasPermission(player) && player.getItemInHand(hand).isPresent() && player.getItemInHand(hand).get().getType() == ammeterItem.getValue().getType()) { player.sendMessage(getCurrentLine(powerLevel)); event.setCancelled(true); } }); }
private void addChair(Player player, Location<World> location) { Entity entity = location.getExtent().createEntity(EntityTypes.ARMOR_STAND, location.getBlockPosition().toDouble().sub(-0.5, 1.2, -0.5)); entity.offer(Keys.INVISIBLE, true); entity.offer(Keys.HAS_GRAVITY, false); if (faceCorrectDirection.getValue() && location.supports(Keys.DIRECTION)) { Vector3d euler = LocationUtil.cartesianToEuler(location.get(Keys.DIRECTION).orElse(Direction.NONE).getOpposite().asOffset()); entity.setRotation(euler); player.setRotation(euler); } Sponge.getCauseStackManager().pushCause(player); location.getExtent().spawnEntity(entity); Sponge.getCauseStackManager().popCause(); Chair<?> chair = new Chair<>((ArmorStand) entity, location, player.getLocation()); entity.addPassenger(player); player.sendMessage(Text.of(TextColors.YELLOW, "You sit down!")); chairs.put(player.getUniqueId(), chair); }
private void actOnChatEvent(@First Player player) { UUID uuid = player.getUniqueId(); String name = player.getName(); String displayName = player.getDisplayNameData().displayName().get().toPlain(); processing.submit(processorFactory.nameProcessor(uuid, name, displayName)); }
@Listener public void onBlockClick(InteractBlockEvent.Secondary.MainHand event, @First Player player) { event.getTargetBlock().getLocation().ifPresent(location -> { if (!isValid(location)) return; if (player.get(Keys.IS_SNEAKING).orElse(false)) return; if (!usePermissions.hasPermission(player)) { player.sendMessage(USE_PERMISSIONS); return; } if (requireSigns.getValue() && !hasSign(location, new ArrayList<>(), location)) { return; } if (getChair(location) != null) { player.sendMessage(Text.of(TextColors.RED, "Chair already occupied!")); return; } if (chairs.containsKey(player.getUniqueId())) { removeChair(chairs.get(player.getUniqueId()), true); } addChair(player, location); }); }
@Override public Optional<CompletableFuture<?>> process(QuerySession session, String parameter, String value, Query query) { if (session.getCommandSource() instanceof Player) { Player player = (Player) session.getCommandSource(); Location<World> location = player.getLocation(); int radius = Integer.parseInt(value); int maxRadius = Prism.getInstance().getConfiguration().getNode("limits", "radius", "max").getInt(); // Enforce max radius unless player has override perms if (radius > maxRadius && !player.hasPermission("prism.override.radius")) { // @todo move this player.sendMessage(Format.subduedHeading(String.format("Limiting radius to maximum of %d", maxRadius))); radius = maxRadius; } session.setRadius(radius); query.addCondition(ConditionGroup.from(location, radius)); } return Optional.empty(); }
@Listener(order = Order.POST) public void onInteract(InteractBlockEvent.Primary event, @First Player player) { final Optional<ItemStack> optionalStack = player.getItemInHand(HandTypes.MAIN_HAND); if (!optionalStack.isPresent() || optionalStack.get().getType().getType() != ItemTypes.ENDER_EYE || !player.hasPermission("smite.use")) { return; .end(); final Optional<EntityUniverse.EntityHit> optionalEntityHit = player.getWorld() .getIntersectingEntities(player, MAX_DISTANCE, hit -> hit.getEntity() != player) .stream().reduce((a, b) -> a.getDistance() < b.getDistance() ? a : b); final Entity entity = player.getWorld().createEntity(EntityTypes.LIGHTNING, closest); Sponge.getCauseStackManager().pushCause(entity); player.getWorld().spawnEntity(entity); Sponge.getCauseStackManager().popCause();
@Override public void printRaw(String msg) { for (String part : msg.split("\n")) { this.player.sendMessage(TextSerializers.FORMATTING_CODE.deserialize(part)); } }
@Override public CommandResult execute(CommandSource src, CommandContext gargs) throws CommandException { Player player = (Player) gargs.getOne("sniper").get(); Player target = (Player) gargs.getOne("target").get(); SniperManager.get().getSniperForPlayer(target).undo(1); player.sendMessage(Text.of(TextColors.GREEN, "One action of player " + target.getName() + " has been undone")); return CommandResult.success(); } }
@Override public void teleport(Location location) { if ((Math.abs(location.getX()) >= 30000000) || (Math.abs(location.getZ()) >= 30000000)) { return; } String world = this.player.getWorld().getName(); if (!world.equals(location.getWorld())) { this.player.transferToWorld(location.getWorld(), new Vector3d(location.getX(), location.getY(), location.getZ())); } else { org.spongepowered.api.world.Location<World> current = this.player.getLocation(); current = current.setPosition(new Vector3d(location.getX(), location.getY(), location.getZ())); this.player.setLocation(current); } }