idk what im doing rn but just in case smth breaks
This commit is contained in:
		
							parent
							
								
									049b5da27c
								
							
						
					
					
						commit
						3ea2b796a5
					
				
							
								
								
									
										7
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								pom.xml
									
									
									
									
									
								
							|  | @ -153,6 +153,13 @@ | ||||||
|             <artifactId>snakeyaml</artifactId> |             <artifactId>snakeyaml</artifactId> | ||||||
|             <version>2.2</version> |             <version>2.2</version> | ||||||
|         </dependency> |         </dependency> | ||||||
|  |         <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>commons-io</groupId> | ||||||
|  |             <artifactId>commons-io</artifactId> | ||||||
|  |             <version>2.16.1</version> | ||||||
|  |         </dependency> | ||||||
|  | 
 | ||||||
|     </dependencies> |     </dependencies> | ||||||
| </project> | </project> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,7 +12,11 @@ import dev.rollczi.litecommands.annotations.permission.Permission; | ||||||
| import org.bukkit.command.CommandSender; | import org.bukkit.command.CommandSender; | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
| import xyz.twovb.sgm.SGM; | import xyz.twovb.sgm.SGM; | ||||||
|  | import xyz.twovb.sgm.games.impl.TestGame; | ||||||
| import xyz.twovb.toolbox.api.CustomPlayer; | import xyz.twovb.toolbox.api.CustomPlayer; | ||||||
|  | import xyz.twovb.toolbox.utils.ChatUtils; | ||||||
|  | 
 | ||||||
|  | import java.util.UUID; | ||||||
| 
 | 
 | ||||||
| @Command(name = "game") | @Command(name = "game") | ||||||
| public class GameCommand { | public class GameCommand { | ||||||
|  | @ -29,13 +33,20 @@ public class GameCommand { | ||||||
|                 builder.append(", "); |                 builder.append(", "); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         sender.sendMessage(builder.toString()); |         sender.sendMessage(ChatUtils.translate(builder.toString())); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Execute(name = "start") |     @Execute(name = "start") | ||||||
|     @Permission("sgm.games.start") |     @Permission("sgm.games.start") | ||||||
|     void game(@Context Player player, @Arg("name") String name) { |     void game(@Context Player player, @Arg("name") String name) { | ||||||
|         CustomPlayer cPlayer = new CustomPlayer(player); |         CustomPlayer cPlayer = new CustomPlayer(player); | ||||||
|  |         SGM.getInstance().getGameManager().createGame(new TestGame(), player, name); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Execute(name = "join") | ||||||
|  |     void join(@Context Player player, @Arg("id") String id) { | ||||||
|  |         CustomPlayer cPlayer = new CustomPlayer(player); | ||||||
|  |         SGM.getInstance().getGameManager().addPlayerToGame(player, UUID.fromString(id)); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -22,15 +22,11 @@ public class SGMCommand { | ||||||
|         builder.append("\n"); |         builder.append("\n"); | ||||||
|         builder.append(SGM.getInstance().getMessages().getString("main-command.lines.3")); |         builder.append(SGM.getInstance().getMessages().getString("main-command.lines.3")); | ||||||
|         builder.append("\n"); |         builder.append("\n"); | ||||||
|         builder.append("Enabled games:"); |  | ||||||
|         builder.append("\n"); |  | ||||||
|         for (String game : SGM.getInstance().getGameManager().getRegisteredGames()) { |  | ||||||
|             gameBuilder.append(game); |  | ||||||
|             gameBuilder.append(", "); |  | ||||||
|         } |  | ||||||
|         builder.append(gameBuilder.toString()); |  | ||||||
|         String string = builder.toString(); |         String string = builder.toString(); | ||||||
|         sender.sendMessage(ChatUtils.translate(PlaceholderManager.setPlaceholders(string, sender))); |         sender.sendMessage(ChatUtils.translate(PlaceholderManager.setPlaceholders(string, sender))); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     @Execute(name = "a") | ||||||
|  |     void a(@Context CommandSender sender) {} | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -12,7 +12,10 @@ import org.bukkit.command.CommandSender; | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
| import xyz.twovb.sgm.SGM; | import xyz.twovb.sgm.SGM; | ||||||
| import xyz.twovb.sgm.levels.LevelManager; | import xyz.twovb.sgm.levels.LevelManager; | ||||||
|  | import xyz.twovb.toolbox.managers.PlaceholderManager; | ||||||
|  | import xyz.twovb.toolbox.utils.ChatUtils; | ||||||
| 
 | 
 | ||||||
|  | import java.io.IOException; | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.HashMap; | import java.util.HashMap; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
|  | @ -49,7 +52,12 @@ public class GameManager { | ||||||
| 
 | 
 | ||||||
|     public void createGame(Minigame game, CommandSender owner, String level) { |     public void createGame(Minigame game, CommandSender owner, String level) { | ||||||
| //        World world = createGameWorld(level); | //        World world = createGameWorld(level); | ||||||
|  |         try { | ||||||
|             game.init(owner, level); |             game.init(owner, level); | ||||||
|  |         } catch (IOException e) { | ||||||
|  |             SGM.getInstance().getCLogger().error(e.getMessage()); | ||||||
|  |             owner.sendMessage(ChatUtils.translate(PlaceholderManager.setPlaceholders(SGM.getInstance().getMessages().getString("sgm.game.cant-start"), owner))); | ||||||
|  |         } | ||||||
|         activeGames.put(game.getGameId(), game); |         activeGames.put(game.getGameId(), game); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,6 +4,8 @@ package xyz.twovb.sgm.games; | ||||||
|  * Created by 2vb - 4/6/2024 |  * Created by 2vb - 4/6/2024 | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
|  | import org.apache.commons.io.FileUtils; | ||||||
|  | import org.bukkit.Bukkit; | ||||||
| import org.bukkit.NamespacedKey; | import org.bukkit.NamespacedKey; | ||||||
| import org.bukkit.World; | import org.bukkit.World; | ||||||
| import org.bukkit.WorldCreator; | import org.bukkit.WorldCreator; | ||||||
|  | @ -14,12 +16,14 @@ import xyz.twovb.sgm.SGM; | ||||||
| import xyz.twovb.sgm.levels.LevelManager; | import xyz.twovb.sgm.levels.LevelManager; | ||||||
| import xyz.twovb.toolbox.api.CustomPlayer; | import xyz.twovb.toolbox.api.CustomPlayer; | ||||||
| 
 | 
 | ||||||
|  | import java.io.File; | ||||||
|  | import java.io.IOException; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.UUID; | import java.util.UUID; | ||||||
| 
 | 
 | ||||||
| public interface Minigame extends Listener { | public interface Minigame extends Listener { | ||||||
| 
 | 
 | ||||||
|     void init(CommandSender owner, String world); |     void init(CommandSender owner, String world) throws IOException; | ||||||
| 
 | 
 | ||||||
|     void start(); |     void start(); | ||||||
| 
 | 
 | ||||||
|  | @ -48,8 +52,20 @@ public interface Minigame extends Listener { | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     default World createGameWorld(String name) { |     default World createGameWorld(String name, UUID id) throws IOException { | ||||||
|         WorldCreator wc = new WorldCreator(LevelManager.path + name, new NamespacedKey(SGM.getInstance(), name + "-" + UUID.randomUUID())); |         File levelDir = new File(LevelManager.path + name); | ||||||
|  | //        if (Bukkit.getWorld(new NamespacedKey(SGM.getInstance(), "level_" + name)) != null) { | ||||||
|  | //            World levelWorld = Bukkit.getWorld(new NamespacedKey(SGM.getInstance(), "level_" + name)); | ||||||
|  | //            if (levelWorld != null && levelWorld.getPlayerCount() == 0 && !Bukkit.isTickingWorlds()) { | ||||||
|  | //                Bukkit.getServer().unloadWorld(levelWorld, true); | ||||||
|  | //            } else { | ||||||
|  | //                return null; | ||||||
|  | //            } | ||||||
|  | //        } | ||||||
|  |         String tempName = name + "_" + id; | ||||||
|  |         File tempDir = new File(LevelManager.gamePath + tempName); | ||||||
|  |         FileUtils.copyDirectory(levelDir, tempDir); | ||||||
|  |         WorldCreator wc = new WorldCreator(LevelManager.gamePath + name, new NamespacedKey(SGM.getInstance(), name + "-" + UUID.randomUUID())); | ||||||
|         World world = wc.createWorld(); |         World world = wc.createWorld(); | ||||||
|         if (world == null) return null; |         if (world == null) return null; | ||||||
|         world.setAutoSave(false); |         world.setAutoSave(false); | ||||||
|  |  | ||||||
|  | @ -15,6 +15,7 @@ import xyz.twovb.sgm.SGM; | ||||||
| import xyz.twovb.sgm.games.GameManager; | import xyz.twovb.sgm.games.GameManager; | ||||||
| import xyz.twovb.sgm.games.Minigame; | import xyz.twovb.sgm.games.Minigame; | ||||||
| 
 | 
 | ||||||
|  | import java.io.IOException; | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.UUID; | import java.util.UUID; | ||||||
|  | @ -34,11 +35,11 @@ public class TestGame implements Minigame { | ||||||
|         this.players = new ArrayList<>(); |         this.players = new ArrayList<>(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public void init(CommandSender owner, String world) { |     public void init(CommandSender owner, String world) throws IOException { | ||||||
|         // Perform initialization logic here |         // Perform initialization logic here | ||||||
|         Bukkit.getPluginManager().registerEvents(this, SGM.getInstance()); |         Bukkit.getPluginManager().registerEvents(this, SGM.getInstance()); | ||||||
|         this.owner = owner; |         this.owner = owner; | ||||||
|         gameWorld = createGameWorld(world); |         gameWorld = createGameWorld(world, uuid); | ||||||
|         state = GameState.READY; |         state = GameState.READY; | ||||||
|         owner.sendMessage("A new " + name + " instance with ID " + uuid + " has been created and is now ready!"); |         owner.sendMessage("A new " + name + " instance with ID " + uuid + " has been created and is now ready!"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -23,6 +23,8 @@ public class LevelManager { | ||||||
| 
 | 
 | ||||||
|     public static final String path = SGM.getInstance().getDataFolder().getPath() + "/levels/"; |     public static final String path = SGM.getInstance().getDataFolder().getPath() + "/levels/"; | ||||||
| 
 | 
 | ||||||
|  |     public static final String gamePath = SGM.getInstance().getDataFolder().getPath() + "/games/"; | ||||||
|  | 
 | ||||||
|     public HashMap<String, List<String>> enabledMaps = new HashMap<>(); |     public HashMap<String, List<String>> enabledMaps = new HashMap<>(); | ||||||
| 
 | 
 | ||||||
|     private static void loadWorld(String worldName) { |     private static void loadWorld(String worldName) { | ||||||
|  | @ -59,7 +61,7 @@ public class LevelManager { | ||||||
|             return CreationResult.UNKNOWN; |             return CreationResult.UNKNOWN; | ||||||
|         } |         } | ||||||
|         Location location = new Location(world, 0, 0, 0); |         Location location = new Location(world, 0, 0, 0); | ||||||
|         Block block = location.subtract(0, 1, 0).getBlock(); |         Block block = location.subtract(0, 2, 0).getBlock(); | ||||||
|         block.setType(Material.STONE); |         block.setType(Material.STONE); | ||||||
|         world.setSpawnLocation(location); |         world.setSpawnLocation(location); | ||||||
|         world.setSpawnFlags(false, false); |         world.setSpawnFlags(false, false); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user