@Override public Collection<Actor> getConnectedUsers() { List<Actor> users = new ArrayList<>(); PlayerList scm = server.getPlayerList(); for (EntityPlayerMP entity : scm.getPlayers()) { if (entity != null) { users.add(new ForgePlayer(entity)); } } return users; } }
@Override public boolean hasPermission(EntityPlayerMP player, String permission) { ForgeConfiguration configuration = platform.getConfiguration(); return configuration.cheatMode || FMLCommonHandler.instance().getMinecraftServerInstance().getPlayerList().canSendCommands(player.getGameProfile()) || (configuration.creativeEnable && player.interactionManager.getGameType() == GameType.CREATIVE); }
@Nullable @Override public Player matchPlayer(Player player) { if (player instanceof ForgePlayer) { return player; } else { EntityPlayerMP entity = server.getPlayerList().getPlayerByUsername(player.getName()); return entity != null ? new ForgePlayer(entity) : null; } }
/** * @param player multi-player player * * @return block reach distance of player */ private double getBlockReachDistance_server( final EntityPlayerMP player ) { return player.interactionManager.getBlockReachDistance(); } }
public static void sendChunk( final Chunk c, final int verticalBits ) { try { final WorldServer ws = (WorldServer) c.getWorld(); final PlayerChunkMap pm = ws.getPlayerChunkMap(); final PlayerChunkMapEntry playerInstance = pm.getEntry( c.x, c.z ); if( playerInstance != null ) { playerInstance.sendPacket( new SPacketChunkData( c, verticalBits ) ); } } catch( final Throwable t ) { AELog.debug( t ); } }
void onFire(ItemStack bow, EntityLivingBase living, boolean infinity, EntityArrow arrow) { if(living instanceof EntityPlayerMP) { ToolCommons.damageItem(bow, 1, living, MANA_PER_DAMAGE); if(((EntityPlayerMP) living).interactionManager.getGameType().isSurvivalOrAdventure() && !infinity) PlayerHelper.consumeAmmo((EntityPlayerMP) living, AMMO_FUNC); } }
public void extendRange(Entity entity, double amount) { if (entity instanceof EntityPlayerMP) { PlayerInteractionManager mgr = ((EntityPlayerMP) entity).interactionManager; double reach = mgr.getBlockReachDistance(); mgr.setBlockReachDistance(reach + amount); } }
/** * Send message to all within 64 blocks that have this chunk loaded */ public static void sendToNearby(World world, BlockPos pos, IMessage toSend) { if(world instanceof WorldServer) { WorldServer ws = (WorldServer) world; for (EntityPlayer player : ws.playerEntities) { EntityPlayerMP playerMP = (EntityPlayerMP) player; if (playerMP.getDistanceSq(pos) < 64 * 64 && ws.getPlayerChunkMap().isPlayerWatchingChunk(playerMP, pos.getX() >> 4, pos.getZ() >> 4)) { HANDLER.sendTo(toSend, playerMP); } } } }
@Override public void execute(@Nonnull MinecraftServer server, @Nonnull ICommandSender sender, @Nonnull String[] args) { String json = I18n.translateToLocal("botaniamisc.shareMsg"); json = json.replaceAll("%name%", sender.getName()); json = json.replaceAll("%entry%", args[0]); json = json.replaceAll("%entryname%", I18n.translateToLocal(args[0])); ITextComponent component = ITextComponent.Serializer.jsonToComponent(json); server.getPlayerList().sendMessage(component); }
private void setState(Block block, BlockPos pos) { interactionManager.cancelDestroyingBlock(); interactionManager.durabilityRemainingOnBlock = -1; digPosition = pos; digBlock = block; currentDamage = -1; currentDamageState = -1; }
@Override public boolean playerIsInCreativeMode(EntityPlayer player) { if (player instanceof EntityPlayerMP) { EntityPlayerMP entityPlayerMP = (EntityPlayerMP) player; return entityPlayerMP.interactionManager.isCreative(); } return false; }
public static boolean isCreative(EntityPlayerMP entityPlayer) { return entityPlayer.theItemInWorldManager.isCreative(); /* * Minecraft m = Minecraft.getMinecraft(); return m.getIntegratedServer().getGameType().isCreative(); */ }
@SubscribeEvent public void tickStart(TickEvent event) { long now = System.currentTimeMillis(); if (now - lastRefresh > REFRESH_DELAY) { Set<UUID> onlineIds = new HashSet<>(); MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance(); if (server == null || server.getPlayerList() == null) { return; } for (EntityPlayerMP player : server.getPlayerList().getPlayers()) { if (player != null) { onlineIds.add(player.getUniqueID()); } } this.onlineIds = new CopyOnWriteArraySet<>(onlineIds); lastRefresh = now; } }
protected RayTraceResult raytraceFromEntity(World worldIn, EntityPlayer playerIn, boolean useLiquids) { float f = playerIn.rotationPitch; float f1 = playerIn.rotationYaw; double d0 = playerIn.posX; double d1 = playerIn.posY + (double) playerIn.getEyeHeight(); double d2 = playerIn.posZ; Vec3d vec3d = new Vec3d(d0, d1, d2); float f2 = MathHelper.cos(-f1 * 0.017453292F - (float) Math.PI); float f3 = MathHelper.sin(-f1 * 0.017453292F - (float) Math.PI); float f4 = -MathHelper.cos(-f * 0.017453292F); float f5 = MathHelper.sin(-f * 0.017453292F); float f6 = f3 * f4; float f7 = f2 * f4; double d3 = 5.0D; if(playerIn instanceof net.minecraft.entity.player.EntityPlayerMP) { d3 = ((net.minecraft.entity.player.EntityPlayerMP) playerIn).interactionManager.getBlockReachDistance(); } Vec3d vec3d1 = vec3d.add((double) f6 * d3, (double) f5 * d3, (double) f7 * d3); return worldIn.rayTraceBlocks(vec3d, vec3d1, useLiquids, !useLiquids, false); }
public static void dispatchTEToNearbyPlayers(TileEntity tile) { SPacketUpdateTileEntity packet = tile.getUpdatePacket(); if(packet != null && tile.getWorld() instanceof WorldServer) { PlayerChunkMapEntry chunk = ((WorldServer) tile.getWorld()).getPlayerChunkMap().getEntry(tile.getPos().getX() >> 4, tile.getPos().getZ() >> 4); if(chunk != null) { chunk.sendPacket(packet); } } }
public static void removeBlockWithDrops(EntityPlayer player, ItemStack stack, World world, BlockPos pos, Predicate<IBlockState> filter, boolean dispose, boolean particles) { if(!world.isBlockLoaded(pos)) return; IBlockState state = world.getBlockState(pos); Block block = state.getBlock(); if(!world.isRemote && filter.test(state) && !block.isAir(state, world, pos) && state.getPlayerRelativeBlockHardness(player, world, pos) > 0 && block.canHarvestBlock(player.world, pos, player)) { int exp = ForgeHooks.onBlockBreakEvent(world, ((EntityPlayerMP) player).interactionManager.getGameType(), (EntityPlayerMP) player, pos); if(exp == -1) return; if(!player.capabilities.isCreativeMode) { TileEntity tile = world.getTileEntity(pos); if(block.removedByPlayer(state, world, pos, player, true)) { block.onPlayerDestroy(world, pos, state); if(!dispose || !ItemElementiumPick.isDisposable(block)) { block.harvestBlock(world, player, pos, state, tile, stack); block.dropXpOnBlockBreak(world, pos, exp); } } damageItem(stack, 1, player, 80); } else world.setBlockToAir(pos); if(particles && ConfigHandler.blockBreakParticles && ConfigHandler.blockBreakParticlesTool) world.playEvent(2001, pos, Block.getStateId(state)); } }
@Override public List<EntityPlayer> getPlayers() { if( !Platform.isClient() ) { final MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance(); if( server != null ) { return (List) server.getPlayerList().getPlayers(); } } return new ArrayList<>(); }
public static LookDirection getPlayerRay( final EntityPlayer playerIn, final float eyeOffset ) { double reachDistance = 5.0d; final double x = playerIn.prevPosX + ( playerIn.posX - playerIn.prevPosX ); final double y = playerIn.prevPosY + ( playerIn.posY - playerIn.prevPosY ) + playerIn.getEyeHeight(); final double z = playerIn.prevPosZ + ( playerIn.posZ - playerIn.prevPosZ ); final float playerPitch = playerIn.prevRotationPitch + ( playerIn.rotationPitch - playerIn.prevRotationPitch ); final float playerYaw = playerIn.prevRotationYaw + ( playerIn.rotationYaw - playerIn.prevRotationYaw ); final float yawRayX = MathHelper.sin( -playerYaw * 0.017453292f - (float) Math.PI ); final float yawRayZ = MathHelper.cos( -playerYaw * 0.017453292f - (float) Math.PI ); final float pitchMultiplier = -MathHelper.cos( -playerPitch * 0.017453292F ); final float eyeRayY = MathHelper.sin( -playerPitch * 0.017453292F ); final float eyeRayX = yawRayX * pitchMultiplier; final float eyeRayZ = yawRayZ * pitchMultiplier; if( playerIn instanceof EntityPlayerMP ) { reachDistance = ( (EntityPlayerMP) playerIn ).interactionManager.getBlockReachDistance(); } final Vec3d from = new Vec3d( x, y, z ); final Vec3d to = from.addVector( eyeRayX * reachDistance, eyeRayY * reachDistance, eyeRayZ * reachDistance ); return new LookDirection( from, to ); }
private void clearPotions(EntityPlayer player) { int posXInt = MathHelper.floor(posX); int posZInt = MathHelper.floor(posZ); List<Potion> potionsToRemove = player.getActivePotionEffects().stream() .filter(effect -> effect.getDuration() < 160 && effect.getIsAmbient() && !effect.getPotion().isBadEffect()) .map(PotionEffect::getPotion) .distinct() .collect(Collectors.toList()); potionsToRemove.forEach(potion -> { player.removePotionEffect(potion); ((WorldServer) world).getPlayerChunkMap().getEntry(posXInt >> 4, posZInt >> 4).sendPacket(new SPacketRemoveEntityEffect(player.getEntityId(), potion)); }); }
private void initTicket() { if( Platform.isClient() ) { return; } this.ct = ForgeChunkManager.requestTicket( AppEng.instance(), this.world, Type.NORMAL ); if( this.ct == null ) { final MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance(); if( server != null ) { final List<EntityPlayerMP> pl = server.getPlayerList().getPlayers(); for( final EntityPlayerMP p : pl ) { p.sendMessage( new TextComponentString( "Can't chunk load.." ) ); } } return; } AELog.info( "New Ticket " + this.ct.toString() ); ForgeChunkManager.forceChunk( this.ct, new ChunkPos( this.pos.getX() >> 4, this.pos.getZ() >> 4 ) ); }