Skip to content

Commit 95e5697

Browse files
committed
funny packets
1 parent 4dbbb44 commit 95e5697

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed

src/main/java/org/cloudanarchy/queueplugin/EventCanceler.java

+22-4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import org.bukkit.event.entity.EntitySpawnEvent;
1010
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
1111
import org.bukkit.plugin.java.JavaPlugin;
12+
import org.cloudanarchy.queueplugin.packetwrapper.PacketGameState;
13+
import org.cloudanarchy.queueplugin.packetwrapper.PacketPlayerInfo;
1214

1315
import java.util.HashSet;
1416
import java.util.Set;
@@ -35,21 +37,37 @@ public void onPacketReceiving(PacketEvent ev) {
3537

3638
@Override
3739
public void onPacketSending(PacketEvent ev) {
40+
3841
// these are needed or a notchian client will not join
3942
if (ev.getPacketType() == PacketType.Play.Server.KEEP_ALIVE) return;
40-
if (ev.getPacketType() == PacketType.Play.Server.POSITION) return;
4143
if (ev.getPacketType() == PacketType.Play.Server.LOGIN) return;
44+
if (ev.getPacketType() == PacketType.Play.Server.POSITION) return;
45+
46+
// for chat notifications
4247
if (ev.getPacketType() == PacketType.Play.Server.CHAT) return;
4348

4449
// this keeps the player from falling (flying ability)
4550
if (ev.getPacketType() == PacketType.Play.Server.ABILITIES) return;
4651

47-
// if we dont send this, player has default skin lol
48-
if (ev.getPacketType() == PacketType.Play.Server.PLAYER_INFO) return;
49-
5052
// this keeps hacked clients from showing server as lagging
5153
if (ev.getPacketType() == PacketType.Play.Server.UPDATE_TIME) return;
5254

55+
// if we dont send this, player has default skin lol
56+
if (ev.getPacketType() == PacketType.Play.Server.PLAYER_INFO) {
57+
PacketPlayerInfo packet = new PacketPlayerInfo(ev.getPacket());
58+
// send players only their own data? or dont send this packet at all...
59+
if (packet.getData() != null)
60+
packet.setData(packet.getData().stream().filter(data -> data.getProfile().getUUID().equals(ev.getPlayer().getUniqueId())).collect(Collectors.toList()));
61+
return;
62+
}
63+
64+
// this is for fun
65+
if (ev.getPacketType() == PacketType.Play.Server.GAME_STATE_CHANGE) {
66+
PacketGameState packet = new PacketGameState(ev.getPacket());
67+
// allow credit screen
68+
if (packet.getReason() == 4 && packet.getValue() == 1) return;
69+
}
70+
5371
ev.setCancelled(true);
5472
}
5573

src/main/java/org/cloudanarchy/queueplugin/QueuePlugin.java

+12
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,32 @@
1414
import org.bukkit.event.player.PlayerRespawnEvent;
1515
import org.bukkit.plugin.java.JavaPlugin;
1616
import org.bukkit.scheduler.BukkitRunnable;
17+
import org.cloudanarchy.queueplugin.packetwrapper.PacketGameState;
1718
import org.jetbrains.annotations.NotNull;
1819

1920
public final class QueuePlugin extends JavaPlugin implements Listener {
2021

22+
private static final PacketGameState creditScreenPacket = PacketGameState.creditScreenPacket();
23+
2124
private void process(@NotNull Player player) {
2225
player.teleport(new Location(getServer().getWorlds().get(0), 0, 140, 0));
2326
player.setAllowFlight(true);
2427
player.setFlying(true);
28+
player.setInvisible(true);
29+
player.setInvulnerable(true);
2530
player.setGameMode(GameMode.SPECTATOR);
2631
for (Player p : getServer().getOnlinePlayers()) {
2732
if (player.equals(p)) continue;
2833
player.hidePlayer(this, p);
2934
p.hidePlayer(this, player);
3035
}
36+
// win blockgame while some other players are in queue
37+
if (getServer().getOnlinePlayers().size() < 4) return;
38+
try {
39+
creditScreenPacket.sendPacket(player);
40+
} catch (RuntimeException ex) {
41+
getLogger().warning("Unable to send fake packet: " + ex.getMessage());
42+
}
3143
}
3244

3345
@Override

0 commit comments

Comments
 (0)