init project

This commit is contained in:
Len
2024-01-04 22:43:10 +01:00
commit 765001257c
14 changed files with 716 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
plugins {
`maven-publish`
id("net.minecrell.plugin-yml.bukkit") version "0.6.0"
}
dependencies {
implementation(project(":api")) // API
compileOnly("com.alttd:Comet-API:1.20.4-R0.1-SNAPSHOT")
}
tasks {
jar {
archiveFileName.set("${rootProject.name}-${project.name}.jar")
}
}
bukkit {
name = rootProject.name
main = "$group.${rootProject.name}Plugin"
version = "${rootProject.version}"
apiVersion = "1.20"
authors = listOf("destro174")
load = net.minecrell.pluginyml.bukkit.BukkitPluginDescription.PluginLoadOrder.POSTWORLD
}
@@ -0,0 +1,37 @@
package com.alttd.cometskyblock;
import com.alttd.cometskyblock.listeners.PlayerJoinListener;
import com.alttd.cometskyblock.worldgenerator.IslandGenerator;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
public class CometSkyBlockPlugin extends JavaPlugin implements CometSkyBlockAPI {
private static CometSkyBlockPlugin instance;
@Override
public void onLoad() {
instance = this;
CometSkyBlockAPI.Provider.register(instance);
}
@Override
public void onEnable() {
String island = "Island";
World world = Bukkit.getWorld(island);
if (world == null) {
new IslandGenerator(instance).create(island);
}
final PluginManager pm = getServer().getPluginManager();
pm.registerEvents(new PlayerJoinListener(this), this);
}
@Override
public void onDisable() {
}
}
@@ -0,0 +1,33 @@
package com.alttd.cometskyblock.listeners;
import com.alttd.cometskyblock.CometSkyBlockPlugin;
import com.alttd.cometskyblock.worldgenerator.IslandGenerator;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
public class PlayerJoinListener implements Listener {
private final CometSkyBlockPlugin plugin;
public PlayerJoinListener(CometSkyBlockPlugin plugin) {
this.plugin = plugin;
}
@EventHandler
public void onPlayerJoinEvent(PlayerJoinEvent playerJoinEvent) {
Player player = playerJoinEvent.getPlayer();
String island = "Island";
World world = Bukkit.getWorld(island);
if (world == null) {
new IslandGenerator(plugin).create(island);
}
player.setGameMode(GameMode.CREATIVE);
player.setFlying(true);
player.teleportAsync(new Location(world, 0, 256, 0));
}
}
@@ -0,0 +1,34 @@
package com.alttd.cometskyblock.worldgenerator;
import org.bukkit.World;
import org.bukkit.generator.BiomeProvider;
import org.bukkit.generator.BlockPopulator;
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.generator.WorldInfo;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class CometVoidGenerator extends ChunkGenerator {
@Override
public @NotNull List<BlockPopulator> getDefaultPopulators(World world) {
return new ArrayList<>();
}
@Override
public void generateSurface(@NotNull WorldInfo info, @NotNull Random random, int x, int z, @NotNull ChunkData data) {
}
@Override
public BiomeProvider getDefaultBiomeProvider(WorldInfo worldInfo) {
return worldInfo.vanillaBiomeProvider();
}
@Override
public boolean shouldGenerateStructures() {
return true;
}
}
@@ -0,0 +1,25 @@
package com.alttd.cometskyblock.worldgenerator;
import com.alttd.cometskyblock.CometSkyBlockPlugin;
import org.bukkit.World;
import org.bukkit.WorldCreator;
public class IslandGenerator {
private final CometSkyBlockPlugin plugin;
public IslandGenerator(CometSkyBlockPlugin plugin) {
this.plugin = plugin;
}
public void create(String islandName) {
plugin.getServer().getScheduler().runTask(plugin, () -> {
WorldCreator worldCreator = new WorldCreator(islandName);
worldCreator.generator(new CometVoidGenerator());
worldCreator.environment(World.Environment.NORMAL);
worldCreator.generateStructures(true);
World world = worldCreator.createWorld();
});
}
}