Skip to content

Commit 5a8b018

Browse files
authored
Merge pull request #1 from Simplexity-Development/brigadier
Start moving stuff to brig
2 parents 917d075 + 90998c1 commit 5a8b018

19 files changed

+625
-487
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>simplexity</groupId>
88
<artifactId>SimpleFly</artifactId>
9-
<version>0.0.1</version>
9+
<version>1.0.0</version>
1010
<packaging>jar</packaging>
1111

1212
<name>SimpleFly</name>
@@ -64,7 +64,7 @@
6464
<dependency>
6565
<groupId>io.papermc.paper</groupId>
6666
<artifactId>paper-api</artifactId>
67-
<version>1.20.2-R0.1-SNAPSHOT</version>
67+
<version>1.21.5-R0.1-SNAPSHOT</version>
6868
<scope>provided</scope>
6969
</dependency>
7070
</dependencies>

src/main/java/simplexity/simplefly/ConfigValues.java

Lines changed: 0 additions & 65 deletions
This file was deleted.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package simplexity.simplefly;
2+
3+
import org.bukkit.NamespacedKey;
4+
import org.bukkit.permissions.Permission;
5+
import org.bukkit.permissions.PermissionDefault;
6+
7+
public class Constants {
8+
9+
10+
11+
public static final NamespacedKey FLY_STATUS_KEY = new NamespacedKey(SimpleFly.getInstance(), "flystatus");
12+
public static final Permission FLY_PERMISSION = new Permission("simplefly.fly", "Allows a player to toggle their own flight", PermissionDefault.OP);
13+
public static final Permission FLY_SPEED_PERMISSION = new Permission("simplefly.flyspeed", "Allows a player to set their own flight speed", PermissionDefault.OP);
14+
public static final Permission FLY_OTHERS_PERMISSION = new Permission("simplefly.others.fly", "Allows a player to toggle other players' flight", PermissionDefault.OP);
15+
public static final Permission FLY_SPEED_OTHERS_PERMISSION = new Permission("simplefly.others.flyspeed", "Allows a player to set other players' flight speed", PermissionDefault.OP);
16+
public static final Permission FLY_RELOAD_PERMISSION = new Permission("simplefly.reload", "Allows a player to reload the SimpleFly configuration", PermissionDefault.OP);
17+
18+
}
Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package simplexity.simplefly;
22

3+
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
34
import org.bukkit.Bukkit;
45
import org.bukkit.NamespacedKey;
56
import org.bukkit.entity.Player;
@@ -11,74 +12,67 @@
1112
import org.bukkit.event.player.PlayerRespawnEvent;
1213
import org.bukkit.persistence.PersistentDataContainer;
1314
import org.bukkit.persistence.PersistentDataType;
15+
import simplexity.simplefly.config.ConfigHandler;
16+
import simplexity.simplefly.config.LocaleMessage;
1417

1518
public class FlyListeners implements Listener {
16-
17-
private static final NamespacedKey flyStatus = Util.flyStatus;
18-
19+
20+
private static final NamespacedKey flyStatus = Constants.FLY_STATUS_KEY;
21+
1922
@EventHandler
2023
public void onPlayerLogin(PlayerJoinEvent joinEvent) {
21-
if (!ConfigValues.sessionPersistentFlight) {
24+
if (!ConfigHandler.getInstance().isFlyPersistsSessions()) {
2225
return;
2326
}
2427
Player player = joinEvent.getPlayer();
2528
PersistentDataContainer playerPDC = player.getPersistentDataContainer();
2629
Bukkit.getScheduler().runTaskLater(SimpleFly.getInstance(), () -> {
2730
boolean flyEnabled = playerPDC.getOrDefault(flyStatus, PersistentDataType.BOOLEAN, false);
28-
if (flyEnabled && player.hasPermission(Util.flyPermission)) {
29-
player.setAllowFlight(true);
30-
if (player.getFallDistance() > 0f) {
31-
player.setFlying(true);
32-
}
33-
Util.sendUserMessage(player, ConfigValues.flySetOwn, ConfigValues.enabled, null);
31+
if (flyEnabled && player.hasPermission(Constants.FLY_PERMISSION)) {
32+
FlyLogic.flyEnable(player);
33+
player.sendRichMessage(LocaleMessage.FLY_SET_OWN.getMessage(),
34+
Placeholder.parsed("value", LocaleMessage.ENABLED.getMessage()));
3435
return;
3536
}
36-
if (flyEnabled && !player.hasPermission(Util.flyPermission)) {
37-
playerPDC.set(flyStatus, PersistentDataType.BOOLEAN, false);
37+
if (flyEnabled && !player.hasPermission(Constants.FLY_PERMISSION)) {
38+
FlyLogic.disablePDC(player);
3839
}
3940
}, 10);
4041
}
41-
42+
4243
@EventHandler
4344
public void onWorldChange(PlayerChangedWorldEvent worldEvent) {
44-
if (!ConfigValues.worldChangePersistentFlight) return;
45+
if (!ConfigHandler.getInstance().isFlyPersistsWorldChange()) return;
4546
Player player = worldEvent.getPlayer();
4647
PersistentDataContainer playerPDC = player.getPersistentDataContainer();
4748
Boolean flyEnabled = playerPDC.getOrDefault(flyStatus, PersistentDataType.BOOLEAN, false);
4849
if (flyEnabled) {
49-
player.setAllowFlight(true);
50-
if (player.getFallDistance() > 0f) {
51-
player.setFlying(true);
52-
}
50+
FlyLogic.flyEnable(player);
5351
}
5452
}
55-
53+
5654
@EventHandler
5755
public void onRespawn(PlayerRespawnEvent respawnEvent) {
58-
if (!ConfigValues.respawnPersistentFlight) return;
56+
if (!ConfigHandler.getInstance().isFlyPersistsRespawn()) return;
5957
Player player = respawnEvent.getPlayer();
6058
PersistentDataContainer playerPDC = player.getPersistentDataContainer();
6159
Boolean flyEnabled = playerPDC.getOrDefault(flyStatus, PersistentDataType.BOOLEAN, false);
6260
if (flyEnabled) {
63-
player.setAllowFlight(true);
61+
FlyLogic.flyEnable(player);
6462
}
6563
}
66-
64+
6765
@EventHandler
68-
public void onGamemodeChange(PlayerGameModeChangeEvent gameModeChangeEvent) {
69-
if (!ConfigValues.gamemodeChangePersistentFlight) return;
66+
public void onGameModeChange(PlayerGameModeChangeEvent gameModeChangeEvent) {
67+
if (!ConfigHandler.getInstance().isFlyPersistsGameMode()) return;
7068
Player player = gameModeChangeEvent.getPlayer();
7169
PersistentDataContainer playerPDC = player.getPersistentDataContainer();
7270
Bukkit.getScheduler().runTaskLater(SimpleFly.getInstance(), () -> {
7371
Boolean flyEnabled = playerPDC.getOrDefault(flyStatus, PersistentDataType.BOOLEAN, false);
7472
if (flyEnabled) {
75-
player.setAllowFlight(true);
76-
if (player.getFallDistance() > 0f) {
77-
player.setFlying(true);
78-
}
73+
FlyLogic.flyEnable(player);
7974
}
8075
}, 10);
8176
}
82-
83-
77+
8478
}
Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,54 @@
11
package simplexity.simplefly;
22

3+
import org.bukkit.Location;
34
import org.bukkit.NamespacedKey;
5+
import org.bukkit.block.Block;
46
import org.bukkit.entity.Player;
57
import org.bukkit.persistence.PersistentDataContainer;
68
import org.bukkit.persistence.PersistentDataType;
79

810
public class FlyLogic {
911

10-
private static final NamespacedKey flyStatus = Util.flyStatus;
12+
private static final NamespacedKey flyStatus = Constants.FLY_STATUS_KEY;
1113

12-
public static boolean flyEnabled(Player player) {
14+
public static boolean flyToggle(Player player) {
1315
PersistentDataContainer playerPDC = player.getPersistentDataContainer();
1416
Boolean flyState = playerPDC.get(flyStatus, PersistentDataType.BOOLEAN);
15-
//If they have no set flystate, or it's off, set true, set flying
1617
if (flyState == null || !flyState) {
17-
playerPDC.set(flyStatus, PersistentDataType.BOOLEAN, true);
18-
player.setAllowFlight(true);
19-
player.setFlying(true);
18+
flyEnable(player);
2019
return true;
2120
}
22-
//If their current flystate is on, set false
23-
playerPDC.set(flyStatus, PersistentDataType.BOOLEAN, false);
21+
flyDisable(player);
22+
return false;
23+
}
24+
25+
public static void setFlyStatus(Player player, boolean enable){
26+
if (enable && willFall(player)) player.setFlying(true);
27+
player.getPersistentDataContainer().set(flyStatus, PersistentDataType.BOOLEAN, enable);
28+
player.setAllowFlight(enable);
29+
}
30+
public static void flyEnable(Player player) {
31+
player.getPersistentDataContainer().set(flyStatus, PersistentDataType.BOOLEAN, true);
32+
player.setAllowFlight(true);
33+
if (willFall(player)) {
34+
player.setFlying(true);
35+
}
36+
}
37+
38+
public static void flyDisable(Player player){
39+
player.getPersistentDataContainer().set(flyStatus, PersistentDataType.BOOLEAN, false);
2440
player.setAllowFlight(false);
2541
player.setFlying(false);
26-
return false;
42+
}
43+
44+
public static void disablePDC(Player player){
45+
player.getPersistentDataContainer().set(flyStatus, PersistentDataType.BOOLEAN, false);
46+
}
47+
48+
private static boolean willFall(Player player){
49+
Location location = player.getLocation();
50+
Block blockBelow = location.clone().add(0, -1, 0).getBlock();
51+
Block blockTwoBelow = location.clone().add(0, -2, 0).getBlock();
52+
return blockBelow.isPassable() && blockTwoBelow.isPassable();
2753
}
2854
}
Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,43 @@
11
package simplexity.simplefly;
22

3+
import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents;
34
import net.kyori.adventure.text.minimessage.MiniMessage;
4-
import org.bukkit.Server;
55
import org.bukkit.plugin.java.JavaPlugin;
66
import simplexity.simplefly.commands.Fly;
77
import simplexity.simplefly.commands.FlyReload;
88
import simplexity.simplefly.commands.FlySpeed;
9+
import simplexity.simplefly.config.ConfigHandler;
910

11+
@SuppressWarnings("UnstableApiUsage")
1012
public final class SimpleFly extends JavaPlugin {
11-
13+
1214
private static final MiniMessage miniMessage = MiniMessage.miniMessage();
1315
private static SimpleFly instance;
14-
private static Server flyServer;
15-
16+
1617
public static SimpleFly getInstance() {
1718
return instance;
1819
}
19-
20+
2021
public static MiniMessage getMiniMessage() {
2122
return miniMessage;
2223
}
23-
24-
public static Server getFlyServer() {
25-
return flyServer;
26-
}
27-
28-
24+
2925
@Override
3026
public void onEnable() {
3127
instance = this;
32-
flyServer = this.getServer();
3328
this.saveDefaultConfig();
34-
ConfigValues.reloadConfigValues();
29+
ConfigHandler.getInstance().reloadConfigValues();
3530
this.getServer().getPluginManager().registerEvents(new simplexity.simplefly.FlyListeners(), this);
36-
this.getCommand("fly").setExecutor(new Fly());
37-
this.getCommand("flyspeed").setExecutor(new FlySpeed());
38-
this.getCommand("flyreload").setExecutor(new FlyReload());
31+
this.getLifecycleManager().registerEventHandler(LifecycleEvents.COMMANDS, commands -> {
32+
commands.registrar().register(Fly.createCommand().build());
33+
commands.registrar().register(FlyReload.createCommand().build());
34+
commands.registrar().register(FlySpeed.createCommand().build());
35+
});
36+
this.getServer().getPluginManager().addPermission(Constants.FLY_PERMISSION);
37+
this.getServer().getPluginManager().addPermission(Constants.FLY_OTHERS_PERMISSION);
38+
this.getServer().getPluginManager().addPermission(Constants.FLY_SPEED_PERMISSION);
39+
this.getServer().getPluginManager().addPermission(Constants.FLY_SPEED_OTHERS_PERMISSION);
40+
this.getServer().getPluginManager().addPermission(Constants.FLY_RELOAD_PERMISSION);
3941
}
40-
42+
4143
}

src/main/java/simplexity/simplefly/Util.java

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/main/java/simplexity/simplefly/commands/CommandUtils.java

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)