use of net.minecraft.server.v1_14_R1.Packet in project TheAPI by TheDevTec.
the class v1_14_R1 method processServerListPing.
@Override
public boolean processServerListPing(String player, Object channel, Object packet) {
PacketStatusOutServerInfo status = (PacketStatusOutServerInfo) packet;
ServerPing ping;
try {
ping = (ServerPing) field.get(status);
} catch (Exception e) {
return false;
}
List<PlayerProfile> players = new ArrayList<>();
for (Player p : Bukkit.getOnlinePlayers()) players.add(new PlayerProfile(p.getName(), p.getUniqueId()));
ServerListPingEvent event = new ServerListPingEvent(Bukkit.getOnlinePlayers().size(), Bukkit.getMaxPlayers(), players, Bukkit.getMotd(), ping.d(), ((InetSocketAddress) ((Channel) channel).remoteAddress()).getAddress(), ping.getServerData().a(), ping.getServerData().getProtocolVersion());
HandlerList.callEvent(event);
if (event.isCancelled())
return true;
ServerPingPlayerSample playerSample = new ServerPingPlayerSample(event.getMaxPlayers(), event.getOnlinePlayers());
if (event.getPlayersText() != null) {
GameProfile[] profiles = new GameProfile[event.getPlayersText().size()];
int i = -1;
for (PlayerProfile s : event.getPlayersText()) profiles[++i] = new GameProfile(s.getUUID(), s.getName());
playerSample.a(profiles);
} else
playerSample.a(new GameProfile[0]);
ping.setPlayerSample(playerSample);
if (event.getMotd() != null)
ping.setMOTD((IChatBaseComponent) toIChatBaseComponent(ComponentAPI.toComponent(event.getMotd(), true)));
else
ping.setMOTD((IChatBaseComponent) BukkitLoader.getNmsProvider().chatBase("{\"text\":\"\"}"));
if (event.getVersion() != null)
ping.setServerInfo(new ServerData(event.getVersion(), event.getProtocol()));
if (event.getFalvicon() != null)
ping.setFavicon(event.getFalvicon());
return false;
}
use of net.minecraft.server.v1_14_R1.Packet in project SimplePets by brainsynder-Dev.
the class EntityControllerPet method reloadLocation.
@Override
public void reloadLocation() {
if (displayEntity.getPassenger() != null) {
net.minecraft.server.v1_14_R1.Entity displayEntity = ((CraftEntity) this.displayEntity).getHandle();
Location loc;
if (this.displayRider != null) {
if (this.displayRider.getType().equals(EntityType.SHULKER)) {
loc = getBukkitEntity().getLocation().clone().subtract(0, 0.735, 0);
} else {
loc = getBukkitEntity().getLocation().clone();
}
} else {
loc = getBukkitEntity().getLocation().clone();
}
displayEntity.setPositionRotation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch());
loc.getWorld().getNearbyEntities(loc, 100, 100, 100).forEach(entity -> {
if (entity instanceof Player) {
Player player = (Player) entity;
PacketPlayOutEntityTeleport packet = new PacketPlayOutEntityTeleport(displayEntity);
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
}
});
return;
}
net.minecraft.server.v1_14_R1.Entity displayEntity = ((CraftEntity) this.displayEntity).getHandle();
Location loc;
if (this.displayRider != null) {
if (this.displayRider.getType().equals(EntityType.SHULKER)) {
loc = getBukkitEntity().getLocation().clone().add(0, 0.75, 0);
} else {
loc = getBukkitEntity().getLocation().clone();
}
} else {
loc = getBukkitEntity().getLocation().clone();
}
displayEntity.setPositionRotation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch());
loc.getWorld().getNearbyEntities(loc, 100, 100, 100).forEach(entity -> {
if (entity instanceof Player) {
Player player = (Player) entity;
PacketPlayOutEntityTeleport packet = new PacketPlayOutEntityTeleport(displayEntity);
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
}
});
}
use of net.minecraft.server.v1_14_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);
}
use of net.minecraft.server.v1_14_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);
}
use of net.minecraft.server.v1_14_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;
}
Aggregations