Skip to content

Commit dbd7400

Browse files
committed
feat: 1.2.0
1 parent d6c5f52 commit dbd7400

20 files changed

Lines changed: 623 additions & 57 deletions

pom.xml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>xyz.webmc</groupId>
55
<artifactId>wlib</artifactId>
6-
<version>1.1.2-SNAPSHOT</version>
6+
<version>1.2.0-SNAPSHOT</version>
77
<distributionManagement>
88
<repository>
99
<id>github</id>
@@ -14,6 +14,7 @@
1414
<plugin.name>WLIB</plugin.name>
1515
<plugin.vers>${project.version}</plugin.vers>
1616
<plugin.pckg>${project.groupId}.${project.artifactId}</plugin.pckg>
17+
<plugin.sdep>["PlaceholderAPI","LuckPerms"]</plugin.sdep>
1718
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1819
<maven.compiler.release>17</maven.compiler.release>
1920
</properties>
@@ -40,6 +41,12 @@
4041
<version>2.12.2</version>
4142
<scope>provided</scope>
4243
</dependency>
44+
<dependency>
45+
<groupId>net.luckperms</groupId>
46+
<artifactId>api</artifactId>
47+
<version>5.5</version>
48+
<scope>provided</scope>
49+
</dependency>
4350
</dependencies>
4451
<repositories>
4552
<repository>
Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,71 @@
11
package xyz.webmc.wlib;
22

3+
import xyz.webmc.wlib.api.util.CommandUtil;
4+
import xyz.webmc.wlib.api.util.EventUtil;
5+
import xyz.webmc.wlib.api.util.PermissionUtil;
6+
import xyz.webmc.wlib.api.util.PlaceholderUtil;
7+
import xyz.webmc.wlib.api.util.SchedulerUtil;
8+
import xyz.webmc.wlib.api.util.WLIBUtil;
9+
import xyz.webmc.wlib.command.WLIBBlankCommand;
310
import xyz.webmc.wlib.command.WLIBCommand;
4-
import xyz.webmc.wlib.util.CommandUtil;
5-
import xyz.webmc.wlib.util.EventUtil;
6-
import xyz.webmc.wlib.util.SchedulerUtil;
7-
import xyz.webmc.wlib.util.WLIBUtil;
811

12+
import org.bukkit.command.CommandSender;
13+
import org.bukkit.event.EventHandler;
14+
import org.bukkit.event.Listener;
15+
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
16+
import org.bukkit.event.server.ServerCommandEvent;
917
import org.bukkit.plugin.java.JavaPlugin;
1018

11-
public final class WLIBBukkitPlugin extends JavaPlugin {
19+
public final class WLIBBukkitPlugin extends JavaPlugin implements Listener {
1220
@Override
1321
public final void onEnable() {
1422
CommandUtil.init(this);
1523
EventUtil.init(this);
24+
PermissionUtil.init();
25+
PlaceholderUtil.init();
1626
SchedulerUtil.init(this);
1727
WLIBUtil.registerPlugin(this);
1828
CommandUtil.registerCommand(new WLIBCommand());
29+
CommandUtil.registerCommand(new WLIBBlankCommand());
30+
EventUtil.registerEvents(this);
1931
}
2032

2133
@Override
2234
public final void onDisable() {
2335
SchedulerUtil.cancelAllTasks();
2436
}
37+
38+
@EventHandler
39+
public final void onCommand(final ServerCommandEvent ev) {
40+
this.handleCommandEvent(ev.getSender(), ev.getCommand());
41+
}
42+
43+
@EventHandler
44+
public final void onCommand(final PlayerCommandPreprocessEvent ev) {
45+
this.handleCommandEvent(ev.getPlayer(), ev.getMessage());
46+
}
47+
48+
private void handleCommandEvent(final CommandSender sender, final String cmdLine) {
49+
try {
50+
Class.forName("io.papermc.paper.command.PaperPluginsCommand");
51+
final String[] split = cmdLine.split("\\s+", 2)[0].split(":", 2);
52+
53+
final String ctx;
54+
final String cmd;
55+
56+
if (split.length == 1) {
57+
ctx = "bukkit".trim();
58+
cmd = split[0].trim();
59+
} else {
60+
ctx = split[0].trim();
61+
cmd = split[1].trim();
62+
}
63+
64+
if (ctx.equals("bukkit") && (cmd.equals("plugins") || cmd.equals("pl"))) {
65+
SchedulerUtil.runNextTick(() -> {
66+
WLIBUtil.sendStringListMessageType2(sender, "WLIB Plugins", WLIBUtil.getWLIBPluginNames());
67+
});
68+
}
69+
} catch (final ClassNotFoundException ex) {}
70+
}
2571
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package xyz.webmc.wlib.api.misc;
2+
3+
import java.util.ArrayList;
4+
import java.util.Arrays;
5+
import java.util.List;
6+
7+
import org.bukkit.command.CommandSender;
8+
9+
public final class CaptureSender extends ExtendableCommandSender {
10+
private final List<String> messages = new ArrayList<>();
11+
12+
public CaptureSender(final CommandSender parent) {
13+
super(parent);
14+
}
15+
16+
public CaptureSender() {
17+
super(null);
18+
}
19+
20+
public final List<String> getMessages() {
21+
return this.messages;
22+
}
23+
24+
@Override
25+
public final void sendMessage(final String message) {
26+
this.messages.add(message);
27+
}
28+
29+
@Override
30+
public final void sendMessage(final String[] messages) {
31+
this.messages.addAll(Arrays.asList(messages));
32+
}
33+
}
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
package xyz.webmc.wlib.api.misc;
2+
3+
import java.util.Set;
4+
5+
import org.bukkit.Bukkit;
6+
import org.bukkit.Server;
7+
import org.bukkit.command.CommandSender;
8+
import org.bukkit.permissions.PermissibleBase;
9+
import org.bukkit.permissions.Permission;
10+
import org.bukkit.permissions.PermissionAttachment;
11+
import org.bukkit.permissions.PermissionAttachmentInfo;
12+
import org.bukkit.plugin.Plugin;
13+
14+
public abstract class ExtendableCommandSender implements CommandSender {
15+
private final PermissibleBase perm;
16+
17+
protected ExtendableCommandSender(final CommandSender parent) {
18+
if (parent != null) {
19+
this.perm = new PermissibleBase(parent);
20+
} else {
21+
this.perm = new PermissibleBase(this);
22+
}
23+
}
24+
25+
protected ExtendableCommandSender() {
26+
this(null);
27+
}
28+
29+
@Override
30+
public final boolean isPermissionSet(final String name) {
31+
return this.perm.isPermissionSet(name);
32+
}
33+
34+
@Override
35+
public final boolean isPermissionSet(final Permission perm) {
36+
return this.perm.isPermissionSet(perm);
37+
}
38+
39+
@Override
40+
public final boolean hasPermission(final String name) {
41+
return this.perm.hasPermission(name);
42+
}
43+
44+
@Override
45+
public final boolean hasPermission(final Permission perm) {
46+
return this.perm.hasPermission(perm);
47+
}
48+
49+
@Override
50+
public final PermissionAttachment addAttachment(final Plugin plugin, final String name, final boolean value) {
51+
return this.perm.addAttachment(plugin, name, value);
52+
}
53+
54+
@Override
55+
public final PermissionAttachment addAttachment(final Plugin plugin) {
56+
return this.perm.addAttachment(plugin);
57+
}
58+
59+
@Override
60+
public final PermissionAttachment addAttachment(final Plugin plugin, final String name, final boolean value, final int ticks) {
61+
return this.perm.addAttachment(plugin, name, value, ticks);
62+
}
63+
64+
@Override
65+
public final PermissionAttachment addAttachment(final Plugin plugin, final int ticks) {
66+
return this.perm.addAttachment(plugin, ticks);
67+
}
68+
69+
@Override
70+
public final void removeAttachment(final PermissionAttachment attachment) {
71+
this.perm.removeAttachment(attachment);
72+
}
73+
74+
@Override
75+
public final void recalculatePermissions() {
76+
this.perm.recalculatePermissions();
77+
}
78+
79+
@Override
80+
public final Set<PermissionAttachmentInfo> getEffectivePermissions() {
81+
return this.perm.getEffectivePermissions();
82+
}
83+
84+
@Override
85+
public final boolean isOp() {
86+
return this.perm.isOp();
87+
}
88+
89+
@Override
90+
public final void setOp(final boolean value) {
91+
this.perm.setOp(value);
92+
}
93+
94+
@Override
95+
public final Server getServer() {
96+
return Bukkit.getServer();
97+
}
98+
99+
@Override
100+
public String getName() {
101+
return this.getClass().getSimpleName();
102+
}
103+
}

src/main/java/xyz/webmc/wlib/util/AlertUtil.java renamed to src/main/java/xyz/webmc/wlib/api/util/AlertUtil.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package xyz.webmc.wlib.util;
1+
package xyz.webmc.wlib.api.util;
22

33
import java.lang.StackWalker.Option;
44

@@ -9,14 +9,13 @@
99
public final class AlertUtil {
1010
private static final StackWalker sw = StackWalker.getInstance(Option.RETAIN_CLASS_REFERENCE);
1111

12-
public static final void devAlert(final String... msg) {
13-
final Class<?> clazz = sw.walk(s -> s.skip(2).findFirst().get().getDeclaringClass());
14-
final String str = ChatColor.DARK_GREEN + "[" + ChatColor.GREEN + "DEV" + ChatColor.DARK_GREEN + "] ["
15-
+ ChatColor.GREEN + clazz.getSimpleName() + ChatColor.DARK_GREEN + "] " + ChatColor.RESET
16-
+ String.join(" ", msg);
12+
public static final void devAlert(final String... txt) {
13+
final Class<?> clazz = sw.getCallerClass();
14+
final String ctx = clazz.getSimpleName();
15+
final String str = ChatColor.DARK_GREEN + "[" + ChatColor.GREEN + "DEV" + ChatColor.RESET + " - " + ChatColor.GREEN + ChatColor.DARK_GREEN + ctx + "] " + ChatColor.RESET + String.join(" ", txt);
1716

1817
for (final Player p : Bukkit.getOnlinePlayers()) {
19-
if (p.hasPermission("wlib.dev-alert")) {
18+
if (p.hasPermission("wlib.dev-alert") && !p.hasPermission("wlib.dev-alert.muted." + ctx)) {
2019
p.sendMessage(str);
2120
}
2221
}

src/main/java/xyz/webmc/wlib/util/CommandUtil.java renamed to src/main/java/xyz/webmc/wlib/api/util/CommandUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package xyz.webmc.wlib.util;
1+
package xyz.webmc.wlib.api.util;
22

33
import java.util.List;
44
import java.util.Map;

src/main/java/xyz/webmc/wlib/util/EventUtil.java renamed to src/main/java/xyz/webmc/wlib/api/util/EventUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package xyz.webmc.wlib.util;
1+
package xyz.webmc.wlib.api.util;
22

33
import org.bukkit.Bukkit;
44
import org.bukkit.event.Event;

src/main/java/xyz/webmc/wlib/util/MagicUtil.java renamed to src/main/java/xyz/webmc/wlib/api/util/MagicUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package xyz.webmc.wlib.util;
1+
package xyz.webmc.wlib.api.util;
22

33
import dev.colbster937.reflect.Mirror;
44
import dev.colbster937.reflect.MirrorSafe;

0 commit comments

Comments
 (0)