Search in sources :

Example 1 with Packet

use of net.minecraft.server.v1_15_R1.Packet in project jop by jop-devel.

the class Ppp method readIp.

/**
 *	get a Packet buffer and copy from receive buffer.
 */
void readIp() {
    int i, j, k;
    // PacketPool.getFreshRcvPacket(single);
    Packet p = null;
    if (p == null) {
        Dbg.wr('!');
        // try again later
        return;
    }
    // buf blocks receive buffer :-<
    int[] pb = p.buf;
    // minus ppp header and checksum
    cnt -= 6;
    rbuf[cnt + 4] = 0;
    rbuf[cnt + 4 + 1] = 0;
    rbuf[cnt + 4 + 2] = 0;
    // copy buffer
    k = 0;
    for (i = 0; i < cnt; i += 4) {
        for (j = 0; j < 4; ++j) {
            k <<= 8;
            // after header
            k += rbuf[i + j + 4];
        }
        pb[i >>> 2] = k;
    }
    p.setLen(cnt);
    Dbg.wr('r');
    Dbg.intVal(cnt);
    /*
dbgIp(pb[3]);
dbgIp(pb[4]);
for (i=0; i<(cnt+4)>>2; ++i) Dbg.hexVal(pb[i]);
Dbg.wr('\n');
*/
    cnt = 0;
    ready = false;
    // inform upper layer
    p.setStatus(Packet.RCV);
}
Also used : Packet(ejip123.Packet)

Example 2 with Packet

use of net.minecraft.server.v1_15_R1.Packet in project jop by jop-devel.

the class Tftp method resend.

private static void resend() {
    time <<= 1;
    if (time > 64) {
        Dbg.wr("TFTP give up");
        tftpInit();
        return;
    }
    Dbg.wr("TFTP resend ");
    Dbg.intVal(block_out);
    // retransmit DATA
    timeout = Timer.getTimeoutSec(time);
    Packet p = PacketPool.getFreshPacket();
    // Packet p = PacketPool.getPacket(Packet.FREE, Packet.ALLOC, ipLink);
    if (p == null) {
        // got no free buffer!
        Dbg.wr('!');
        Dbg.wr('b');
        return;
    }
    p.buf[Udp.DATA] = (DAT << 16) + block_out;
    if (block_out == endBlock) {
        // last block is zero length
        p.setLen(Udp.DATA * 4 + 4);
    } else {
        read(p.buf, block_out);
        p.setLen(Udp.DATA * 4 + 4 + 512);
    }
    Udp.send(p, srcIp, dstIp, dstPort);
}
Also used : Packet(ejip123.Packet)

Example 3 with Packet

use of net.minecraft.server.v1_15_R1.Packet in project vespa by vespa-engine.

the class VdsStreamingSearcher method doSearch2.

@Override
public Result doSearch2(Query query, QueryPacket queryPacket, CacheKey cacheKey, Execution execution) {
    // TODO refactor this method into smaller methods, it's hard to see the actual code
    lazyTrace(query, 7, "Routing to storage cluster ", getStorageClusterRouteSpec());
    if (route == null) {
        route = Route.parse(getStorageClusterRouteSpec());
    }
    lazyTrace(query, 8, "Route is ", route);
    lazyTrace(query, 7, "doSearch2(): query docsum class=", query.getPresentation().getSummary(), ", default docsum class=", getDefaultDocsumClass());
    if (query.getPresentation().getSummary() == null) {
        lazyTrace(query, 6, "doSearch2(): No summary class specified in query, using default: ", getDefaultDocsumClass());
        query.getPresentation().setSummary(getDefaultDocsumClass());
    } else {
        lazyTrace(query, 6, "doSearch2(): Summary class has been specified in query: ", query.getPresentation().getSummary());
    }
    lazyTrace(query, 8, "doSearch2(): rank properties=", query.getRanking());
    lazyTrace(query, 8, "doSearch2(): sort specification=", query.getRanking().getSorting() == null ? null : query.getRanking().getSorting().fieldOrders());
    int documentSelectionQueryParameterCount = 0;
    if (query.properties().getString(streamingUserid) != null)
        documentSelectionQueryParameterCount++;
    if (query.properties().getString(streamingGroupname) != null)
        documentSelectionQueryParameterCount++;
    if (query.properties().getString(streamingSelection) != null)
        documentSelectionQueryParameterCount++;
    if (documentSelectionQueryParameterCount != 1) {
        return new Result(query, ErrorMessage.createBackendCommunicationError("Streaming search needs one and " + "only one of these query parameters to be set: streaming.userid, streaming.groupname, " + "streaming.selection"));
    }
    query.trace("Routing to search cluster " + getSearchClusterConfigId(), 4);
    Visitor visitor = visitorFactory.createVisitor(query, getSearchClusterConfigId(), route);
    try {
        visitor.doSearch();
    } catch (ParseException e) {
        return new Result(query, ErrorMessage.createBackendCommunicationError("Failed to parse document selection string: " + e.getMessage() + "'."));
    } catch (TokenMgrError e) {
        return new Result(query, ErrorMessage.createBackendCommunicationError("Failed to tokenize document selection string: " + e.getMessage() + "'."));
    } catch (TimeoutException e) {
        return new Result(query, ErrorMessage.createTimeout(e.getMessage()));
    } catch (InterruptedException | IllegalArgumentException e) {
        return new Result(query, ErrorMessage.createBackendCommunicationError(e.getMessage()));
    }
    lazyTrace(query, 8, "offset=", query.getOffset(), ", hits=", query.getHits());
    Result result = new Result(query);
    // Sorted on rank
    List<SearchResult.Hit> hits = visitor.getHits();
    Map<String, DocumentSummary.Summary> summaryMap = visitor.getSummaryMap();
    lazyTrace(query, 7, "total hit count = ", visitor.getTotalHitCount(), ", returned hit count = ", hits.size(), ", summary count = ", summaryMap.size());
    result.setTotalHitCount(visitor.getTotalHitCount());
    query.trace(visitor.getStatistics().toString(), false, 2);
    query.getContext(true).setProperty(STREAMING_STATISTICS, visitor.getStatistics());
    Packet[] summaryPackets = new Packet[hits.size()];
    int index = 0;
    boolean skippedEarlierResult = false;
    for (SearchResult.Hit hit : hits) {
        if (!verifyDocId(hit.getDocId(), query, skippedEarlierResult)) {
            skippedEarlierResult = true;
            continue;
        }
        FastHit fastHit = buildSummaryHit(query, hit);
        result.hits().add(fastHit);
        DocumentSummary.Summary summary = summaryMap.get(hit.getDocId());
        if (summary != null) {
            DocsumPacket dp = new DocsumPacket(summary.getSummary());
            // log.log(LogLevel.SPAM, "DocsumPacket: " + dp);
            summaryPackets[index] = dp;
        } else {
            return new Result(query, ErrorMessage.createBackendCommunicationError("Did not find summary for hit with document id " + hit.getDocId()));
        }
        index++;
    }
    if (result.isFilled(query.getPresentation().getSummary())) {
        lazyTrace(query, 8, "Result is filled for summary class ", query.getPresentation().getSummary());
    } else {
        lazyTrace(query, 8, "Result is not filled for summary class ", query.getPresentation().getSummary());
    }
    List<Grouping> groupingList = visitor.getGroupings();
    lazyTrace(query, 8, "Grouping list=", groupingList);
    if (!groupingList.isEmpty()) {
        GroupingListHit groupHit = new GroupingListHit(groupingList, getDocsumDefinitionSet(query));
        result.hits().add(groupHit);
    }
    int skippedHits;
    try {
        FillHitsResult fillHitsResult = fillHits(result, summaryPackets, query.getPresentation().getSummary());
        skippedHits = fillHitsResult.skippedHits;
        if (fillHitsResult.error != null) {
            result.hits().addError(ErrorMessage.createTimeout(fillHitsResult.error));
            return result;
        }
    } catch (TimeoutException e) {
        result.hits().addError(ErrorMessage.createTimeout(e.getMessage()));
        return result;
    } catch (IOException e) {
        return new Result(query, ErrorMessage.createBackendCommunicationError("Error filling hits with summary fields"));
    }
    if (skippedHits == 0) {
        // TODO: cache results or result.analyzeHits(); ?
        query.trace("All hits have been filled", 4);
    } else {
        lazyTrace(query, 8, "Skipping some hits for query: ", result.getQuery());
    }
    lazyTrace(query, 8, "Returning result ", result);
    if (skippedHits > 0) {
        getLogger().info("skipping " + skippedHits + " hits for query: " + result.getQuery());
        result.hits().addError(com.yahoo.search.result.ErrorMessage.createTimeout("Missing hit summary data for " + skippedHits + " hits"));
    }
    return result;
}
Also used : IdString(com.yahoo.document.idstring.IdString) Result(com.yahoo.search.Result) SearchResult(com.yahoo.vdslib.SearchResult) TimeoutException(com.yahoo.prelude.fastsearch.TimeoutException) DocsumPacket(com.yahoo.fs4.DocsumPacket) QueryPacket(com.yahoo.fs4.QueryPacket) Packet(com.yahoo.fs4.Packet) DocsumPacket(com.yahoo.fs4.DocsumPacket) TokenMgrError(com.yahoo.document.select.parser.TokenMgrError) SearchResult(com.yahoo.vdslib.SearchResult) Grouping(com.yahoo.searchlib.aggregation.Grouping) IOException(java.io.IOException) GroupingListHit(com.yahoo.prelude.fastsearch.GroupingListHit) GroupingListHit(com.yahoo.prelude.fastsearch.GroupingListHit) FastHit(com.yahoo.prelude.fastsearch.FastHit) FastHit(com.yahoo.prelude.fastsearch.FastHit) DocumentSummary(com.yahoo.vdslib.DocumentSummary) ParseException(com.yahoo.document.select.parser.ParseException) DocumentSummary(com.yahoo.vdslib.DocumentSummary)

Example 4 with Packet

use of net.minecraft.server.v1_15_R1.Packet in project solinia3-core by mixxit.

the class ForgeUtils method sendForgeMessage.

public static void sendForgeMessage(Player player, String channelName, byte discriminator, String message) throws Exception {
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    DataOutputStream dataOut = new DataOutputStream(stream);
    try {
        // diesieben07 - Forge uses an unsigned byte for the discriminator, for a start
        // dataOut.writeInt(discriminator);
        dataOut.writeByte(discriminator);
        // diesieben07 - But you should really send some kind of length prefix
        // and then only read that much of the string
        // You're already using DataOuput, it has writeUTFString
        // dataOut.write(message.getBytes(StandardCharsets.UTF_8));
        dataOut.writeUTF(message);
        PacketPlayOutCustomPayload packet = new PacketPlayOutCustomPayload(new MinecraftKey(channelName), new PacketDataSerializer(Unpooled.wrappedBuffer(stream.toByteArray())));
        ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
    } finally {
        dataOut.close();
        stream.close();
    }
}
Also used : PacketDataSerializer(net.minecraft.server.v1_15_R1.PacketDataSerializer) DataOutputStream(java.io.DataOutputStream) PacketPlayOutCustomPayload(net.minecraft.server.v1_15_R1.PacketPlayOutCustomPayload) CraftPlayer(org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer) ByteArrayOutputStream(java.io.ByteArrayOutputStream) MinecraftKey(net.minecraft.server.v1_15_R1.MinecraftKey)

Example 5 with Packet

use of net.minecraft.server.v1_15_R1.Packet in project solinia3-core by mixxit.

the class Solinia3CorePlayerListener method onPlayerJoin.

@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
    if (event.getPlayer() != null)
        event.getPlayer().setCollidable(false);
    for (PotionEffect effect : event.getPlayer().getActivePotionEffects()) event.getPlayer().removePotionEffect(effect.getType());
    // disable knockback effects, try to remove mounted arrows
    try {
        if (event.getPlayer().getVehicle() != null) {
            event.getPlayer().eject();
            event.getPlayer().getVehicle().eject();
        }
        EntityHuman entityHuman = ((CraftPlayer) event.getPlayer()).getHandle();
        entityHuman.getAttributeInstance(GenericAttributes.KNOCKBACK_RESISTANCE).setValue(1.0D);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    SoliniaPlayerJoinEvent soliniaevent;
    try {
        ISoliniaPlayer solplayer = SoliniaPlayerAdapter.Adapt(event.getPlayer());
        soliniaevent = new SoliniaPlayerJoinEvent(event, solplayer);
        solplayer.resetPlayerStatus(plugin);
        Bukkit.getPluginManager().callEvent(soliniaevent);
        // Reset users mod version
        StateManager.getInstance().getPlayerManager().resetPlayerVersion(event.getPlayer().getUniqueId());
        // Reset users Zone Packet
        StateManager.getInstance().getPlayerManager().setPlayerLastZone(event.getPlayer(), -1);
        if (solplayer.isForceNewAlt() || (!solplayer.isPlayable() && !event.getPlayer().isOp() && !event.getPlayer().hasPermission("solinia.characterdonochangelocation"))) {
            event.getPlayer().sendMessage("You have been forced to create a new character");
            EntityUtils.teleportSafely(event.getPlayer(), Bukkit.getWorld("world").getSpawnLocation());
            StateManager.getInstance().getPlayerManager().createNewPlayerAlt(plugin, event.getPlayer(), false);
        }
        // patch
        if (solplayer.getClassObj() != null)
            solplayer.setChosenClass(true);
        else
            solplayer.setChosenClass(false);
        // patch
        if (solplayer.getRace() != null)
            solplayer.setChosenRace(true);
        else
            solplayer.setChosenRace(false);
        if (solplayer.getWorld().getPlayerIpNameMappings().get(event.getPlayer().getAddress().getAddress().toString()) == null) {
            solplayer.getWorld().getPlayerIpNameMappings().put(event.getPlayer().getAddress().getAddress().toString(), new ArrayList<String>());
        }
        String players = "";
        try {
            if (!solplayer.getWorld().getPlayerIpNameMappings().get(event.getPlayer().getAddress().getAddress().toString()).contains(event.getPlayer().getUniqueId().toString()))
                solplayer.getWorld().getPlayerIpNameMappings().get(event.getPlayer().getAddress().getAddress().toString()).add(event.getPlayer().getUniqueId().toString());
            ArrayList<String> playerUuids = solplayer.getWorld().getPlayerIpNameMappings().get(event.getPlayer().getAddress().getAddress().toString());
            for (String playerUuid : playerUuids) {
                try {
                    players += Bukkit.getOfflinePlayer(UUID.fromString(playerUuid)).getName() + " ";
                } catch (Exception e) {
                }
            }
            ChatUtils.SendHintToServer(HINT.PLAYER_JOIN, event.getPlayer().getName() + " (" + solplayer.getFullName() + ") has joined the game aka: " + players);
        } catch (Exception e) {
        // not vital if this fails
        }
        try {
            LivingEntity pet = StateManager.getInstance().getEntityManager().getPet(event.getPlayer().getUniqueId());
            if (pet != null) {
                ISoliniaLivingEntity petsolEntity = SoliniaLivingEntityAdapter.Adapt(pet);
                StateManager.getInstance().getEntityManager().removePet(event.getPlayer().getUniqueId(), !petsolEntity.isCharmed());
            }
        } catch (CoreStateInitException e) {
        }
        solplayer.sendSlotsAsPacket();
        solplayer.sendMemorisedSpellSlots();
    } catch (CoreStateInitException e) {
        event.getPlayer().kickPlayer("Server initialising");
    }
}
Also used : ISoliniaLivingEntity(com.solinia.solinia.Interfaces.ISoliniaLivingEntity) LivingEntity(org.bukkit.entity.LivingEntity) EntityHuman(net.minecraft.server.v1_15_R1.EntityHuman) ISoliniaLivingEntity(com.solinia.solinia.Interfaces.ISoliniaLivingEntity) PotionEffect(org.bukkit.potion.PotionEffect) CoreStateInitException(com.solinia.solinia.Exceptions.CoreStateInitException) SoliniaPlayerJoinEvent(com.solinia.solinia.Events.SoliniaPlayerJoinEvent) CraftPlayer(org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer) ISoliniaPlayer(com.solinia.solinia.Interfaces.ISoliniaPlayer) SoliniaItemException(com.solinia.solinia.Exceptions.SoliniaItemException) CoreStateInitException(com.solinia.solinia.Exceptions.CoreStateInitException) EventHandler(org.bukkit.event.EventHandler)

Aggregations

Location (org.bukkit.Location)10 CraftPlayer (org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer)10 GameProfile (com.mojang.authlib.GameProfile)9 Player (org.bukkit.entity.Player)6 ParallelWorld (thpmc.engine.api.world.parallel.ParallelWorld)5 Packet (com.yahoo.fs4.Packet)4 EntityPlayer (net.minecraft.server.v1_15_R1.EntityPlayer)4 BasicPacket (com.yahoo.fs4.BasicPacket)3 ChannelTimeoutException (com.yahoo.fs4.ChannelTimeoutException)3 QueryPacket (com.yahoo.fs4.QueryPacket)3 Packet (ejip123.Packet)3 PacketPlayOutEntityLook (net.minecraft.server.v1_15_R1.PacketPlayOutEntity.PacketPlayOutEntityLook)3 World (org.bukkit.World)3 ParallelUniverse (thpmc.engine.api.world.parallel.ParallelUniverse)3 GetDocSumsPacket (com.yahoo.fs4.GetDocSumsPacket)2 PingPacket (com.yahoo.fs4.PingPacket)2 PongPacket (com.yahoo.fs4.PongPacket)2 QueryResultPacket (com.yahoo.fs4.QueryResultPacket)2 InvalidChannelException (com.yahoo.fs4.mplex.InvalidChannelException)2 Result (com.yahoo.search.Result)2