a
Some checks failed
Build plugin / build (push) Has been cancelled

This commit is contained in:
2vb 2024-06-26 00:21:19 -07:00
parent a82dfcf917
commit 5d0035282d
4 changed files with 144 additions and 21 deletions

View File

@ -145,7 +145,7 @@
<dependency> <dependency>
<groupId>xyz.twovb</groupId> <groupId>xyz.twovb</groupId>
<artifactId>Toolbox</artifactId> <artifactId>Toolbox</artifactId>
<version>0.1</version> <version>0.2</version>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -7,14 +7,14 @@ import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import xyz.twovb.sgm.commands.impl.LevelCommand;
import xyz.twovb.sgm.commands.impl.SGMCommand;
import xyz.twovb.sgm.commands.handlers.InvalidArgsHandler; import xyz.twovb.sgm.commands.handlers.InvalidArgsHandler;
import xyz.twovb.sgm.commands.handlers.NoPermissionsHandler; import xyz.twovb.sgm.commands.handlers.NoPermissionsHandler;
import xyz.twovb.sgm.commands.impl.LevelCommand;
import xyz.twovb.sgm.commands.impl.SGMCommand;
import xyz.twovb.toolbox.managers.ConfigManager; import xyz.twovb.toolbox.managers.ConfigManager;
import xyz.twovb.toolbox.managers.PlaceholderManager;
import xyz.twovb.toolbox.managers.DatabaseManager; import xyz.twovb.toolbox.managers.DatabaseManager;
import xyz.twovb.toolbox.utils.ToolLogger; import xyz.twovb.toolbox.managers.PlaceholderManager;
import xyz.twovb.toolbox.utils.CustomLogger;
import java.io.IOException; import java.io.IOException;
import java.sql.SQLException; import java.sql.SQLException;
@ -29,7 +29,7 @@ public final class SGM extends JavaPlugin {
@Getter @Getter
private FileConfiguration Messages; private FileConfiguration Messages;
@Getter @Getter
private ToolLogger toolLogger; private CustomLogger cLogger;
private ConfigManager configManager; private ConfigManager configManager;
@Getter @Getter
private DatabaseManager databaseManager; private DatabaseManager databaseManager;
@ -38,14 +38,15 @@ public final class SGM extends JavaPlugin {
@Override @Override
public void onEnable() { public void onEnable() {
instance = this; instance = this;
toolLogger = new ToolLogger(this); cLogger = new CustomLogger(this);
configManager = new ConfigManager(this); configManager = new ConfigManager(this);
Messages = configManager.loadConfig("messages.yml"); Messages = configManager.loadConfig("messages.yml");
this.saveDefaultConfig(); this.saveDefaultConfig();
BuildInfo = new YamlConfiguration(); BuildInfo = new YamlConfiguration();
try { try {
BuildInfo.load(Objects.requireNonNull(this.getTextResource("build-info.yml"))); BuildInfo.load(Objects.requireNonNull(this.getTextResource("build-info.yml")));
} catch (IOException | InvalidConfigurationException ignored) {} } catch (IOException | InvalidConfigurationException ignored) {
}
registerCommands(); registerCommands();
registerPlaceholders(); registerPlaceholders();
connectToDatabase(); connectToDatabase();
@ -55,7 +56,7 @@ public final class SGM extends JavaPlugin {
databaseManager = new DatabaseManager(); databaseManager = new DatabaseManager();
try { try {
databaseManager.connect(DatabaseManager.DatabaseType.SQLITE, this, "sgm"); databaseManager.connect(DatabaseManager.DatabaseType.SQLITE, this, "sgm");
toolLogger.log("Connected to database!"); cLogger.log("Connected to database!");
} catch (SQLException | ClassNotFoundException e) { } catch (SQLException | ClassNotFoundException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
@ -70,14 +71,7 @@ public final class SGM extends JavaPlugin {
} }
private void registerCommands() { private void registerCommands() {
LiteCommandsBukkit.builder() LiteCommandsBukkit.builder().commands(new SGMCommand(), new LevelCommand()).invalidUsage(new InvalidArgsHandler()).missingPermission(new NoPermissionsHandler()).message(LiteBukkitMessages.PLAYER_NOT_FOUND, input -> Messages.getString("commands.invalid-player").replace("%player%", input)).message(LiteBukkitMessages.PLAYER_ONLY, input -> Messages.getString("commands.player-only")).build();
// .settings(settings -> settings.fallbackPrefix("sgm").nativePermissions(false))
.commands(new SGMCommand(), new LevelCommand())
.invalidUsage(new InvalidArgsHandler())
.missingPermission(new NoPermissionsHandler())
.message(LiteBukkitMessages.PLAYER_NOT_FOUND, input -> Messages.getString("commands.invalid-player").replace("%player%", input))
.message(LiteBukkitMessages.PLAYER_ONLY, input -> Messages.getString("commands.player-only"))
.build();
} }
@Override @Override
@ -85,7 +79,7 @@ public final class SGM extends JavaPlugin {
try { try {
databaseManager.close(); databaseManager.close();
} catch (SQLException e) { } catch (SQLException e) {
toolLogger.error(e); cLogger.error(e);
} }
} }

View File

@ -7,7 +7,7 @@ package xyz.twovb.sgm.games;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import xyz.twovb.toolbox.api.ToolPlayer; import xyz.twovb.toolbox.api.CustomPlayer;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
@ -34,8 +34,8 @@ public interface Minigame extends Listener {
CommandSender getOwner(); CommandSender getOwner();
default void sendMessageToAllPlayers(String message) { default void sendMessageToAllPlayers(String message) {
for (Player player : getPlayers()) { for (Player player : getPlayers()) {
ToolPlayer toolPlayer = new ToolPlayer(player); CustomPlayer cPlayer = new CustomPlayer(player);
toolPlayer.sendMessage(message); cPlayer.sendMessage(message);
} }
} }

View File

@ -0,0 +1,129 @@
package xyz.twovb.sgm.games.impl;
/*
* Created by 2vb - 26/6/2024
*/
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import xyz.twovb.sgm.SGM;
import xyz.twovb.sgm.games.GameManager;
import xyz.twovb.sgm.games.Minigame;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
public class TestGame implements Minigame {
final String name = "TestGame";
private final UUID uuid;
private CommandSender owner;
private GameState state;
private final List<Player> players;
public TestGame() {
this.uuid = UUID.randomUUID();
this.state = GameState.PRESTART;
this.players = new ArrayList<>();
}
public void init(CommandSender owner) {
// Perform initialization logic here
Bukkit.getPluginManager().registerEvents(this, SGM.getInstance());
this.owner = owner;
state = GameState.READY;
owner.sendMessage("A new " + name + " instance with ID " + uuid + " has been created and is now ready!");
}
@Override
public void start() {
if (state == GameState.PRESTART) {
state = GameState.STARTED;
sendMessageToAllPlayers("The game has started!");
for (Player player : players) {
player.teleport(player.getWorld().getSpawnLocation());
}
Bukkit.getScheduler().runTaskTimer(SGM.getInstance(), this::onTick, 0L, 1L);
}
}
@Override
public void stop() {
// Stop game logic
state = GameState.ENDING;
Player winner;
if (players.size() <= 1) {
winner = players.get(0);
winner.sendMessage("Congratulations on winning the game!");
}
players.clear(); // Clear player list
GameManager.getActiveGames().remove(uuid);
}
@Override
public void addPlayer(Player player) {
players.add(player);
sendMessageToAllPlayers(player.getName() + " has joined the game!");
}
@Override
public void removePlayer(Player player) {
players.remove(player);
}
@EventHandler
void onPlayerQuit(PlayerQuitEvent event) {
Player player = event.getPlayer();
if (players.contains(player)) {
removePlayer(event.getPlayer());
}
}
@EventHandler
void onPlayerDeath(PlayerDeathEvent event) {
Player player = event.getPlayer();
if (players.contains(player)) {
sendMessageToAllPlayers(player.getName() + " was eliminated!");
event.setDeathMessage("");
removePlayer(player);
}
}
@Override
public List<Player> getPlayers() {
return players;
}
@Override
public String getName() {
return name;
}
@Override
public UUID getGameId() {
return uuid;
}
@Override
public GameState getState() {
return state;
}
@Override
public CommandSender getOwner() {
return owner;
}
@Override
public void onTick() {
if (state == GameState.STARTED && players.size() <= 1) {
this.stop();
}
}
}