Update project configuration and refactor codebase
- Migrated Minestom dependency to new groupId. - Added Maven Shade plugin for packaging. - Switched Java version to 21 and corrected JDK settings. - Refactored terrain generation logic to use the updated Minestom API. - Replaced deprecated particle creation methods. - Enabled Velocity proxy support. - Updated various configuration files to align with the new build setup.
This commit is contained in:
13
.idea/EndlessJumper.iml
generated
Normal file
13
.idea/EndlessJumper.iml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module version="4">
|
||||||
|
<component name="FacetManager">
|
||||||
|
<facet type="minecraft" name="Minecraft">
|
||||||
|
<configuration>
|
||||||
|
<autoDetectTypes>
|
||||||
|
<platformType>ADVENTURE</platformType>
|
||||||
|
</autoDetectTypes>
|
||||||
|
<projectReimportVersion>1</projectReimportVersion>
|
||||||
|
</configuration>
|
||||||
|
</facet>
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
10
.idea/jarRepositories.xml
generated
10
.idea/jarRepositories.xml
generated
@@ -11,16 +11,16 @@
|
|||||||
<option name="name" value="spongepowered" />
|
<option name="name" value="spongepowered" />
|
||||||
<option name="url" value="https://repo.spongepowered.org/maven" />
|
<option name="url" value="https://repo.spongepowered.org/maven" />
|
||||||
</remote-repository>
|
</remote-repository>
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="central" />
|
|
||||||
<option name="name" value="Maven Central repository" />
|
|
||||||
<option name="url" value="https://repo1.maven.org/maven2" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
<remote-repository>
|
||||||
<option name="id" value="jitpack" />
|
<option name="id" value="jitpack" />
|
||||||
<option name="name" value="jitpack" />
|
<option name="name" value="jitpack" />
|
||||||
<option name="url" value="https://jitpack.io" />
|
<option name="url" value="https://jitpack.io" />
|
||||||
</remote-repository>
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="central" />
|
||||||
|
<option name="name" value="Maven Central repository" />
|
||||||
|
<option name="url" value="https://repo1.maven.org/maven2" />
|
||||||
|
</remote-repository>
|
||||||
<remote-repository>
|
<remote-repository>
|
||||||
<option name="id" value="jboss.community" />
|
<option name="id" value="jboss.community" />
|
||||||
<option name="name" value="JBoss Community repository" />
|
<option name="name" value="JBoss Community repository" />
|
||||||
|
|||||||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -8,7 +8,7 @@
|
|||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="openjdk-17" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="corretto-21" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
44
dependency-reduced-pom.xml
Normal file
44
dependency-reduced-pom.xml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.example</groupId>
|
||||||
|
<artifactId>EndlessJumper</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-shade-plugin</artifactId>
|
||||||
|
<version>3.5.3</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>shade</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<transformers>
|
||||||
|
<transformer>
|
||||||
|
<mainClass>eu.mhsl.minecraft.endlessjumper.EndlessJumper</mainClass>
|
||||||
|
</transformer>
|
||||||
|
</transformers>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>spongepowered</id>
|
||||||
|
<url>https://repo.spongepowered.org/maven</url>
|
||||||
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>jitpack</id>
|
||||||
|
<url>https://jitpack.io</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.target>17</maven.compiler.target>
|
||||||
|
<maven.compiler.source>17</maven.compiler.source>
|
||||||
|
</properties>
|
||||||
|
</project>
|
||||||
37
pom.xml
37
pom.xml
@@ -26,15 +26,34 @@
|
|||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.Minestom</groupId>
|
<groupId>net.minestom</groupId>
|
||||||
<artifactId>Minestom</artifactId>
|
<artifactId>minestom-snapshots</artifactId>
|
||||||
<version>484727d02a</version>
|
<version>d707b0674f</version>
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.jboss.shrinkwrap.resolver</groupId>
|
|
||||||
<artifactId>shrinkwrap-resolver-depchain</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-shade-plugin</artifactId>
|
||||||
|
<version>3.5.3</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>shade</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<transformers>
|
||||||
|
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
||||||
|
<mainClass>eu.mhsl.minecraft.endlessjumper.EndlessJumper</mainClass>
|
||||||
|
</transformer>
|
||||||
|
</transformers>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
</project>
|
</project>
|
||||||
@@ -6,12 +6,14 @@ import net.minestom.server.coordinate.Pos;
|
|||||||
import net.minestom.server.entity.Player;
|
import net.minestom.server.entity.Player;
|
||||||
import net.minestom.server.entity.PlayerSkin;
|
import net.minestom.server.entity.PlayerSkin;
|
||||||
import net.minestom.server.event.GlobalEventHandler;
|
import net.minestom.server.event.GlobalEventHandler;
|
||||||
|
import net.minestom.server.event.player.AsyncPlayerConfigurationEvent;
|
||||||
import net.minestom.server.event.player.PlayerDisconnectEvent;
|
import net.minestom.server.event.player.PlayerDisconnectEvent;
|
||||||
import net.minestom.server.event.player.PlayerLoginEvent;
|
|
||||||
import net.minestom.server.event.player.PlayerMoveEvent;
|
import net.minestom.server.event.player.PlayerMoveEvent;
|
||||||
|
import net.minestom.server.extras.velocity.VelocityProxy;
|
||||||
import net.minestom.server.instance.InstanceContainer;
|
import net.minestom.server.instance.InstanceContainer;
|
||||||
import net.minestom.server.instance.InstanceManager;
|
import net.minestom.server.instance.InstanceManager;
|
||||||
import net.minestom.server.instance.block.Block;
|
import net.minestom.server.instance.block.Block;
|
||||||
|
import net.minestom.server.timer.TaskSchedule;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
@@ -24,12 +26,12 @@ public class EndlessJumper {
|
|||||||
|
|
||||||
HashMap<Player, JumpGenerator> games = new HashMap<>();
|
HashMap<Player, JumpGenerator> games = new HashMap<>();
|
||||||
|
|
||||||
eventHandler.addListener(PlayerLoginEvent.class, event -> {
|
eventHandler.addListener(AsyncPlayerConfigurationEvent.class, event -> {
|
||||||
final Player p = event.getPlayer();
|
final Player p = event.getPlayer();
|
||||||
p.setRespawnPoint(new Pos(0.5,101.5,0.5));
|
p.setRespawnPoint(new Pos(0.5,101.5,0.5));
|
||||||
|
|
||||||
final InstanceContainer world = instanceManager.createInstanceContainer();
|
final InstanceContainer world = instanceManager.createInstanceContainer();
|
||||||
world.setChunkGenerator(new TerrainGenerator());
|
world.setGenerator(new TerrainGenerator());
|
||||||
|
|
||||||
Pos startingAt = new Pos(0,100,0);
|
Pos startingAt = new Pos(0,100,0);
|
||||||
world.setBlock(startingAt, Block.DIAMOND_BLOCK);
|
world.setBlock(startingAt, Block.DIAMOND_BLOCK);
|
||||||
@@ -41,7 +43,11 @@ public class EndlessJumper {
|
|||||||
|
|
||||||
event.setSpawningInstance(world);
|
event.setSpawningInstance(world);
|
||||||
|
|
||||||
games.put(p, new JumpGenerator(startingAt, p, world));
|
MinecraftServer.getSchedulerManager().scheduleTask(
|
||||||
|
() -> games.put(p, new JumpGenerator(startingAt, p, world)),
|
||||||
|
TaskSchedule.seconds(3),
|
||||||
|
TaskSchedule.stop()
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
eventHandler.addListener(PlayerMoveEvent.class, event -> {
|
eventHandler.addListener(PlayerMoveEvent.class, event -> {
|
||||||
@@ -70,11 +76,10 @@ public class EndlessJumper {
|
|||||||
//if(p.getPosition().z() > target.z()+2) generator.highlight();
|
//if(p.getPosition().z() > target.z()+2) generator.highlight();
|
||||||
});
|
});
|
||||||
|
|
||||||
eventHandler.addListener(PlayerDisconnectEvent.class, event -> {
|
eventHandler.addListener(PlayerDisconnectEvent.class, event -> games.remove(event.getPlayer()));
|
||||||
games.remove(event.getPlayer());
|
|
||||||
});
|
|
||||||
|
|
||||||
server.start("0.0.0.0", 25565);
|
VelocityProxy.enable("iph0YHK9jNWZ");
|
||||||
|
server.start("0.0.0.0", 25501);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,36 +1,12 @@
|
|||||||
package eu.mhsl.minecraft.endlessjumper;
|
package eu.mhsl.minecraft.endlessjumper;
|
||||||
|
|
||||||
import net.minestom.server.instance.Chunk;
|
import net.minestom.server.instance.generator.GenerationUnit;
|
||||||
import net.minestom.server.instance.ChunkGenerator;
|
import net.minestom.server.instance.generator.Generator;
|
||||||
import net.minestom.server.instance.ChunkPopulator;
|
|
||||||
import net.minestom.server.instance.batch.ChunkBatch;
|
|
||||||
import net.minestom.server.instance.block.Block;
|
|
||||||
import net.minestom.server.world.biomes.Biome;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
public class TerrainGenerator implements Generator {
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class TerrainGenerator implements ChunkGenerator {
|
|
||||||
@Override
|
@Override
|
||||||
public void generateChunkData(@NotNull ChunkBatch batch, int chunkX, int chunkZ) {
|
public void generate(@NotNull GenerationUnit unit) {
|
||||||
for(byte x = 0; x < Chunk.CHUNK_SIZE_X; x++) {
|
|
||||||
for(byte z = 0; z < Chunk.CHUNK_SIZE_Z; z++) {
|
|
||||||
for(byte y = 0; y < 1; y++) {
|
|
||||||
batch.setBlock(x, y, z, Block.AIR);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillBiomes(@NotNull Biome[] biomes, int chunkX, int chunkZ) {
|
|
||||||
Arrays.fill(biomes, Biome.PLAINS);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public @Nullable List<ChunkPopulator> getPopulators() {
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,8 +17,6 @@ public class BlockPalette {
|
|||||||
blocks.add(Block.OXIDIZED_COPPER);
|
blocks.add(Block.OXIDIZED_COPPER);
|
||||||
blocks.add(Block.OXIDIZED_CUT_COPPER);
|
blocks.add(Block.OXIDIZED_CUT_COPPER);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return blocks.get(r.nextInt(0, blocks.size()));
|
return blocks.get(r.nextInt(0, blocks.size()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,23 +8,23 @@ import net.minestom.server.coordinate.Pos;
|
|||||||
import net.minestom.server.entity.Player;
|
import net.minestom.server.entity.Player;
|
||||||
import net.minestom.server.instance.InstanceContainer;
|
import net.minestom.server.instance.InstanceContainer;
|
||||||
import net.minestom.server.instance.block.Block;
|
import net.minestom.server.instance.block.Block;
|
||||||
|
import net.minestom.server.network.packet.server.play.ParticlePacket;
|
||||||
import net.minestom.server.particle.Particle;
|
import net.minestom.server.particle.Particle;
|
||||||
import net.minestom.server.particle.ParticleCreator;
|
|
||||||
import net.minestom.server.sound.SoundEvent;
|
import net.minestom.server.sound.SoundEvent;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public class JumpGenerator {
|
public class JumpGenerator {
|
||||||
private Player player;
|
private final Player player;
|
||||||
private InstanceContainer world;
|
private final InstanceContainer world;
|
||||||
private ArrayList<Pos> blocks = new ArrayList<>();
|
private final ArrayList<Pos> blocks = new ArrayList<>();
|
||||||
private Pos checkpoint;
|
private Pos checkpoint;
|
||||||
private Pos starting;
|
private Pos starting;
|
||||||
|
|
||||||
private int combo = 0;
|
private int combo = 0;
|
||||||
|
|
||||||
private int preview = 2;
|
private final int preview = 2;
|
||||||
|
|
||||||
|
|
||||||
public JumpGenerator(Pos starting, Player player, InstanceContainer world) {
|
public JumpGenerator(Pos starting, Player player, InstanceContainer world) {
|
||||||
@@ -53,12 +53,12 @@ public class JumpGenerator {
|
|||||||
this.checkpoint = current;
|
this.checkpoint = current;
|
||||||
this.player.playSound(Sound.sound(SoundEvent.ENTITY_PLAYER_LEVELUP, Sound.Source.BLOCK, 0.3f, 1f));
|
this.player.playSound(Sound.sound(SoundEvent.ENTITY_PLAYER_LEVELUP, Sound.Source.BLOCK, 0.3f, 1f));
|
||||||
this.player.showTitle(Title.title(Component.text(""), Component.text("Checkpoint", TextColor.color(0, 255, 0))));
|
this.player.showTitle(Title.title(Component.text(""), Component.text("Checkpoint", TextColor.color(0, 255, 0))));
|
||||||
this.player.sendPacket(ParticleCreator.createParticlePacket(Particle.CRIT, current.x()+0.5, current.y()+0.5, current.z()+0.5, 1.5f, 1.5f, 1.5f, 50));
|
this.player.sendPacket(new ParticlePacket(Particle.CRIT, current, current.add(0.5), 1.5f, 50));
|
||||||
}
|
}
|
||||||
this.world.setBlock(target.add(0, 1 ,0), Block.LIGHT);
|
this.world.setBlock(target.add(0, 1 ,0), Block.LIGHT);
|
||||||
this.blocks.add(target);
|
this.blocks.add(target);
|
||||||
this.player.sendPacket(ParticleCreator.createParticlePacket(Particle.CRIT, target.x()+0.5, target.y()+0.5, target.z()+0.5, 1, 1, 1, 10));
|
this.player.sendPacket(new ParticlePacket(Particle.CRIT, target, target.add(0.5), 1, 10));
|
||||||
this.player.sendPacket(ParticleCreator.createParticlePacket(Particle.FALLING_NECTAR, target.x()+0.5, target.y()+1.5, target.z()+0.5, 0.3f, 0.1f, 0.3f, 10));
|
this.player.sendPacket(new ParticlePacket(Particle.FALLING_NECTAR, target, target.add(0.5),0.3f, 10));
|
||||||
this.combo++;
|
this.combo++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,14 +95,6 @@ public class JumpGenerator {
|
|||||||
return checkpoint;
|
return checkpoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Player getPlayer() {
|
|
||||||
return player;
|
|
||||||
}
|
|
||||||
|
|
||||||
public InstanceContainer getWorld() {
|
|
||||||
return world;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ArrayList<Pos> getBlocks() {
|
public ArrayList<Pos> getBlocks() {
|
||||||
return blocks;
|
return blocks;
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
target/EndlessJumper-1.0-SNAPSHOT.jar
Normal file
BIN
target/EndlessJumper-1.0-SNAPSHOT.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
5
target/maven-archiver/pom.properties
Normal file
5
target/maven-archiver/pom.properties
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#Generated by Maven
|
||||||
|
#Fri Dec 19 20:45:21 CET 2025
|
||||||
|
artifactId=EndlessJumper
|
||||||
|
groupId=org.example
|
||||||
|
version=1.0-SNAPSHOT
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
eu/mhsl/minecraft/endlessjumper/generator/BlockPalette.class
|
||||||
|
eu/mhsl/minecraft/endlessjumper/TerrainGenerator.class
|
||||||
|
eu/mhsl/minecraft/endlessjumper/generator/JumpGenerator.class
|
||||||
|
eu/mhsl/minecraft/endlessjumper/BlockMath.class
|
||||||
|
eu/mhsl/minecraft/endlessjumper/EndlessJumper.class
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
/home/elias/projects/Minecraft/EndlessJumper/src/main/java/eu/mhsl/minecraft/endlessjumper/EndlessJumper.java
|
||||||
|
/home/elias/projects/Minecraft/EndlessJumper/src/main/java/eu/mhsl/minecraft/endlessjumper/BlockMath.java
|
||||||
|
/home/elias/projects/Minecraft/EndlessJumper/src/main/java/eu/mhsl/minecraft/endlessjumper/TerrainGenerator.java
|
||||||
|
/home/elias/projects/Minecraft/EndlessJumper/src/main/java/eu/mhsl/minecraft/endlessjumper/generator/JumpGenerator.java
|
||||||
|
/home/elias/projects/Minecraft/EndlessJumper/src/main/java/eu/mhsl/minecraft/endlessjumper/generator/BlockPalette.java
|
||||||
BIN
target/original-EndlessJumper-1.0-SNAPSHOT.jar
Normal file
BIN
target/original-EndlessJumper-1.0-SNAPSHOT.jar
Normal file
Binary file not shown.
Reference in New Issue
Block a user