Skip to content

Commit bf2fe84

Browse files
committed
Finish the plugin
1 parent 5ad1b87 commit bf2fe84

File tree

5 files changed

+158
-0
lines changed

5 files changed

+158
-0
lines changed

.gitignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,14 @@
2121

2222
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
2323
hs_err_pid*
24+
25+
26+
27+
28+
# Custom files
29+
build/
30+
.idea/
31+
gradle/
32+
.gradle/
33+
gradlew
34+
gradlew.bat

build.gradle

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import org.apache.tools.ant.filters.ReplaceTokens
2+
3+
plugins {
4+
id 'java'
5+
id 'maven-publish'
6+
}
7+
8+
version '1.0'
9+
10+
repositories {
11+
mavenCentral()
12+
maven {
13+
url = uri("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
14+
}
15+
maven {
16+
url = uri("https://repo.destroystokyo.com/repository/maven-public/")
17+
}
18+
maven { url "https://repo.dmulloy2.net/repository/public/" }
19+
20+
}
21+
22+
dependencies {
23+
testCompile group: 'junit', name: 'junit', version: '4.12'
24+
compileOnly 'org.spigotmc:spigot-api:1.13-R0.1-SNAPSHOT'
25+
compileOnly group: "com.comphenix.protocol", name: "ProtocolLib", version: "4.7.0";
26+
compileOnly 'org.bukkit:bukkit:1.13-R0.1-SNAPSHOT'
27+
compileOnly 'com.mojang:brigadier:1.0.18'
28+
}
29+
30+
group = 'me.bluetree.advancedplhide'
31+
description = 'AdvancedPlHide'
32+
compileJava.options.encoding 'UTF-8'
33+
java.sourceCompatibility = JavaVersion.VERSION_11
34+
35+
publishing {
36+
publications {
37+
maven(MavenPublication) {
38+
from(components.java)
39+
}
40+
}
41+
}
42+
43+
processResources {
44+
from(sourceSets.main.resources.srcDirs) {
45+
filter ReplaceTokens, tokens: [version: version]
46+
}
47+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package me.bluetree.advancedplhide;
2+
3+
4+
import com.comphenix.protocol.ProtocolLibrary;
5+
import com.comphenix.protocol.ProtocolManager;
6+
import org.bukkit.ChatColor;
7+
import org.bukkit.event.EventHandler;
8+
import org.bukkit.event.Listener;
9+
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
10+
import org.bukkit.plugin.java.JavaPlugin;
11+
12+
public class AdvancedPlHide extends JavaPlugin implements Listener {
13+
private ProtocolManager protocolManager;
14+
private PacketListener listener = new PacketListener(this);
15+
16+
public void onLoad() {
17+
protocolManager = ProtocolLibrary.getProtocolManager();
18+
}
19+
20+
public void onEnable() {
21+
protocolManager.addPacketListener(new PacketListener(this));
22+
getServer().getPluginManager().registerEvents(this, this);
23+
24+
}
25+
26+
public void onDisable() {
27+
protocolManager.removePacketListener(listener);
28+
}
29+
30+
@EventHandler
31+
public void onPlayerCommand(PlayerCommandPreprocessEvent e) {
32+
if (e.getPlayer().hasPermission("plhide.command")) return;
33+
if (e.getMessage().startsWith("/plugins") || e.getMessage().startsWith("/pl") || e.getMessage().startsWith("/bukkit:pl") || e.getMessage().startsWith("/bukkit:plugins")) {
34+
e.setCancelled(true);
35+
e.getPlayer().sendMessage(ChatColor.RED + "We won't show you the plugin list for sure");
36+
}
37+
}
38+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package me.bluetree.advancedplhide;
2+
3+
import com.comphenix.protocol.PacketType;
4+
import com.comphenix.protocol.events.ListenerPriority;
5+
import com.comphenix.protocol.events.PacketAdapter;
6+
import com.comphenix.protocol.events.PacketContainer;
7+
import com.comphenix.protocol.events.PacketEvent;
8+
import com.comphenix.protocol.injector.server.TemporaryPlayer;
9+
import com.comphenix.protocol.reflect.StructureModifier;
10+
import com.mojang.brigadier.suggestion.Suggestion;
11+
import com.mojang.brigadier.suggestion.Suggestions;
12+
import org.bukkit.Bukkit;
13+
import org.bukkit.plugin.Plugin;
14+
15+
import java.util.ArrayList;
16+
import java.util.List;
17+
18+
public class PacketListener extends PacketAdapter {
19+
20+
public PacketListener(AdvancedPlHide core) {
21+
super(core, ListenerPriority.NORMAL, PacketType.Play.Server.TAB_COMPLETE);
22+
}
23+
24+
@Override
25+
public void onPacketSending(PacketEvent e) {
26+
if (e.getPlayer() == null || e.getPlayer() instanceof TemporaryPlayer) return;
27+
28+
PacketContainer packetContainer = e.getPacket();
29+
30+
StructureModifier<Suggestions> matchModifier = packetContainer.getSpecificModifier(Suggestions.class);
31+
32+
Suggestions matchedCommands = matchModifier.read(0);
33+
Suggestions allowedCommands = new Suggestions(matchedCommands.getRange(), new ArrayList<>(matchedCommands.getList()));
34+
List<String> tohide = new ArrayList<>();
35+
for (Plugin plugin : Bukkit.getServer().getPluginManager().getPlugins()) {
36+
tohide.add(plugin.getName().toLowerCase() + ":");
37+
}
38+
tohide.add("paper");
39+
tohide.add("spigot");
40+
tohide.add("bukkit");
41+
tohide.add("purpur");
42+
tohide.add("airplane");
43+
tohide.add("minecraft");
44+
tohide.add("votingpluginvaluerequestinput");
45+
for (Suggestion matchedCommand : matchedCommands.getList()) {
46+
for (String hide : tohide) {
47+
if (matchedCommand.getText().startsWith(hide)) {
48+
allowedCommands.getList().remove(matchedCommand);
49+
}
50+
}
51+
}
52+
matchModifier.write(0, allowedCommands);
53+
}
54+
}

src/main/resources/plugin.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
name: AdvancedPlHide
2+
version: @version@
3+
main: me.bluetree.advancedplhide.AdvancedPlHide
4+
author: BlueTree242
5+
api-version: 1.13
6+
7+
depend:
8+
- ProtocolLib

0 commit comments

Comments
 (0)