Skip to content

Commit 5272ea5

Browse files
Merge pull request #61 from Waterman1001/master
See commits
2 parents 253a9f7 + 6f0b210 commit 5272ea5

File tree

7 files changed

+39
-10
lines changed

7 files changed

+39
-10
lines changed

MiniGamesBox API/src/main/java/plugily/projects/minigamesbox/api/user/IUserManager.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
import plugily.projects.minigamesbox.api.stats.IStatisticType;
66
import plugily.projects.minigamesbox.api.user.data.UserDatabase;
77

8+
import java.util.HashMap;
89
import java.util.List;
10+
import java.util.UUID;
911

1012
/**
1113
* @author Lagggpixel
@@ -26,6 +28,10 @@ public interface IUserManager {
2628

2729
void updateLevelStat(IUser user, IPluginArena arena);
2830

31+
void storeUserQuitDuringGame(Player player, IPluginArena arena);
32+
33+
HashMap<UUID, IPluginArena> getUsersQuitDuringGame();
34+
2935
void saveAllStatistic(IUser user);
3036

3137
void loadStatistics(IUser user);

MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/PluginArenaUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public static void hidePlayersOutsideTheGame(Player player, PluginArena arena) {
7373
VersionUtils.hidePlayer(plugin, players, player);
7474
}
7575
}
76-
76+
7777
public static CompletableFuture<Void> preparePlayerForGame(
7878
IPluginArena arena, Player player, Location location, boolean spectator) {
7979
return VersionUtils.teleport(player, location).thenAccept(bo -> {

MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/events/Events.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,9 @@ public void onCraft(PlugilyPlayerInteractEvent event) {
186186
return;
187187
}
188188
if(event.getPlayer().getTargetBlock(null, 7).getType() == XMaterial.CRAFTING_TABLE.parseMaterial()) {
189-
event.setCancelled(true);
189+
if(event.getAction().isRightClick()) {
190+
event.setCancelled(true);
191+
}
190192
}
191193
if(event.getClickedBlock() == null) {
192194
return;

MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/events/JoinEvent.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.bukkit.event.EventHandler;
2424
import org.bukkit.event.Listener;
2525
import org.bukkit.event.player.PlayerJoinEvent;
26+
import plugily.projects.minigamesbox.api.arena.IPluginArena;
2627
import plugily.projects.minigamesbox.classic.PluginMain;
2728
import plugily.projects.minigamesbox.classic.handlers.items.SpecialItem;
2829
import plugily.projects.minigamesbox.classic.utils.serialization.InventorySerializer;
@@ -45,6 +46,11 @@ public JoinEvent(PluginMain plugin) {
4546

4647
@EventHandler
4748
public void onJoin(PlayerJoinEvent event) {
49+
IPluginArena arena = plugin.getUserManager().getUsersQuitDuringGame().get(event.getPlayer().getUniqueId());
50+
if(arena != null) {
51+
VersionUtils.teleport(event.getPlayer(), arena.getEndLocation());
52+
plugin.getUserManager().getUsersQuitDuringGame().remove(event.getPlayer().getUniqueId());
53+
}
4854
plugin.getUserManager().loadStatistics(plugin.getUserManager().getUser(event.getPlayer()));
4955
//load player inventory in case of server crash, file is deleted once loaded so if file was already
5056
//deleted player won't receive his backup, in case of crash he will get it back

MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/events/QuitEvent.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
*/
1818
package plugily.projects.minigamesbox.classic.events;
1919

20+
import org.bukkit.Bukkit;
2021
import org.bukkit.entity.Player;
2122
import org.bukkit.event.EventHandler;
2223
import org.bukkit.event.Listener;
@@ -58,6 +59,7 @@ private void onQuit(Player player) {
5859
IPluginArena arena = plugin.getArenaRegistry().getArena(player);
5960
if (arena != null) {
6061
plugin.getArenaManager().leaveAttempt(player, arena);
62+
plugin.getUserManager().storeUserQuitDuringGame(player, arena);
6163
}
6264
IUser user = plugin.getUserManager().getUser(player);
6365
plugin.getUserManager().saveAllStatistic(user);

MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/user/UserManager.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public class UserManager implements IUserManager {
4444

4545
private final UserDatabase database;
4646
private final HashMap<UUID, User> users = new HashMap<>();
47+
private final HashMap<UUID, IPluginArena> usersQuitDuringGame = new HashMap<>();
4748
private final PluginMain plugin;
4849

4950
public UserManager(PluginMain plugin) {
@@ -129,6 +130,16 @@ public void updateLevelStat(IUser user, IPluginArena arena) {
129130
}
130131
}
131132

133+
@Override
134+
public void storeUserQuitDuringGame(Player player, IPluginArena arena) {
135+
usersQuitDuringGame.put(player.getUniqueId(), arena);
136+
}
137+
138+
@Override
139+
public HashMap<UUID, IPluginArena> getUsersQuitDuringGame() {
140+
return usersQuitDuringGame;
141+
}
142+
132143
@Override
133144
public void saveAllStatistic(IUser user) {
134145
database.saveAllStatistic(user);

MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/helper/ItemUtils.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,10 @@
1919
package plugily.projects.minigamesbox.classic.utils.helper;
2020

2121
import com.cryptomorin.xseries.XMaterial;
22-
import com.mojang.authlib.GameProfile;
22+
import com.destroystokyo.paper.profile.PlayerProfile;
23+
import com.destroystokyo.paper.profile.ProfileProperty;
2324
import com.mojang.authlib.properties.Property;
25+
import org.bukkit.Bukkit;
2426
import org.bukkit.inventory.ItemStack;
2527
import org.bukkit.inventory.meta.ItemMeta;
2628
import org.bukkit.inventory.meta.SkullMeta;
@@ -65,16 +67,16 @@ public static ItemStack getSkull(String url) {
6567

6668
SkullMeta headMeta = (SkullMeta) head.getItemMeta();
6769

68-
GameProfile profile;
69-
if(ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_20)) {
70-
profile = new GameProfile(UUID.randomUUID(), "Plugily");
70+
PlayerProfile profile;
71+
if(ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_21)) {
72+
profile = Bukkit.getServer().createProfile(UUID.randomUUID(), "Plugily");
7173
} else {
72-
profile = new GameProfile(UUID.randomUUID(), null);
74+
profile = Bukkit.getServer().createProfile(UUID.randomUUID(), null);
7375
}
74-
profile.getProperties().put("textures", new Property("textures", url));
75-
if(ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_15)) {
76+
profile.setProperty(new ProfileProperty("textures", url));
77+
if(ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_21)) {
7678
try {
77-
Method mtd = headMeta.getClass().getDeclaredMethod("setProfile", GameProfile.class);
79+
Method mtd = headMeta.getClass().getDeclaredMethod("setPlayerProfile", PlayerProfile.class);
7880
mtd.setAccessible(true);
7981
mtd.invoke(headMeta, profile);
8082
} catch(Exception ignored) {

0 commit comments

Comments
 (0)