Skip to content

Commit 412897e

Browse files
committed
handle flyspeed better
1 parent d61dc90 commit 412897e

File tree

11 files changed

+181
-124
lines changed

11 files changed

+181
-124
lines changed

pom.xml

Lines changed: 1 addition & 6 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.0</version>
9+
<version>0.0.1</version>
1010
<packaging>jar</packaging>
1111

1212
<name>SimpleFly</name>
@@ -67,10 +67,5 @@
6767
<version>1.20.2-R0.1-SNAPSHOT</version>
6868
<scope>provided</scope>
6969
</dependency>
70-
<dependency>
71-
<groupId>dev.jorel</groupId>
72-
<artifactId>commandapi-bukkit-shade</artifactId>
73-
<version>9.2.0</version>
74-
</dependency>
7570
</dependencies>
7671
</project>

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.bukkit.entity.Player;
55

66
public class CommandUtils {
7+
78
public static boolean checkIfPlayerAndPerms(CommandSender sender, String permission) {
89
if (!(sender instanceof Player player)) {
910
sender.sendRichMessage(ConfigValues.mustBePlayer);
@@ -15,5 +16,5 @@ public static boolean checkIfPlayerAndPerms(CommandSender sender, String permiss
1516
}
1617
return true;
1718
}
18-
19+
1920
}

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ public class ConfigValues {
99
public static String papiFlightEnabled, papiFlightDisabled, prefix, enabled, disabled, flySetOther,
1010
flySetOwn, flySetByOther, flySpeedGetOther, flySpeedGetOwn, flySpeedSetOwn, flySpeedResetOwn,
1111
flySpeedSetOther, flySpeedResetOther, flySpeedSetByOther, flySpeedResetByOther,
12-
invalidPlayer, noPermission, mustBePlayer, notEnoughArguments, invalidNumber, notInRange;
12+
invalidPlayer, noPermission, mustBePlayer, notEnoughArguments, invalidNumber, notInRange,
13+
invalidCommand, configReloaded;
1314

1415
public static float maxFlySpeed, minFlySpeed;
1516
public static boolean sessionPersistentFlight, worldChangePersistentFlight,
@@ -57,6 +58,8 @@ public static void reloadLangValues(){
5758
notEnoughArguments = config.getString("error.not-enough-arguments");
5859
invalidNumber = config.getString("error.invalid-number");
5960
notInRange = config.getString("error.not-in-range");
61+
invalidCommand = config.getString("error.invalid-command");
62+
configReloaded = config.getString("plugin-messages.config-reloaded");
6063
}
6164

6265
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@
1010
import java.util.List;
1111

1212
public class Fly implements TabExecutor {
13+
1314
@Override
1415
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
1516
if (args.length == 0) {
1617
if (CommandUtils.checkIfPlayerAndPerms(sender, Util.flyPermission)) {
17-
if (FlyLogic.flyEnabled((Player) sender)){
18+
if (FlyLogic.flyEnabled((Player) sender)) {
1819
Util.sendUserMessage(sender, ConfigValues.flySetOwn, ConfigValues.enabled, null);
1920
return true;
2021
} else {
@@ -31,7 +32,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
3132
Util.sendUserMessage(sender, ConfigValues.invalidPlayer);
3233
return false;
3334
}
34-
if (FlyLogic.flyEnabled(player)){
35+
if (FlyLogic.flyEnabled(player)) {
3536
Util.sendUserMessage(sender, ConfigValues.flySetOther, ConfigValues.enabled, player);
3637
Util.sendUserMessage(player, ConfigValues.flySetByOther, ConfigValues.enabled, sender);
3738
return true;

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
import org.bukkit.persistence.PersistentDataType;
1414

1515
public class FlyListeners implements Listener {
16+
1617
private static final NamespacedKey flyStatus = Util.flyStatus;
18+
1719
@EventHandler
1820
public void onPlayerLogin(PlayerJoinEvent joinEvent) {
1921
if (!ConfigValues.sessionPersistentFlight) {
@@ -77,6 +79,6 @@ public void onGamemodeChange(PlayerGameModeChangeEvent gameModeChangeEvent) {
7779
}
7880
}, 10);
7981
}
80-
81-
82+
83+
8284
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package simplexity.simplefly;
2+
3+
import org.bukkit.command.Command;
4+
import org.bukkit.command.CommandExecutor;
5+
import org.bukkit.command.CommandSender;
6+
import org.jetbrains.annotations.NotNull;
7+
8+
public class FlyReload implements CommandExecutor {
9+
10+
@Override
11+
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
12+
ConfigValues.reloadConfigValues();
13+
Util.sendUserMessage(sender, ConfigValues.configReloaded);
14+
return false;
15+
}
16+
}

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

Lines changed: 135 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -22,119 +22,167 @@ public class FlySpeed implements TabExecutor {
2222

2323
@Override
2424
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
25+
boolean hasOtherPermission = sender.hasPermission(Util.flyOthersPermission);
2526
switch (args.length) {
2627
case 0 -> {
27-
if (CommandUtils.checkIfPlayerAndPerms(sender, Util.flySpeedPermission)) {
28-
float flyspeed = ((Player) sender).getFlySpeed() * 10f;
29-
Util.sendUserMessage(sender, ConfigValues.flySpeedGetOwn,
30-
String.valueOf(flyspeed), null);
31-
return true;
32-
} else {
33-
return false;
34-
}
28+
getOwnFlySpeed(sender);
29+
return true;
3530
}
3631
case 1 -> {
37-
String argument = args[0];
38-
if (argument.equalsIgnoreCase(resetArg)) {
39-
if (CommandUtils.checkIfPlayerAndPerms(sender, Util.flySpeedPermission)) {
40-
((Player) sender).setFlySpeed(0.1f);
41-
Util.sendUserMessage(sender, ConfigValues.flySpeedResetOwn);
32+
switch (args[0]) {
33+
case setArg -> {
34+
Util.sendUserMessage(sender, ConfigValues.notEnoughArguments);
35+
return false;
36+
}
37+
case getArg -> {
38+
getOwnFlySpeed(sender);
4239
return true;
4340
}
44-
}
45-
if (argument.equalsIgnoreCase(setArg)) {
46-
Util.sendUserMessage(sender, ConfigValues.notEnoughArguments);
47-
return false;
41+
case resetArg -> {
42+
resetOwnFlySpeed(sender);
43+
return true;
44+
}
45+
default -> Util.sendUserMessage(sender, ConfigValues.invalidCommand);
4846
}
4947
}
5048
case 2 -> {
51-
String firstArgument = args[0];
52-
String secondArgument = args[1];
53-
float flyspeed;
54-
Player player;
55-
if (firstArgument.equalsIgnoreCase(setArg)) {
56-
try {
57-
flyspeed = Float.parseFloat(secondArgument);
58-
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))));
49+
Player player = SimpleFly.getFlyServer().getPlayer(args[1]);
50+
switch (args[0]) {
51+
case setArg -> {
52+
if (player == null || !hasOtherPermission) {
53+
setOwnSpeed(sender, args);
54+
return true;
55+
} else {
56+
Util.sendUserMessage(sender, ConfigValues.notEnoughArguments);
6357
return false;
6458
}
65-
player.setFlySpeed(flyspeed / 10f);
66-
Util.sendUserMessage(player, ConfigValues.flySpeedSetOwn,
67-
firstArgument, null);
68-
return true;
69-
} catch (NumberFormatException e) {
70-
player = SimpleFly.getFlyServer().getPlayer(secondArgument);
71-
if (player == null || !sender.hasPermission(Util.flySpeedOthersPermission)) {
72-
Util.sendUserMessage(sender, ConfigValues.invalidNumber);
59+
}
60+
case getArg -> {
61+
if (player == null || !hasOtherPermission) {
62+
Util.sendUserMessage(sender, ConfigValues.invalidCommand);
7363
return false;
64+
} else {
65+
getOtherFlySpeed(sender, args);
66+
return true;
7467
}
75-
Util.sendUserMessage(sender, ConfigValues.notEnoughArguments);
76-
return false;
7768
}
78-
}
79-
if (firstArgument.equalsIgnoreCase(resetArg) && sender.hasPermission(Util.flySpeedOthersPermission)) {
80-
player = SimpleFly.getFlyServer().getPlayer(secondArgument);
81-
if (player == null) {
82-
Util.sendUserMessage(sender, ConfigValues.invalidPlayer);
83-
return false;
84-
}
85-
player.setFlySpeed(0.1f);
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.invalidPlayer);
96-
return false;
69+
case resetArg -> {
70+
if (player == null || !hasOtherPermission) {
71+
Util.sendUserMessage(sender, ConfigValues.invalidCommand);
72+
return true;
73+
} else {
74+
resetOtherFlySpeed(sender, args);
75+
return true;
76+
}
9777
}
98-
flyspeed = player.getFlySpeed() * 10f;
99-
Util.sendUserMessage(sender, ConfigValues.flySpeedGetOther,
100-
String.valueOf(flyspeed), player);
101-
return true;
78+
default -> Util.sendUserMessage(sender, ConfigValues.invalidCommand);
10279
}
103-
return false;
10480
}
10581
case 3 -> {
106-
String firstArgument = args[0];
107-
String secondArgument = args[1];
108-
String thirdArgument = args[2];
109-
if (firstArgument.equalsIgnoreCase(setArg) && sender.hasPermission(Util.flySpeedOthersPermission)) {
110-
Player player = SimpleFly.getFlyServer().getPlayer(secondArgument);
111-
if (player == null) {
112-
Util.sendUserMessage(sender, ConfigValues.invalidPlayer);
113-
return false;
114-
}
115-
float flyspeed;
116-
try {
117-
flyspeed = Float.parseFloat(thirdArgument);
118-
player.setFlySpeed(flyspeed / 10f);
119-
Util.sendUserMessage(sender, ConfigValues.flySpeedSetOther,
120-
thirdArgument, player);
121-
Util.sendUserMessage(player, ConfigValues.flySpeedSetByOther,
122-
thirdArgument, sender);
123-
return true;
124-
} catch (NumberFormatException e) {
125-
Util.sendUserMessage(sender, ConfigValues.invalidNumber);
126-
return false;
127-
}
82+
if (args[0].equals(setArg) && hasOtherPermission) {
83+
setOtherPlayerSpeed(sender, args);
84+
return true;
12885
}
129-
86+
Util.sendUserMessage(sender, ConfigValues.invalidCommand);
13087
}
13188
}
13289
return false;
13390
}
13491

13592

93+
private void setOtherPlayerSpeed(CommandSender sender, String[] args) {
94+
String firstArgument = args[0];
95+
String secondArgument = args[1];
96+
String thirdArgument = args[2];
97+
if (firstArgument.equalsIgnoreCase(setArg)) {
98+
Player player = SimpleFly.getFlyServer().getPlayer(secondArgument);
99+
if (player == null) {
100+
Util.sendUserMessage(sender, ConfigValues.invalidPlayer);
101+
return;
102+
}
103+
float flyspeed;
104+
try {
105+
flyspeed = Float.parseFloat(thirdArgument);
106+
player.setFlySpeed(flyspeed / 10f);
107+
Util.sendUserMessage(sender, ConfigValues.flySpeedSetOther,
108+
thirdArgument, player);
109+
Util.sendUserMessage(player, ConfigValues.flySpeedSetByOther,
110+
thirdArgument, sender);
111+
} catch (NumberFormatException e) {
112+
Util.sendUserMessage(sender, ConfigValues.invalidNumber);
113+
}
114+
}
115+
}
116+
117+
private void resetOtherFlySpeed(CommandSender sender, String[] args) {
118+
Player player = SimpleFly.getFlyServer().getPlayer(args[1]);
119+
if (player == null) {
120+
Util.sendUserMessage(sender, ConfigValues.invalidPlayer);
121+
return;
122+
}
123+
player.setFlySpeed(0.1f);
124+
Util.sendUserMessage(sender, ConfigValues.flySpeedResetOther,
125+
null, player);
126+
Util.sendUserMessage(player, ConfigValues.flySpeedResetByOther,
127+
null, sender);
128+
}
129+
130+
private void getOtherFlySpeed(CommandSender sender, String[] args) {
131+
Player player = SimpleFly.getFlyServer().getPlayer(args[1]);
132+
if (player == null) {
133+
Util.sendUserMessage(sender, ConfigValues.invalidPlayer);
134+
return;
135+
}
136+
float flyspeed = player.getFlySpeed() * 10f;
137+
Util.sendUserMessage(sender, ConfigValues.flySpeedGetOther,
138+
String.valueOf(flyspeed), player);
139+
}
140+
141+
private void setOwnSpeed(CommandSender sender, String[] args) {
142+
float flyspeed;
143+
Player player;
144+
String secondArgument = args[1];
145+
try {
146+
flyspeed = Float.parseFloat(secondArgument);
147+
player = (Player) sender;
148+
if (flyspeed > ConfigValues.maxFlySpeed || flyspeed < ConfigValues.minFlySpeed) {
149+
player.sendMessage(miniMessage.deserialize(ConfigValues.notInRange,
150+
Placeholder.parsed("min", String.valueOf(ConfigValues.minFlySpeed)),
151+
Placeholder.parsed("max", String.valueOf(ConfigValues.maxFlySpeed))));
152+
return;
153+
}
154+
player.setFlySpeed(flyspeed / 10f);
155+
Util.sendUserMessage(player, ConfigValues.flySpeedSetOwn,
156+
secondArgument, null);
157+
} catch (NumberFormatException e) {
158+
player = SimpleFly.getFlyServer().getPlayer(secondArgument);
159+
if (player == null || !sender.hasPermission(Util.flySpeedOthersPermission)) {
160+
Util.sendUserMessage(sender, ConfigValues.invalidNumber);
161+
return;
162+
}
163+
Util.sendUserMessage(sender, ConfigValues.notEnoughArguments);
164+
}
165+
}
166+
167+
private void resetOwnFlySpeed(CommandSender sender) {
168+
if (CommandUtils.checkIfPlayerAndPerms(sender, Util.flySpeedPermission)) {
169+
((Player) sender).setFlySpeed(0.1f);
170+
Util.sendUserMessage(sender, ConfigValues.flySpeedResetOwn);
171+
}
172+
}
173+
174+
private void getOwnFlySpeed(CommandSender sender) {
175+
if (CommandUtils.checkIfPlayerAndPerms(sender, Util.flySpeedPermission)) {
176+
float flyspeed = ((Player) sender).getFlySpeed() * 10f;
177+
Util.sendUserMessage(sender, ConfigValues.flySpeedGetOwn,
178+
String.valueOf(flyspeed), null);
179+
}
180+
}
181+
182+
136183
@Override
137-
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
184+
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command
185+
command, @NotNull String s, @NotNull String[] args) {
138186
if (sender.hasPermission(Util.flySpeedPermission) && args.length == 1) {
139187
tabComplete.clear();
140188
tabComplete.add(setArg);

0 commit comments

Comments
 (0)