Skip to content

Commit b955796

Browse files
committed
fix config issues
1 parent 4127454 commit b955796

File tree

7 files changed

+114
-57
lines changed

7 files changed

+114
-57
lines changed

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
import org.bukkit.configuration.file.FileConfiguration;
44

5+
import java.util.logging.Logger;
6+
57
public class ConfigValues {
8+
private static final Logger logger = SimpleFly.getFlyServer().getLogger();
69
public static String papiFlightEnabled, papiFlightDisabled, prefix, enabled, disabled, flyOther,
710
flyOwn, flySetByOther, flySpeedOther, flySpeedOwn, flySpeedSet, flySpeedReset,
811
flySpeedSetOther, flySpeedResetOther, flySpeedSetByOther, flySpeedResetByOther,
9-
notAPlayer, noPermission, mustBePlayer, notEnoughArguments, notANumber;
12+
notAPlayer, noPermission, mustBePlayer, notEnoughArguments, notANumber, notInRange;
1013

1114
public static float maxFlySpeed, minFlySpeed;
1215
public static boolean sessionPersistentFlight, worldChangePersistentFlight,
@@ -15,7 +18,15 @@ public class ConfigValues {
1518
public static void reloadConfigValues(){
1619
FileConfiguration config = SimpleFly.getInstance().getConfig();
1720
maxFlySpeed = config.getInt("max-fly-speed");
21+
if (maxFlySpeed > 10) {
22+
logger.warning("Max fly speed cannot be greater than 10. Setting to 10");
23+
maxFlySpeed = 10;
24+
}
1825
minFlySpeed = config.getInt("min-fly-speed");
26+
if (minFlySpeed < -10) {
27+
logger.warning("Min fly speed cannot be less than -10. Setting to -10");
28+
minFlySpeed = -10;
29+
}
1930
sessionPersistentFlight = config.getBoolean("session-persistent-flight");
2031
worldChangePersistentFlight = config.getBoolean("world-change-persistent-flight");
2132
respawnPersistentFlight = config.getBoolean("respawn-persistent-flight");
@@ -45,6 +56,7 @@ public static void reloadLangValues(){
4556
mustBePlayer = config.getString("must-be-player");
4657
notEnoughArguments = config.getString("not-enough-arguments");
4758
notANumber = config.getString("not-a-number");
59+
notInRange = config.getString("not-in-range");
4860
}
4961

5062
}

src/main/java/simplexity/simplefly/Fly.java

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package simplexity.simplefly;
22

3-
import net.kyori.adventure.text.minimessage.MiniMessage;
43
import org.bukkit.command.Command;
54
import org.bukkit.command.CommandSender;
65
import org.bukkit.command.TabExecutor;
@@ -15,20 +14,32 @@ public class Fly implements TabExecutor {
1514
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
1615
if (args.length == 0) {
1716
if (CommandUtils.checkIfPlayerAndPerms(sender, Util.flyPermission)) {
18-
FlyLogic.flyEnabled((Player) sender);
19-
return true;
17+
if (FlyLogic.flyEnabled((Player) sender)){
18+
Util.sendUserMessage(sender, ConfigValues.flyOwn, ConfigValues.enabled, null);
19+
return true;
20+
} else {
21+
Util.sendUserMessage(sender, ConfigValues.flyOwn, ConfigValues.disabled, null);
22+
return true;
23+
}
2024
} else {
2125
return false;
2226
}
2327
}
2428
if (!sender.hasPermission(Util.flyOthersPermission)) return false;
2529
Player player = SimpleFly.getFlyServer().getPlayer(args[0]);
2630
if (player == null) {
27-
sender.sendRichMessage(ConfigValues.notAPlayer);
31+
Util.sendUserMessage(sender, ConfigValues.notAPlayer);
2832
return false;
2933
}
30-
FlyLogic.flyEnabled(player);
31-
return true;
34+
if (FlyLogic.flyEnabled(player)){
35+
Util.sendUserMessage(sender, ConfigValues.flyOther, ConfigValues.enabled, player);
36+
Util.sendUserMessage(player, ConfigValues.flySetByOther, ConfigValues.enabled, sender);
37+
return true;
38+
} else {
39+
Util.sendUserMessage(sender, ConfigValues.flyOther, ConfigValues.disabled, player);
40+
Util.sendUserMessage(player, ConfigValues.flySetByOther, ConfigValues.disabled, sender);
41+
return true;
42+
}
3243
}
3344

3445
@Override

src/main/java/simplexity/simplefly/FlyListeners.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package simplexity.simplefly;
22

3-
import net.kyori.adventure.text.minimessage.MiniMessage;
4-
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
53
import org.bukkit.Bukkit;
64
import org.bukkit.NamespacedKey;
75
import org.bukkit.entity.Player;
@@ -16,7 +14,6 @@
1614

1715
public class FlyListeners implements Listener {
1816
private static final NamespacedKey flyStatus = Util.flyStatus;
19-
private static final MiniMessage miniMessage = SimpleFly.getMiniMessage();
2017
@EventHandler
2118
public void onPlayerLogin(PlayerJoinEvent joinEvent) {
2219
if (!ConfigValues.sessionPersistentFlight) {
@@ -27,14 +24,11 @@ public void onPlayerLogin(PlayerJoinEvent joinEvent) {
2724
Bukkit.getScheduler().runTaskLater(SimpleFly.getInstance(), () -> {
2825
boolean flyEnabled = playerPDC.getOrDefault(flyStatus, PersistentDataType.BOOLEAN, false);
2926
if (flyEnabled && player.hasPermission(Util.flyPermission)) {
30-
System.out.println("Fly is enabled and person has perms");
3127
player.setAllowFlight(true);
3228
if (player.getFallDistance() > 0f) {
3329
player.setFlying(true);
3430
}
35-
player.sendMessage(miniMessage.deserialize(
36-
ConfigValues.prefix + ConfigValues.flyOwn
37-
));
31+
Util.sendUserMessage(player, ConfigValues.flyOwn, ConfigValues.enabled, null);
3832
return;
3933
}
4034
if (flyEnabled && !player.hasPermission(Util.flyPermission)) {
@@ -50,7 +44,6 @@ public void onWorldChange(PlayerChangedWorldEvent worldEvent) {
5044
PersistentDataContainer playerPDC = player.getPersistentDataContainer();
5145
Boolean flyEnabled = playerPDC.getOrDefault(flyStatus, PersistentDataType.BOOLEAN, false);
5246
if (flyEnabled) {
53-
System.out.println("Fly is enabled");
5447
player.setAllowFlight(true);
5548
if (player.getFallDistance() > 0f) {
5649
player.setFlying(true);
@@ -65,7 +58,6 @@ public void onRespawn(PlayerRespawnEvent respawnEvent) {
6558
PersistentDataContainer playerPDC = player.getPersistentDataContainer();
6659
Boolean flyEnabled = playerPDC.getOrDefault(flyStatus, PersistentDataType.BOOLEAN, false);
6760
if (flyEnabled) {
68-
System.out.println("Fly is enabled");
6961
player.setAllowFlight(true);
7062
}
7163
}

src/main/java/simplexity/simplefly/FlyLogic.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
package simplexity.simplefly;
22

3-
import net.kyori.adventure.text.Component;
4-
import net.kyori.adventure.text.minimessage.MiniMessage;
5-
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
63
import org.bukkit.NamespacedKey;
7-
import org.bukkit.command.CommandSender;
8-
import org.bukkit.configuration.file.FileConfiguration;
94
import org.bukkit.entity.Player;
105
import org.bukkit.persistence.PersistentDataContainer;
116
import org.bukkit.persistence.PersistentDataType;

src/main/java/simplexity/simplefly/FlySpeed.java

Lines changed: 45 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,20 @@
1414

1515
public class FlySpeed implements TabExecutor {
1616

17-
private static MiniMessage miniMessage = SimpleFly.getMiniMessage();
17+
private static final MiniMessage miniMessage = SimpleFly.getMiniMessage();
1818
private static final ArrayList<String> tabComplete = new ArrayList<>();
1919
private static final String setArg = "set";
2020
private static final String resetArg = "reset";
21+
private static final String getArg = "get";
2122

2223
@Override
2324
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
2425
switch (args.length) {
2526
case 0 -> {
2627
if (CommandUtils.checkIfPlayerAndPerms(sender, Util.flySpeedPermission)) {
2728
float flyspeed = ((Player) sender).getFlySpeed() * 10f;
28-
sender.sendMessage(miniMessage.deserialize(
29-
ConfigValues.flySpeedOwn,
30-
Placeholder.parsed("value", String.valueOf(flyspeed))
31-
));
29+
Util.sendUserMessage(sender, ConfigValues.flySpeedOwn,
30+
String.valueOf(flyspeed), null);
3231
return true;
3332
} else {
3433
return false;
@@ -39,48 +38,66 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
3938
if (argument.equalsIgnoreCase(resetArg)) {
4039
if (CommandUtils.checkIfPlayerAndPerms(sender, Util.flySpeedPermission)) {
4140
((Player) sender).setFlySpeed(0.1f);
42-
sender.sendRichMessage(ConfigValues.flySpeedReset);
41+
Util.sendUserMessage(sender, ConfigValues.flySpeedReset);
4342
return true;
4443
}
4544
}
4645
if (argument.equalsIgnoreCase(setArg)) {
47-
sender.sendRichMessage(ConfigValues.notEnoughArguments);
46+
Util.sendUserMessage(sender, ConfigValues.notEnoughArguments);
4847
return false;
4948
}
5049
}
5150
case 2 -> {
5251
String firstArgument = args[0];
5352
String secondArgument = args[1];
54-
Float flyspeed;
53+
float flyspeed;
5554
Player player;
5655
if (firstArgument.equalsIgnoreCase(setArg)) {
5756
try {
5857
flyspeed = Float.parseFloat(secondArgument);
5958
player = (Player) sender;
59+
if (flyspeed > ConfigValues.maxFlySpeed || flyspeed < ConfigValues.minFlySpeed) {
60+
player.sendMessage(miniMessage.deserialize(ConfigValues.notInRange,
61+
Placeholder.parsed("min", String.valueOf(ConfigValues.minFlySpeed)),
62+
Placeholder.parsed("max", String.valueOf(ConfigValues.maxFlySpeed))));
63+
return false;
64+
}
6065
player.setFlySpeed(flyspeed / 10f);
61-
sender.sendRichMessage(ConfigValues.flySpeedSet);
66+
Util.sendUserMessage(player, ConfigValues.flySpeedSet,
67+
firstArgument, null);
6268
return true;
6369
} catch (NumberFormatException e) {
6470
player = SimpleFly.getFlyServer().getPlayer(secondArgument);
6571
if (player == null || !sender.hasPermission(Util.flySpeedOthersPermission)) {
66-
sender.sendRichMessage(ConfigValues.notANumber);
72+
Util.sendUserMessage(sender, ConfigValues.notANumber);
6773
return false;
6874
}
69-
sender.sendRichMessage(ConfigValues.notEnoughArguments);
75+
Util.sendUserMessage(sender, ConfigValues.notEnoughArguments);
7076
return false;
7177
}
7278
}
7379
if (firstArgument.equalsIgnoreCase(resetArg) && sender.hasPermission(Util.flySpeedOthersPermission)) {
7480
player = SimpleFly.getFlyServer().getPlayer(secondArgument);
7581
if (player == null) {
76-
sender.sendRichMessage(ConfigValues.notAPlayer);
82+
Util.sendUserMessage(sender, ConfigValues.notAPlayer);
7783
return false;
7884
}
7985
player.setFlySpeed(0.1f);
80-
sender.sendMessage(miniMessage.deserialize(ConfigValues.flySpeedResetOther,
81-
Placeholder.component("player", player.displayName())));
82-
player.sendMessage(miniMessage.deserialize(ConfigValues.flySpeedResetByOther,
83-
Placeholder.component("initiator", sender.name())));
86+
Util.sendUserMessage(sender, ConfigValues.flySpeedResetOther,
87+
null, player);
88+
Util.sendUserMessage(player, ConfigValues.flySpeedResetByOther,
89+
null, sender);
90+
return true;
91+
}
92+
if (firstArgument.equalsIgnoreCase(getArg) && sender.hasPermission(Util.flySpeedOthersPermission)) {
93+
player = SimpleFly.getFlyServer().getPlayer(secondArgument);
94+
if (player == null) {
95+
Util.sendUserMessage(sender, ConfigValues.notAPlayer);
96+
return false;
97+
}
98+
flyspeed = player.getFlySpeed() * 10f;
99+
Util.sendUserMessage(sender, ConfigValues.flySpeedOther,
100+
String.valueOf(flyspeed), player);
84101
return true;
85102
}
86103
return false;
@@ -92,19 +109,20 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
92109
if (firstArgument.equalsIgnoreCase(setArg) && sender.hasPermission(Util.flySpeedOthersPermission)) {
93110
Player player = SimpleFly.getFlyServer().getPlayer(secondArgument);
94111
if (player == null) {
95-
sender.sendRichMessage(ConfigValues.notAPlayer);
112+
Util.sendUserMessage(sender, ConfigValues.notAPlayer);
96113
return false;
97114
}
98-
Float flyspeed;
115+
float flyspeed;
99116
try {
100117
flyspeed = Float.parseFloat(thirdArgument);
101118
player.setFlySpeed(flyspeed / 10f);
102-
sender.sendRichMessage(ConfigValues.flySpeedSetOther);
103-
player.sendMessage(miniMessage.deserialize(ConfigValues.flySpeedSetByOther,
104-
Placeholder.component("initiator", sender.name())));
119+
Util.sendUserMessage(sender, ConfigValues.flySpeedSetOther,
120+
thirdArgument, player);
121+
Util.sendUserMessage(player, ConfigValues.flySpeedSetByOther,
122+
thirdArgument, sender);
105123
return true;
106124
} catch (NumberFormatException e) {
107-
sender.sendRichMessage(ConfigValues.notANumber);
125+
Util.sendUserMessage(sender, ConfigValues.notANumber);
108126
return false;
109127
}
110128
}
@@ -115,13 +133,15 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
115133
}
116134

117135

118-
119136
@Override
120-
public @Nullable List<String> onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
121-
if (commandSender.hasPermission(Util.flySpeedPermission)) {
137+
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
138+
if (sender.hasPermission(Util.flySpeedPermission) && args.length == 1) {
122139
tabComplete.clear();
123140
tabComplete.add(setArg);
124141
tabComplete.add(resetArg);
142+
if (sender.hasPermission(Util.flySpeedOthersPermission)) {
143+
tabComplete.add(getArg);
144+
}
125145
return tabComplete;
126146
}
127147
return null;

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,38 @@
11
package simplexity.simplefly;
22

3+
import net.kyori.adventure.text.Component;
4+
import net.kyori.adventure.text.minimessage.MiniMessage;
5+
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
36
import org.bukkit.NamespacedKey;
7+
import org.bukkit.command.CommandSender;
48

59
public class Util {
10+
private static final MiniMessage miniMessage = SimpleFly.getMiniMessage();
611

712
public static final NamespacedKey flyStatus = new NamespacedKey(SimpleFly.getInstance(), "flystatus");
813
public static final String flyPermission = "simplefly.fly";
914
public static final String flySpeedPermission = "simplefly.flyspeed";
1015
public static final String flyOthersPermission = "simplefly.others.fly";
1116
public static final String flySpeedOthersPermission = "simplefly.others.flyspeed";
17+
public static void sendUserMessage(CommandSender sender, String message) {
18+
if (message.isEmpty()) return;
19+
sender.sendMessage(miniMessage.deserialize(message));
20+
}
21+
22+
public static void sendUserMessage(CommandSender userToSendTo, String message,
23+
String value, CommandSender userToParse) {
24+
if (message.isEmpty()) return;
25+
Component parsedName;
26+
if (userToParse == null) {
27+
parsedName = Component.empty();
28+
} else {
29+
parsedName = userToParse.name();
30+
}
31+
userToSendTo.sendMessage(miniMessage.deserialize(message,
32+
Placeholder.parsed("value", value),
33+
Placeholder.component("initiator", parsedName),
34+
Placeholder.component("target", parsedName)));
35+
}
1236

1337

1438

src/main/resources/config.yml

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#Config
2-
"max-flyspeed": 8.0
3-
"min-flyspeed": -10.0
2+
# These must be between 10 and -10, however you might want to limit the speed more than that, as 10 is extremely fast
3+
# and may allow people to lag your server by generating too many chunks too quickly
4+
"max-fly-speed": 8.0
5+
"min-fly-speed": -8.0
46
# Where should flight persist? (flight won't disable due to these events)
57
"session-persistent-flight" : true
68
"world-change-persistent-flight" : true
@@ -15,16 +17,17 @@
1517
"fly-other" : "<target>'s fly has been <value>"
1618
"fly-own" : "Your fly has been <value>"
1719
"fly-set-by-other" : "<green>Your fly has been <value> by <initiator></green>"
18-
"flyspeed-other" : "<grey><target>'s current flyspeed is <value></grey>"
19-
"flyspeed-own" : "<grey>Your flyspeed is currently set to <value></grey>"
20-
"flyspeed-set" : "<green>Your flyspeed has been set to <value></green>"
21-
"flyspeed-reset" : "<green>Your flyspeed has been reset</green>"
22-
"flyspeed-set-other" : "<green>You set <target>'s flyspeed to <value></green>"
23-
"flyspeed-reset-other" : "<green><target>'s flyspeed has been reset</green>"
24-
"flyspeed-set-by-other" : "<green>Your flyspeed has been set to <value> by <initiator></green>"
25-
"flyspeed-reset-by-other" : "<green>Your flyspeed has been reset by <initiator></green>"
20+
"fly-speed-other" : "<grey><target>'s current flyspeed is <value></grey>"
21+
"fly-speed-own" : "<grey>Your flyspeed is currently set to <value></grey>"
22+
"fly-speed-set" : "<green>Your flyspeed has been set to <value></green>"
23+
"fly-speed-reset" : "<green>Your flyspeed has been reset</green>"
24+
"fly-speed-set-other" : "<green>You set <target>'s flyspeed to <value></green>"
25+
"fly-speed-reset-other" : "<green><target>'s flyspeed has been reset</green>"
26+
"fly-speed-set-by-other" : "<green>Your flyspeed has been set to <value> by <initiator></green>"
27+
"fly-speed-reset-by-other" : "<green>Your flyspeed has been reset by <initiator></green>"
2628
"not-a-player" : "<red>That is not a valid player. Please check your spelling and try again</red>"
2729
"no-permission" : "<red>You do not have permission to run this command</red>"
2830
"must-be-player" : "<red>You must be a player to run this command</red>"
2931
"not-enough-arguments" : "<red>You did not provide enough arguments. Please check your syntax and try again</red>"
30-
"not-a-number" : "<red>Sorry, you did not enter a valid flyspeed, please try again"
32+
"not-a-number" : "<red>Sorry, you did not enter a valid flyspeed, please try again"
33+
"not-in-range" : "<red>Sorry, you must provide a number between <min> and <max>"

0 commit comments

Comments
 (0)