Adds a partially usable arena menu openable through a command

This commit is contained in:
2023-05-09 15:47:54 +02:00
parent 0704e138ec
commit 00ac0582f4
12 changed files with 371 additions and 44 deletions

View File

@@ -1,5 +1,6 @@
package net.knarcraft.minigames.arena;
import net.knarcraft.minigames.gui.ArenaGUI;
import org.jetbrains.annotations.NotNull;
/**
@@ -38,4 +39,11 @@ public interface ArenaSession {
*/
@NotNull Arena getArena();
/**
* Gets the GUI with this arena's options
*
* @return <p>This arena's GUI</p>
*/
@NotNull ArenaGUI getGUI();
}

View File

@@ -5,6 +5,8 @@ import net.knarcraft.minigames.arena.AbstractArenaSession;
import net.knarcraft.minigames.arena.PlayerEntryState;
import net.knarcraft.minigames.config.DropperConfiguration;
import net.knarcraft.minigames.config.Message;
import net.knarcraft.minigames.gui.ArenaGUI;
import net.knarcraft.minigames.gui.DropperGUI;
import net.knarcraft.minigames.util.PlayerTeleporter;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
@@ -16,6 +18,8 @@ import java.util.logging.Level;
*/
public class DropperArenaSession extends AbstractArenaSession {
private static final ArenaGUI gui = new DropperGUI();
private final @NotNull DropperArena arena;
private final @NotNull Player player;
private final @NotNull DropperArenaGameMode gameMode;
@@ -101,6 +105,11 @@ public class DropperArenaSession extends AbstractArenaSession {
return this.arena;
}
@Override
public @NotNull ArenaGUI getGUI() {
return gui;
}
@Override
protected void removeSession() {
// Remove this session for game sessions to stop listeners from fiddling more with the player

View File

@@ -5,6 +5,8 @@ import net.knarcraft.minigames.arena.AbstractArenaSession;
import net.knarcraft.minigames.arena.PlayerEntryState;
import net.knarcraft.minigames.config.Message;
import net.knarcraft.minigames.config.ParkourConfiguration;
import net.knarcraft.minigames.gui.ArenaGUI;
import net.knarcraft.minigames.gui.ParkourGUI;
import net.knarcraft.minigames.util.PlayerTeleporter;
import org.bukkit.Location;
import org.bukkit.entity.Player;
@@ -18,6 +20,8 @@ import java.util.logging.Level;
*/
public class ParkourArenaSession extends AbstractArenaSession {
private static final ArenaGUI gui = new ParkourGUI();
private final @NotNull ParkourArena arena;
private final @NotNull Player player;
private final @NotNull ParkourArenaGameMode gameMode;
@@ -112,6 +116,11 @@ public class ParkourArenaSession extends AbstractArenaSession {
return this.arena;
}
@Override
public @NotNull ArenaGUI getGUI() {
return gui;
}
@Override
protected void removeSession() {
// Remove this session for game sessions to stop listeners from fiddling more with the player