Skip to content

Commit a3d36c7

Browse files
committed
Add {PERMISSIONS} placeholder.
Add reload command. Bump Bukkit API. Bump LiteCommands (fix complete).
1 parent 95bc53c commit a3d36c7

12 files changed

Lines changed: 213 additions & 93 deletions

pom.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
<goal>shade</goal>
4040
</goals>
4141
<configuration>
42-
<finalName>${project.name} ${project.version} (1.8-1.17)</finalName>
42+
<finalName>${project.name} ${project.version} (MC 1.8-1.18)</finalName>
4343
<createDependencyReducedPom>false</createDependencyReducedPom>
4444
<relocations>
4545
<relocation>
@@ -88,21 +88,21 @@
8888
<dependency>
8989
<groupId>org.spigotmc</groupId>
9090
<artifactId>spigot-api</artifactId>
91-
<version>1.16.5-R0.1-SNAPSHOT</version>
91+
<version>1.18.1-R0.1-SNAPSHOT</version>
9292
<scope>provided</scope>
9393
</dependency>
9494

9595
<!-- CDN Configs -->
9696
<dependency>
9797
<groupId>net.dzikoysk</groupId>
9898
<artifactId>cdn</artifactId>
99-
<version>1.13.3</version>
99+
<version>1.13.5</version>
100100
<scope>compile</scope>
101101
</dependency>
102102
<dependency>
103103
<groupId>org.panda-lang</groupId>
104104
<artifactId>expressible</artifactId>
105-
<version>1.1.9</version>
105+
<version>1.1.12</version>
106106
</dependency>
107107
<dependency>
108108
<groupId>org.panda-lang</groupId>
@@ -114,7 +114,7 @@
114114
<dependency>
115115
<groupId>dev.rollczi.litecommands</groupId>
116116
<artifactId>bukkit</artifactId>
117-
<version>1.4.0</version>
117+
<version>1.5.0</version>
118118
<scope>compile</scope>
119119
</dependency>
120120

src/main/java/dev/rollczi/antilegs/LiteAntiLegs.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66

77
import dev.rollczi.antilegs.commands.AntiLegsArgument;
88
import dev.rollczi.antilegs.commands.AntiLegsCommand;
9+
import dev.rollczi.antilegs.commands.LitePermissionMessage;
910
import dev.rollczi.antilegs.commands.PlayerArgument;
10-
import dev.rollczi.antilegs.config.ConfigManager;
11+
import dev.rollczi.antilegs.config.ConfigurationManager;
1112
import dev.rollczi.antilegs.config.PluginConfig;
1213
import dev.rollczi.antilegs.listeners.ArmorEquipBlock;
1314
import dev.rollczi.antilegs.listeners.PlayerDamageByPlayer;
@@ -32,7 +33,7 @@ public final class LiteAntiLegs extends JavaPlugin {
3233

3334
@Getter private static LiteAntiLegs instance;
3435

35-
@Getter private ConfigManager configManager;
36+
@Getter private ConfigurationManager configManager;
3637
@Getter private CombatManager combatManager;
3738
@Getter private CooldownManager cooldownManager;
3839
@Getter private AntiLegsManager antiLegsManager;
@@ -41,20 +42,24 @@ public final class LiteAntiLegs extends JavaPlugin {
4142
@Override
4243
public void onEnable() {
4344
instance = this;
44-
this.configManager = new ConfigManager(this);
45+
this.configManager = new ConfigurationManager(this.getDataFolder());
4546
this.configManager.loadConfigs(); // load data from config file
46-
this.combatManager = new CombatManager(this);
47-
this.cooldownManager = new CooldownManager();
48-
this.antiLegsManager = new AntiLegsManager();
49-
this.antiLegsManager.registerAntiLeg(StandardAntiLegs.create(configManager.getPluginConfig()));
5047

5148
PluginConfig config = this.configManager.getPluginConfig();
5249

50+
this.combatManager = new CombatManager(config);
51+
this.cooldownManager = new CooldownManager();
52+
this.antiLegsManager = new AntiLegsManager();
53+
this.antiLegsManager.registerAntiLeg(StandardAntiLegs.create(config));
54+
5355
this.liteCommands = LiteBukkitFactory.builder(this.getServer(), "lite-antilegs")
56+
.bind(LiteAntiLegs.class, () -> this)
57+
.bind(ConfigurationManager.class, () -> configManager)
58+
5459
.argument(Player.class, new PlayerArgument(this))
5560
.argument(AntiLegs.class, new AntiLegsArgument(this))
56-
.bind(LiteAntiLegs.class, this)
57-
.message(ValidationInfo.NO_PERMISSION, config.onPermission)
61+
62+
.message(ValidationInfo.NO_PERMISSION, new LitePermissionMessage(config))
5863
.command(AntiLegsCommand.class)
5964
.register();
6065

src/main/java/dev/rollczi/antilegs/commands/AntiLegsArgument.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@
77
import dev.rollczi.antilegs.LiteAntiLegs;
88
import dev.rollczi.antilegs.system.antilegs.AntiLegs;
99
import dev.rollczi.antilegs.system.antilegs.AntiLegsManager;
10-
import dev.rollczi.litecommands.inject.SingleArgumentHandler;
10+
import dev.rollczi.litecommands.LiteInvocation;
11+
import dev.rollczi.litecommands.argument.ArgumentName;
12+
import dev.rollczi.litecommands.argument.SingleArgumentHandler;
1113
import dev.rollczi.litecommands.valid.ValidationCommandException;
1214
import dev.rollczi.litecommands.valid.ValidationInfo;
1315

1416
import java.util.List;
1517
import java.util.stream.Collectors;
1618

19+
@ArgumentName("antilegs_type")
1720
public class AntiLegsArgument implements SingleArgumentHandler<AntiLegs> {
1821

1922
private final LiteAntiLegs plugin;
@@ -23,7 +26,7 @@ public AntiLegsArgument(LiteAntiLegs plugin) {
2326
}
2427

2528
@Override
26-
public AntiLegs parse(String argument) throws ValidationCommandException {
29+
public AntiLegs parse(LiteInvocation invocation, String argument) throws ValidationCommandException {
2730
AntiLegsManager manager = plugin.getAntiLegsManager();
2831
return manager.getAntiLegs(argument)
2932
.orThrow(() -> new ValidationCommandException(ValidationInfo.CUSTOM, "&cBłąd: Standardowa implementacja nie została zarejestrowana."));

src/main/java/dev/rollczi/antilegs/commands/AntiLegsCommand.java

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,35 @@
55
package dev.rollczi.antilegs.commands;
66

77
import dev.rollczi.antilegs.LiteAntiLegs;
8+
import dev.rollczi.antilegs.config.ConfigurationManager;
89
import dev.rollczi.antilegs.config.PluginConfig;
910
import dev.rollczi.antilegs.system.antilegs.AntiLegs;
1011
import dev.rollczi.antilegs.system.antilegs.AntiLegsManager;
1112
import dev.rollczi.antilegs.system.antilegs.StandardAntiLegs;
1213
import dev.rollczi.antilegs.utils.ChatUtils;
1314
import dev.rollczi.antilegs.utils.InventoryUtils;
14-
import dev.rollczi.litecommands.LiteSender;
1515
import dev.rollczi.litecommands.annotations.Arg;
1616
import dev.rollczi.litecommands.annotations.Execute;
1717
import dev.rollczi.litecommands.annotations.IgnoreMethod;
1818
import dev.rollczi.litecommands.annotations.Permission;
1919
import dev.rollczi.litecommands.annotations.Required;
2020
import dev.rollczi.litecommands.annotations.Section;
2121
import dev.rollczi.litecommands.annotations.UsageMessage;
22+
import dev.rollczi.litecommands.platform.LiteSender;
2223
import dev.rollczi.litecommands.valid.ValidationCommandException;
2324
import dev.rollczi.litecommands.valid.ValidationInfo;
25+
import net.dzikoysk.cdn.CdnException;
2426
import org.bukkit.entity.Player;
27+
import panda.std.Blank;
28+
import panda.std.Result;
2529

2630
@Section(route = "antilegs", aliases = {"antynogi"})
2731
@Permission("dev.rollczi.antilegs")
28-
@UsageMessage("&cPrawidłowe użycie &8» &7/antynogi give|give -other>")
32+
@UsageMessage("&cPrawidłowe użycie &8» &7/antynogi give|give -other|reload")
2933
public final class AntiLegsCommand {
3034

3135
@Section(route = "give")
36+
@Permission("dev.rollczi.antilegs.give")
3237
public static class Give {
3338

3439
private final LiteAntiLegs plugin;
@@ -65,4 +70,23 @@ private void give(LiteSender sender, Player player, AntiLegs antiLegs) {
6570

6671
}
6772

73+
@Execute(route = "reload")
74+
@Permission("dev.rollczi.antilegs.reload")
75+
public void reload(LiteSender liteSender, ConfigurationManager manager) {
76+
Result<Blank, CdnException> result = manager.loadConfigs();
77+
78+
if (result.isOk()) {
79+
PluginConfig config = manager.getPluginConfig();
80+
81+
liteSender.sendMessage(config.reload);
82+
return;
83+
}
84+
85+
CdnException error = result.getError();
86+
87+
liteSender.sendMessage("&cInternal Error: " + error.getMessage());
88+
liteSender.sendMessage("&c(See console logs)");
89+
error.printStackTrace();
90+
}
91+
6892
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Copyright (c) 2022 Rollczi
3+
*/
4+
5+
package dev.rollczi.antilegs.commands;
6+
7+
import dev.rollczi.antilegs.config.PluginConfig;
8+
import dev.rollczi.litecommands.valid.messages.LiteMessage;
9+
import dev.rollczi.litecommands.valid.messages.MessageInfoContext;
10+
import panda.utilities.text.Joiner;
11+
12+
public class LitePermissionMessage implements LiteMessage {
13+
14+
private final PluginConfig config;
15+
16+
public LitePermissionMessage(PluginConfig config) {
17+
this.config = config;
18+
}
19+
20+
@Override
21+
public String message(MessageInfoContext messageInfoContext) {
22+
String permissions = Joiner
23+
.on(", ")
24+
.join(messageInfoContext.getMissingPermissions())
25+
.toString();
26+
27+
return config.noPermission.replace("{PERMISSIONS}", permissions);
28+
}
29+
30+
}

src/main/java/dev/rollczi/antilegs/commands/PlayerArgument.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
package dev.rollczi.antilegs.commands;
66

77
import dev.rollczi.antilegs.LiteAntiLegs;
8-
import dev.rollczi.litecommands.inject.SingleArgumentHandler;
8+
import dev.rollczi.litecommands.LiteInvocation;
9+
import dev.rollczi.litecommands.argument.ArgumentName;
10+
import dev.rollczi.litecommands.argument.SingleArgumentHandler;
911
import dev.rollczi.litecommands.valid.ValidationCommandException;
1012
import dev.rollczi.litecommands.valid.ValidationInfo;
1113
import org.bukkit.Bukkit;
@@ -16,6 +18,7 @@
1618
import java.util.List;
1719
import java.util.stream.Collectors;
1820

21+
@ArgumentName("player")
1922
public class PlayerArgument implements SingleArgumentHandler<Player> {
2023

2124
private final LiteAntiLegs plugin;
@@ -25,9 +28,9 @@ public PlayerArgument(LiteAntiLegs plugin) {
2528
}
2629

2730
@Override
28-
public Player parse(String argument) throws ValidationCommandException {
31+
public Player parse(LiteInvocation invocation, String argument) throws ValidationCommandException {
2932
return Option.of(Bukkit.getPlayer(argument))
30-
.orThrow(() -> new ValidationCommandException(ValidationInfo.CUSTOM, plugin.getConfigManager().getPluginConfig().onFoundPlayer));
33+
.orThrow(() -> new ValidationCommandException(ValidationInfo.CUSTOM, plugin.getConfigManager().getPluginConfig().noFoundPlayer));
3134
}
3235

3336
@Override
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
* Copyright (c) 2022 Rollczi
3+
*/
4+
5+
package dev.rollczi.antilegs.config;
6+
7+
import net.dzikoysk.cdn.entity.Exclude;
8+
import net.dzikoysk.cdn.source.Resource;
9+
import net.dzikoysk.cdn.source.Source;
10+
import org.apache.commons.lang.Validate;
11+
import org.jetbrains.annotations.Contract;
12+
import org.jetbrains.annotations.NotNull;
13+
14+
import java.io.File;
15+
16+
public abstract class AbstractConfigWithResource implements ConfigWithResource {
17+
18+
@Exclude
19+
private Resource resource;
20+
21+
@Contract("null -> fail")
22+
protected AbstractConfigWithResource(Resource resource) {
23+
Validate.notNull(resource);
24+
this.resource = resource;
25+
}
26+
27+
@Contract("null, null -> fail")
28+
protected AbstractConfigWithResource(File folder, String child) {
29+
Validate.notNull(folder);
30+
Validate.notNull(child);
31+
this.resource = Source.of(new File(folder, child));
32+
}
33+
34+
@Exclude
35+
@Override @NotNull
36+
public Resource getResource() {
37+
return this.resource;
38+
}
39+
40+
@Exclude
41+
@Override @Contract("null -> fail")
42+
public void setResource(Resource resource) {
43+
Validate.notNull(resource);
44+
this.resource = resource;
45+
}
46+
47+
}

src/main/java/dev/rollczi/antilegs/config/ConfigManager.java

Lines changed: 0 additions & 62 deletions
This file was deleted.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* Copyright (c) 2022 Rollczi
3+
*/
4+
5+
package dev.rollczi.antilegs.config;
6+
7+
import net.dzikoysk.cdn.source.Resource;
8+
9+
public interface ConfigWithResource {
10+
11+
Resource getResource();
12+
13+
void setResource(Resource resource);
14+
15+
}

0 commit comments

Comments
 (0)