Skip to content

Commit

Permalink
(Hopefully) Fix quit location not working correctly if a player witho…
Browse files Browse the repository at this point in the history
…ut admin worldguard permission leaves the server and the quit location lays within in a region.

updated dependencies
deprecated messages in favor of upcoming new language system.
  • Loading branch information
FireInstall committed Apr 26, 2024
1 parent 65aca75 commit 85fd790
Show file tree
Hide file tree
Showing 13 changed files with 279 additions and 245 deletions.
15 changes: 7 additions & 8 deletions Minigames/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
<dependency>
<groupId>com.github.seeseemelk</groupId>
<artifactId>MockBukkit-v1.20</artifactId>
<version>3.9.0</version>
<version>3.84.0</version>
<scope>test</scope>
<exclusions>
<exclusion>
Expand All @@ -87,15 +87,14 @@
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
<scope>test</scope>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.3.0</version>
</dependency>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.41.2.1</version>
<version>3.45.3.0</version>
<scope>provided</scope>
</dependency>
<dependency>
Expand All @@ -112,13 +111,13 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
<version>3.14.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.10.0</version>
<version>1.11.0</version>
</dependency>
</dependencies>
<build>
Expand Down
42 changes: 23 additions & 19 deletions Minigames/src/main/java/au/com/mineauz/minigames/Events.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,16 @@
import org.bukkit.inventory.ItemStack;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.jetbrains.annotations.NotNull;

import java.io.File;
import java.util.*;
import java.util.function.Predicate;

public class Events implements Listener {
private static final Minigames plugin = Minigames.getPlugin();
private final MinigamePlayerManager pdata = plugin.getPlayerManager();
private final MinigameManager mdata = plugin.getMinigameManager();
private static final @NotNull Minigames plugin = Minigames.getPlugin();
private final @NotNull MinigamePlayerManager pdata = plugin.getPlayerManager();
private final @NotNull MinigameManager mdata = plugin.getMinigameManager();

@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerResourcePack(PlayerResourcePackStatusEvent event) { //todo 1.20.3 + add ressource pack not set
Expand Down Expand Up @@ -173,15 +174,18 @@ public void itemPickup(EntityPickupItemEvent event) {
}
}

@EventHandler
public void onPlayerDisconnect(PlayerQuitEvent event) {
// the priority was changed to lowest, since having it to normal would mean worldguard
// would be served first unload the player and didn't allow them to teleport to the quit location inside a region. (pdata.quitMinigame)
@EventHandler(priority = EventPriority.LOWEST)
private void onPlayerDisconnect(PlayerQuitEvent event) {
MinigamePlayer ply = pdata.getMinigamePlayer(event.getPlayer());
if (ply.isInMinigame()) {
if (ply.getPlayer().isDead()) {
ply.getOfflineMinigamePlayer().setLoginLocation(ply.getMinigame().getQuitLocation());
ply.getOfflineMinigamePlayer().savePlayerData();
}
pdata.quitMinigame(pdata.getMinigamePlayer(event.getPlayer()), false);

pdata.quitMinigame(ply, false);
} else if (ply.isRequiredQuit()) {
ply.getOfflineMinigamePlayer().setLoginLocation(ply.getQuitPos());
ply.getOfflineMinigamePlayer().savePlayerData();
Expand All @@ -202,28 +206,28 @@ public void onPlayerDisconnect(PlayerQuitEvent event) {
}

@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerConnect(PlayerJoinEvent event) {
private void onPlayerConnect(final @NotNull PlayerJoinEvent event) {
pdata.addMinigamePlayer(event.getPlayer());
File pldata = new File(plugin.getDataFolder() + "/playerdata/inventories/" + event.getPlayer().getUniqueId() + ".yml");
final MinigamePlayer ply = pdata.getMinigamePlayer(event.getPlayer());
final MinigamePlayer mgPlayer = pdata.getMinigamePlayer(event.getPlayer());
if (pldata.exists()) {
ply.setOfflineMinigamePlayer(new OfflineMinigamePlayer(event.getPlayer().getUniqueId()));
Location floc = ply.getOfflineMinigamePlayer().getLoginLocation();
ply.setRequiredQuit(true);
ply.setQuitPos(floc);
mgPlayer.setOfflineMinigamePlayer(new OfflineMinigamePlayer(event.getPlayer().getUniqueId()));
final Location floc = mgPlayer.getOfflineMinigamePlayer().getLoginLocation();
mgPlayer.setRequiredQuit(true);
mgPlayer.setQuitPos(floc);

if (!ply.getPlayer().isDead() && ply.isRequiredQuit()) {
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, ply::restorePlayerData);
ply.teleport(ply.getQuitPos());
if (!mgPlayer.getPlayer().isDead() && mgPlayer.isRequiredQuit()) {
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, mgPlayer::restorePlayerData);
mgPlayer.teleport(floc);

ply.setRequiredQuit(false);
ply.setQuitPos(null);
mgPlayer.setRequiredQuit(false);
mgPlayer.setQuitPos(null);
}

plugin.getLogger().info(ply.getName() + "'s data has been restored from file.");
plugin.getLogger().info(mgPlayer.getName() + "'s data has been restored from file.");
}

ply.loadClaimedRewards();
mgPlayer.loadClaimedRewards();

if (Bukkit.getServer().getOnlinePlayers().size() == 1) {
for (Minigame mgm : mdata.getAllMinigames().values()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ public static String formStr(String format, Object... text) {
* @return The translation. If not found, will return the argument.
* @deprecated use {@link MessageManager#getUnformattedMessage(String, String)}
*/
@Deprecated
@Deprecated(forRemoval = true)
public static String getLang(String arg1) {
String out;
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public boolean onCommand(CommandSender sender, Minigame minigame, String label,
if (mgm != null && (!mgm.getUsePermissions() || player.hasPermission("minigame.join." + mgm.getName(false).toLowerCase()))) {
if (!plugin.getPlayerManager().getMinigamePlayer(player).isInMinigame()) {
sender.sendMessage(ChatColor.GREEN + MessageManager.getMinigamesMessage("command.join.joining", mgm.getName(false)));
plugin.getPlayerManager().joinMinigame(plugin.getPlayerManager().getMinigamePlayer(player), mgm, false, 0.0);
plugin.getPlayerManager().joinMinigame(mgm, plugin.getPlayerManager().getMinigamePlayer(player), false, 0.0);
} else {
player.sendMessage(ChatColor.RED + MinigameUtils.getLang("command.join.alreadyPlaying"));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public boolean onCommand(CommandSender sender, Minigame minigame,
if (plugin.getMinigameManager().hasMinigame(args[0])) {
MinigamePlayer ply = plugin.getPlayerManager().getMinigamePlayer((Player) sender);
Minigame mgm = plugin.getMinigameManager().getMinigame(args[0]);
plugin.getPlayerManager().spectateMinigame(ply, mgm);
plugin.getPlayerManager().spectateMinigame(mgm, ply);
} else {
sender.sendMessage(ChatColor.RED + "No Minigame found by the name: " + args[0]);
}
Expand Down
Loading

0 comments on commit 85fd790

Please sign in to comment.