Paper-nms-maven-plugin - A maven plugin for using NMS on paper with Mojang mappings.

Overview

paper-nms-maven-plugin

A maven plugin for using NMS on paper with Mojang mappings.

This plugin will both create the mapped paper dependency and install it to your local repository, and remap your artifact back to spigot mappings.

Note: Only works for 1.18.x at the moment, see below.

Note: This maven plugin is not on any repository, see below.

Usage (IntelliJ)

  1. Add .paper-nms to your .gitignore.

  2. Add the plugin to your pom.xml:

<build>
    <plugins>
        ...
        <plugin>
            <groupId>ca.bkaw</groupId>
            <artifactId>paper-nms-maven-plugin</artifactId>
            <version>0.1-SNAPSHOT</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>remap</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        ...
    </plugins>
</build>
  1. Add the mojang mapped dependency to your pom.xml.
<dependency>
    <groupId>ca.bkaw</groupId>
    <artifactId>paper-nms</artifactId>
    <version>1.18.1-SNAPSHOT</version>
</dependency>

Change 1.18.1 to the desired version. Note: Only 1.18.1 works at the moment.

  1. Reload the project.

Press the "Load Maven Changes" button

A Cannot resolve ca.bkaw:paper-nms:1.18.1-SNAPSHOT message is expected.

  1. To create the missing dependency, run init. Instructions for running the paper-nms:init maven goal For arrow (4), double-click paper-nms:init to run it.

  2. Wait for init to finish and a BUILD SUCCESS message should appear. The paper-nms dependency should now exist.

  3. Done! Your project should now have a Mojang mapped paper dependency, and when you build you project (for example with mvn package) the artifact will be remapped back to spigot mappings.

Issues

Only works for 1.18.x.

On 1.17.1 unresolvable mapping conflicts occur, if you want to help try to fix the issue, see issue #1.

On some older spigot versions, mappings use a package rename to avoid having to retype net/minecraft/server for every class mapping. See issue #2.

In the future all versions down to 1.14.4 should be supportable as there are Mojang mappings available since then.

No maven repository

This maven plugin is currently not on any repository. Instead, git clone this repository and run mvn install to install the plugin to your local repository.

Disclaimer

Please bear the licence of the Mojang mappings in mind.

Not affiliated with Minecraft, Mojang or Microsoft.

Not affiliated with Paper or PaperMC.

Not affiliated with Maven or The Apache Software Foundation.

Comments
  • FileNotFoundException while remap goal

    FileNotFoundException while remap goal

    pom.xml https://pastebin.com/3WkEmRpd

    My Maven log with -e

    $ mvn install -e
    [INFO] Error stacktraces are turned on.
    [INFO] Scanning for projects...
    [INFO]
    [INFO] -------------------------< ru.aslteam:ejcore >--------------------------
    [INFO] Building ejCore 1.2.16
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ ejcore ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 4 resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.10.0:compile (default-compile) @ ejcore ---
    [INFO] Nothing to compile - all classes are up to date
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ ejcore ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory P:\nWorkspace\ejCore\src\test\resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.10.0:testCompile (default-testCompile) @ ejcore ---
    [INFO] No sources to compile
    [INFO]
    [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ ejcore ---
    [INFO] No tests to run.
    [INFO]
    [INFO] --- paper-nms-maven-plugin:1.0:remap (default) @ ejcore ---
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  2.576 s
    [INFO] Finished at: 2022-03-02T02:25:28+02:00
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal ca.bkaw:paper-nms-maven-plugin:1.0:remap (default) on project ejcore: Failed to remap artifact: P:\nWorkspace\ejCore\target\classes (access denied) -> [Help 1]
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal ca.bkaw:paper-nms-maven-plugin:1.0:remap (default) on project ejcore: Failed to remap artifact
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
        at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
        at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
        at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
        at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke (Method.java:568)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
    Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to remap artifact
        at ca.bkaw.papernmsmavenplugin.RemapMojo.execute (RemapMojo.java:78)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
        at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
        at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
        at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
        at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke (Method.java:568)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
    Caused by: java.io.FileNotFoundException: P:\nWorkspace\ejCore\target\classes (access denied)
        at java.io.RandomAccessFile.open0 (Native Method)
        at java.io.RandomAccessFile.open (RandomAccessFile.java:344)
        at java.io.RandomAccessFile.<init> (RandomAccessFile.java:259)
        at java.io.RandomAccessFile.<init> (RandomAccessFile.java:213)
        at java.util.zip.ZipFile$Source.<init> (ZipFile.java:1312)
        at java.util.zip.ZipFile$Source.get (ZipFile.java:1277)
        at java.util.zip.ZipFile$CleanableResource.<init> (ZipFile.java:709)
        at java.util.zip.ZipFile.<init> (ZipFile.java:243)
        at java.util.zip.ZipFile.<init> (ZipFile.java:172)
        at java.util.jar.JarFile.<init> (JarFile.java:347)
        at java.util.jar.JarFile.<init> (JarFile.java:318)
        at java.util.jar.JarFile.<init> (JarFile.java:284)
        at ca.bkaw.papernmsmavenplugin.MojoBase.mapJar (MojoBase.java:716)
        at ca.bkaw.papernmsmavenplugin.RemapMojo.execute (RemapMojo.java:76)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
        at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
        at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
        at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
        at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke (Method.java:568)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
    [ERROR]
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
    

    Eclipse & Maven & User has admin permissions to path P:\nWorkspace\ejCore\target\classes

    opened by Snoop1CattZ69 5
  • Could not find artifact ca.bkaw:paper-nms:jar:1.19.2-SNAPSHOT

    Could not find artifact ca.bkaw:paper-nms:jar:1.19.2-SNAPSHOT

    Here is my pom: https://pastebin.com/KYGufBdA

    If I want reload my pom.xml comes this error "Could not find artifact ca.bkaw:paper-nms:jar:1.19.2-SNAPSHOT"

    opened by TheSerumDev 2
  • Fix issues on initialisation in remap phase

    Fix issues on initialisation in remap phase

    There are currently two issues with initialisation during the remapping phase, which happens if classes/artifacts are attempted to be remapped, but the mappings are not found/invalid (both of which are my fault, sorry).

    The first issue is that after running the initialisation phase, the internal state as to whether the mappings exist was not updated, meaning that the remap would continue as if the mappings didn't exist, causing a failure.

    The second issue is that if there are broken mappings (i.e., either Mojang or Spigot mappings exist, but not both), it would try to delete all mappings and re-initialise to fix this. However, since not all mapping files exist, it would try to delete non-existent files, causing a failure.

    This PR addresses both of these issues.

    opened by stefvanschie 1
  • Close the output JAR file

    Close the output JAR file

    On Windows, the paper JAR could not be deleted because the file was still opened. This caused the entire build to fail. This closes the JAR file, allowing the file to be deleted.

    opened by stefvanschie 1
  • Deploy plugin to repo

    Deploy plugin to repo

    As proposed on discord :)

    The CI will automatically build and deploy the plugin. Keep in mind that the releases repo does not allow redeployment (snapshots can be redeployed). This means the CI build/deploy will fail if you have two commits with the same non-snapshot version number (and only the first build will be deployed to the repo).

    opened by NoahvdAa 1
  • Remap artifact/classes twice instead of once

    Remap artifact/classes twice instead of once

    Currently to remap the code from Mojang mappings to Spigot mappings, the two mappings are merged together and then applied as one mapping. I unfortunately ran into an improperly mapped method on 1.17 due to this strategy. The situation is as follows. The class PlayerConnection extends ServerPlayerConnection. Spigot's mappings define a mapping for a method called sendPacket from a on ServerPlayerConnection, but not on PlayerConnection. Mojang's mappings define a mapping from send to a on ServerPlayerConnection as well as PlayerConnection. Merging these two leaves us with the following mapping:

    mojang	spigot
    net/minecraft/server/network/ServerGamePacketListenerImpl	net/minecraft/server/network/PlayerConnection
    	send	a
    net/minecraft/server/network/ServerPlayerConnection	net/minecraft/server/network/ServerPlayerConnection
    	send	sendPacket
    

    Since Lorenz does not have context for the mappings, it does not know that these two classes are related. Therefore, we now have two mappings for the same method, which are actually named differently. When using this with tiny-remapper, it ends up using the a name. The server jar however, uses the sendPacket name, meaning that you end up with a NoSuchMethodError when calling this method after remapping.

    This pull request addresses this by not merging the mappings, but instead mapping the classes twice. The issue here, as mentioned earlier, is that Lorenz cannot know that these classes are related. However, tiny-remapper does know this. By mapping the jar twice, this means that it can properly use this context in the second step. When it maps from Mojang to obfuscated, it properly maps send to a. When mapping from Spigot it will now also map a to sendPacket, because it knows that the parent class of this method has this name and propagates it to its children. This means that this two-step process properly maps from send to sendPacket.

    The initialization phase remains largely the same with the change that the merged mappings are no longer stored. Instead the Spigot and Mojang mappings are stored to be used in the remapping phase. Users that currently have full mappings stored need to re-initialize 1.17 again if this pull request is accepted. The remapping phase now first maps the final artifact/classes from Mojang names to obfuscated names as specified by the Mojang mappings. It then does this for all of the dependencies as well. We need to do this, since the dependencies are needed as the classpath for the second remapping step. Once all dependencies have been mapped to obfuscated names, the initial artifact/classes are mapped from obfuscated names to Spigot names as specified by the Spigot mappings. This is the final result of this plugin and the resulting artifact/classes can be further used by Maven. The temporarily remapped dependencies are deleted, as well as other temporary files. This process only happens when no dev-bundle is present; versions which have a dev-bundle behave the same as before.

    This change resolves the issue mentioned earlier. I've compared the final output of this plugin with and without these changes for my code and, with the exception of send now being mapped properly, the other names remain identical. I cannot say with complete certainty that this is the case for all names, but testing seems to indicate that this is the case.

    opened by stefvanschie 0
  • Update Paper endpoints

    Update Paper endpoints

    As announced in the Paper discord, the old /api and /repo endpoints have been changed to subdomains. Even though the old paths will keep working for the foreseeable future, changing them now won't hurt.

    opened by NoahvdAa 0
  • Unresolvable mapping conflicts on 1.17.1

    Unresolvable mapping conflicts on 1.17.1

    Reproduce

    Set the dependency to 1.17.1

    <dependency>
        <groupId>ca.bkaw</groupId>
        <artifactId>paper-nms</artifactId>
        <version>1.17.1-SNAPSHOT</version>
    </dependency>
    

    Run paper-nms:init.

    And we get the following stacktrace:

    Caused by: java.lang.RuntimeException: Unfixable conflicts
        at net.fabricmc.tinyremapper.TinyRemapper.handleConflicts (TinyRemapper.java:861)
        at net.fabricmc.tinyremapper.TinyRemapper.propagate (TinyRemapper.java:761)
        at net.fabricmc.tinyremapper.TinyRemapper.mrjRefresh (TinyRemapper.java:1040)
        at net.fabricmc.tinyremapper.TinyRemapper.apply (TinyRemapper.java:892)
        at net.fabricmc.tinyremapper.TinyRemapper.apply (TinyRemapper.java:866)
        at ca.bkaw.papernmsmavenplugin.MojoBase.mapJar (MojoBase.java:516)
        at ca.bkaw.papernmsmavenplugin.MojoBase.mapPaperJar (MojoBase.java:536)
        at ca.bkaw.papernmsmavenplugin.MojoBase.init (MojoBase.java:217)
        at ca.bkaw.papernmsmavenplugin.InitMojo.execute (InitMojo.java:12)
        ... and 23 more (maven stuff)
    
    opened by Alvinn8 0
  • Add MixinExtension

    Add MixinExtension

    Sorry if this is hard to read as I am using DeepL translation.

    This pull request will generate a Mojang mapping (.srg) and extend the scope of the remapping to Mixin annotations. If it is only an extension, just add .extension(new MixinExtension()) to TinyRemapper. However, in order for the remapping to be applied, Mixin must be compiled with the remap flag enabled, and the mapping file (.srg) must be loaded into Mixin. Since the dev-bundle contains only what needs to be remapped, it is not appropriate to load it into Mixin due to the lack of methods and fields. For this reason, we generate Mojang mappings even when using the dev-bundle.

    Example of remapping:

    @Inject(at = {@At("RETURN")}, method = {"tick()V"})
    @Inject(at = {@At("RETURN")}, method = {"k()V"})
    

    Example of pom.xml: https://github.com/tonbei/PaperShelledPluginMavenTemplate/blob/master/pom.xml

    opened by tonbei 2
  • Stop using deprecated classes, or?

    Stop using deprecated classes, or?

    The ArtifactFactory class is deprecated. I can't find the page, but there was a page that showed old classes and their replacements. But I think there was no ArtifactInstaller or something. The page also said that using the maven-compat module should be avoided, which this project does use.

    But as it's "compat", that might mean that it there for compatibility with maven 2. Is that something we want to keep?

    opened by Alvinn8 0
  • Support 1.16 and below

    Support 1.16 and below

    On some older spigot versions, mappings use a package rename to avoid having to retype net/minecraft/server for every class mapping. Lorenz does not support package renames in srg mapping files (SrgReader.java#L134-L135) so we will need to copy the package over to all classes before reading the mappings. Or is there a better solution?

    opened by Alvinn8 0
Owner
null
A minecraft shop plugin for 1.17.1 paper.

shop-plugin Support server A minecraft shop plugin for 1.17.1 paper. Notes: NMS not required please dont copy the code, download the jar from releases

Empathy 4 Sep 7, 2022
A Minecraft Paper Plugin for 1.18.2

A Minecraft Paper Plugin for 1.18.2

null 3 Dec 23, 2022
DonationExecutor - плагин для Minecraft (Spigot/Paper)

DonationExecutor - плагин для Minecraft (Spigot/Paper) Плагин, который, получая информацию о новых донатах с Donation Alerts, автоматически генерирует

null 214 Dec 27, 2022
Simple Rock Paper Scissors game

Java game Rock Paper Scissors Simple game where you play rock paper scissors against bot. Made for learning purposes. That include some of cool featur

Domagoj Ratko 1 Mar 6, 2022
💜 LiteSkullAPI Fast and extensive skull library for Bukkit/Spigot/Paper plugins

?? LiteSkullAPI Fast and extensive skull library for Bukkit/Spigot/Paper plugins. Helpful links: Support Discord GitHub issues Eternal Repository (Mav

Norbert Dejlich 16 Dec 2, 2022
A small Reactive API with RxJava for Minecraft Paper Plugins.

RxPaper A small Reactive API with RxJava for Minecraft Paper Plugins. Usage RxPaper.io() When you want to return something back in the Minecraft Threa

Julian Haag 7 Dec 9, 2021
DnD Plugin submission using Atlas. Plugin inspired on the TrollGUI bukkit plugin

?? PunishGUI DnD Plugin submission using Atlas. Plugin inspired on the TrollGUI bukkit plugin ?? Dependencies ?? Paper 1.18 ?? Atlas ?? Commands /hell

null 1 Jan 19, 2022
This plugin disables commands specified in the configuration and prevents granting the "OP" authority to people not authorized in the plugin configuration.

Ares This plugin disables commands specified in the configuration and prevents granting the "OP" authority to people not authorized in the plugin conf

ᴠᴀʟᴇɴᴛɪɴ ᴢʜᴇʟᴇᴠ 6 Aug 30, 2022
Plugin-power - A plugin for the ja-netfilter, it is a dragon slayer for asymmetric encryption.

plugin-power A plugin for the ja-netfilter, it is a dragon slayer for asymmetric encryption. Use the mvn clean package command to compile and use powe

null 110 May 25, 2022
Jetserver is a high speed nio socket based multiplayer java game server written using Netty and Mike Rettig's Jetlang.It is specifically tuned for network based multiplayer games and supports TCP and UDP network protocols.

Note New version of Jetserver is called Nadron and is in a new netty 4 branch of this same repo. JetServer is a java nio based server specifically des

Abraham Menacherry 1.2k Dec 14, 2022
A minecraft mod that allows using minecrafts structure block based test system

MC Tester Mod This mod allows using the automated structure based test system Mojang created for minecraft. The test system is only partially included

2No2Name 21 Nov 11, 2022
Headless Minecraft bot using cabaletta/baritone and 3arthqu4ke/HeadlessForge

headlessbot Headless Minecraft bot using cabaletta/baritone and 3arthqu4ke/HeadlessForge Build & Run Needs Java 8, Docker, Minecraft 1.12.2 and Forge

​ 15 Aug 27, 2022
A free mixin-based injection hacked-client for Minecraft using Minecraft Forge.

Custom LiquidBounce 1.8.9 build that aims to improve original visuals and bypasses, along with built-in ViaVersion to help you change from 1.8 to 1.17.1 without creating any other version branch.

epic group of paster 123 Jan 2, 2023
Golden Axe (1989) game implemented in java using only standard libraries (Java 2D, Swing, AWT & Java Sound API)

Golden Axe (1989) game implemented in java using only standard libraries (Java 2D, Swing, AWT & Java Sound API), so no external libraries required. Video: https://youtu.be/uevIVLNhQqs

Leo 101 Jul 21, 2022
Blaze4D - Minecraft but with Vulkan using the Rosella engine.

Information Blaze4D is a Fabric mod that changes Minecraft's rendering engine to use the Vulkan Graphics Library, it is currently in Early Development

Kiln Graphics 257 Dec 30, 2022
Squaremap is a minimalistic and lightweight world map viewer for Minecraft servers, using the vanilla map rendering style

squaremap squaremap (formerly known as Pl3xMap) is a minimalistic and lightweight live world map viewer for Minecraft servers. What is squaremap If, l

Jason 204 Jan 3, 2023
using LWJGL to make a mini minecraft (mac also can run)

MineCraft Mini Features MineCraft Lite in Java and OpenGL Physics simulation, water simulation Perlin noise algorithm to generate maps Directional flo

null 1 Jan 4, 2022
Good ol' PacMan game using Java

Table of contents General info Technologies Setup General info Good ol' PacMan. To play, you just need to use the arrow keys on your keyboard ◀️ ▶️ ??

Lucas Vigier 8 Dec 28, 2022
Othello PvP (2-Player) Game Application created in Java using Swing and AWT, for playing the Othello game

Othello PvP (2-Player) Game Application created in Java using Swing and AWT, for playing the Othello game, a simple game that played on an 8 by 8 checkered board with 64 double-sided black and white discs. The game is easy to learn, but it takes time to master and develop winning strategies.

Soumyadeep Pal 1 Feb 28, 2022