Skip to content

Commit 540da73

Browse files
Start Forge 1.21
1 parent 5256a16 commit 540da73

21 files changed

+3618
-15
lines changed

bukkit-helper/.project

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,32 @@
22
<projectDescription>
33
<name>Dynmap(Spigot-Common)</name>
44
<comment>bukkit-helper</comment>
5-
<projects>
6-
</projects>
5+
<projects/>
6+
<natures>
7+
<nature>org.eclipse.jdt.core.javanature</nature>
8+
<nature>org.eclipse.m2e.core.maven2Nature</nature>
9+
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
10+
</natures>
711
<buildSpec>
812
<buildCommand>
913
<name>org.eclipse.jdt.core.javabuilder</name>
10-
<arguments>
11-
</arguments>
14+
<arguments/>
1215
</buildCommand>
1316
<buildCommand>
1417
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
15-
<arguments>
16-
</arguments>
18+
<arguments/>
1719
</buildCommand>
1820
<buildCommand>
1921
<name>org.eclipse.m2e.core.maven2Builder</name>
20-
<arguments>
21-
</arguments>
22+
<arguments/>
2223
</buildCommand>
2324
</buildSpec>
24-
<natures>
25-
<nature>org.eclipse.jdt.core.javanature</nature>
26-
<nature>org.eclipse.m2e.core.maven2Nature</nature>
27-
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
28-
</natures>
25+
<linkedResources/>
2926
<filteredResources>
3027
<filter>
3128
<id>1</id>
32-
<name></name>
3329
<type>30</type>
30+
<name/>
3431
<matcher>
3532
<id>org.eclipse.core.resources.regexFilterMatcher</id>
3633
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>

bukkit-helper/.settings/org.eclipse.jdt.core.prefs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
#Sun Jun 02 15:52:13 CDT 2024
2+
#Sun Jun 16 01:19:02 CDT 2024
33
eclipse.preferences.version=1
44
org.eclipse.jdt.core.compiler.annotation.nonnull=javax.annotation.Nonnull
55
org.eclipse.jdt.core.compiler.annotation.nullable=javax.annotation.Nullable

forge-1.21/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build/

forge-1.21/build.gradle

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
buildscript {
2+
repositories {
3+
maven { url = 'https://files.minecraftforge.net/maven' }
4+
jcenter()
5+
mavenCentral()
6+
}
7+
dependencies {
8+
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '[6.0.24,6.2)', changing: true
9+
}
10+
}
11+
apply plugin: 'net.minecraftforge.gradle'
12+
//apply plugin: 'com.github.johnrengelman.shadow'
13+
apply plugin: 'eclipse'
14+
15+
eclipse {
16+
project {
17+
name = "Dynmap(Forge-1.21)"
18+
}
19+
}
20+
21+
sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = JavaLanguageVersion.of(21) // Need this here so eclipse task generates correctly.
22+
23+
println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch'))
24+
25+
ext.buildNumber = System.getenv().BUILD_NUMBER ?: "Dev"
26+
27+
minecraft {
28+
mappings channel: 'official', version: '1.21'
29+
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
30+
reobf = false
31+
copyIdeResources = true
32+
runs {
33+
server {
34+
workingDirectory project.file('run').canonicalPath
35+
}
36+
}
37+
}
38+
39+
project.archivesBaseName = "${project.archivesBaseName}-forge-1.21"
40+
41+
dependencies {
42+
implementation project(path: ":DynmapCore", configuration: "shadow")
43+
implementation project(path: ':DynmapCoreAPI')
44+
45+
minecraft 'net.minecraftforge:forge:1.21-51.0.8'
46+
}
47+
48+
processResources
49+
{
50+
filesMatching('META-INF/mods.toml') {
51+
// replace version and mcversion
52+
expand(
53+
version: project.version + '-' + project.ext.buildNumber,
54+
mcversion: "1.21"
55+
)
56+
}
57+
}
58+
59+
shadowJar {
60+
dependencies {
61+
include(dependency(':DynmapCore'))
62+
include(dependency("commons-codec:commons-codec:"))
63+
exclude("META-INF/maven/**")
64+
exclude("META-INF/services/**")
65+
}
66+
relocate('org.apache.commons.codec', 'org.dynmap.forge_1_21.commons.codec')
67+
68+
archiveBaseName = "Dynmap"
69+
archiveClassifier = "forge-1.21"
70+
destinationDirectory = file '../target'
71+
}
72+
73+
shadowJar.doLast {
74+
task ->
75+
ant.checksum file: task.archivePath
76+
}
77+
78+
build.dependsOn(shadowJar)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.dynmap.forge_1_21;
2+
3+
public class ClientProxy extends Proxy {
4+
public ClientProxy() {
5+
}
6+
}
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
package org.dynmap.forge_1_21;
2+
3+
import java.io.File;
4+
5+
import org.apache.commons.lang3.tuple.Pair;
6+
import org.dynmap.DynmapCommonAPI;
7+
import org.dynmap.DynmapCommonAPIListener;
8+
import org.dynmap.Log;
9+
import org.dynmap.forge_1_21.DynmapPlugin.OurLog;
10+
11+
import net.minecraft.server.MinecraftServer;
12+
import net.minecraftforge.fml.common.Mod;
13+
import net.minecraftforge.common.MinecraftForge;
14+
import net.minecraftforge.event.server.ServerAboutToStartEvent;
15+
import net.minecraftforge.event.server.ServerStartedEvent;
16+
import net.minecraftforge.event.server.ServerStartingEvent;
17+
import net.minecraftforge.event.server.ServerStoppingEvent;
18+
import net.minecraftforge.eventbus.api.SubscribeEvent;
19+
import net.minecraftforge.fml.DistExecutor;
20+
import net.minecraftforge.fml.IExtensionPoint;
21+
import net.minecraftforge.fml.ModList;
22+
import net.minecraftforge.fml.ModLoadingContext;
23+
import net.minecraftforge.fml.StartupMessageManager;
24+
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
25+
import net.minecraftforge.fml.event.lifecycle.FMLLoadCompleteEvent;
26+
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
27+
28+
@Mod("dynmap")
29+
public class DynmapMod
30+
{
31+
// The instance of your mod that Forge uses.
32+
public static DynmapMod instance;
33+
34+
// Says where the client and server 'proxy' code is loaded.
35+
public static Proxy proxy = DistExecutor.runForDist(() -> ClientProxy::new, () -> Proxy::new);
36+
37+
public static DynmapPlugin plugin;
38+
public static File jarfile;
39+
public static String ver;
40+
public static boolean useforcedchunks;
41+
42+
public class APICallback extends DynmapCommonAPIListener {
43+
@Override
44+
public void apiListenerAdded() {
45+
if(plugin == null) {
46+
plugin = proxy.startServer(server);
47+
}
48+
}
49+
@Override
50+
public void apiEnabled(DynmapCommonAPI api) {
51+
}
52+
}
53+
54+
//TODO
55+
//public class LoadingCallback implements net.minecraftforge.common.ForgeChunkManager.LoadingCallback {
56+
// @Override
57+
// public void ticketsLoaded(List<Ticket> tickets, World world) {
58+
// if(tickets.size() > 0) {
59+
// DynmapPlugin.setBusy(world, tickets.get(0));
60+
// for(int i = 1; i < tickets.size(); i++) {
61+
// ForgeChunkManager.releaseTicket(tickets.get(i));
62+
// }
63+
// }
64+
// }
65+
//}
66+
67+
public DynmapMod() {
68+
instance = this;
69+
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
70+
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::init);
71+
72+
MinecraftForge.EVENT_BUS.register(this);
73+
74+
ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class,
75+
()->new IExtensionPoint.DisplayTest(()->IExtensionPoint.DisplayTest.IGNORESERVERONLY, (remote, isServer)-> true));
76+
77+
Log.setLogger(new OurLog());
78+
org.dynmap.modsupport.ModSupportImpl.init();
79+
}
80+
81+
public void setup(final FMLCommonSetupEvent event)
82+
{
83+
//TOOO
84+
jarfile = ModList.get().getModFileById("dynmap").getFile().getFilePath().toFile();
85+
86+
ver = ModList.get().getModContainerById("dynmap").get().getModInfo().getVersion().toString();
87+
88+
//// Load configuration file - use suggested (config/WesterosBlocks.cfg)
89+
//Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());
90+
//try {
91+
// cfg.load();
92+
//
93+
// useforcedchunks = cfg.get("Settings", "UseForcedChunks", true).getBoolean(true);
94+
//}
95+
//finally
96+
//{
97+
// cfg.save();
98+
//}
99+
}
100+
101+
public void init(FMLLoadCompleteEvent event)
102+
{
103+
/* Set up for chunk loading notice from chunk manager */
104+
//TODO
105+
//if(useforcedchunks) {
106+
// ForgeChunkManager.setForcedChunkLoadingCallback(DynmapMod.instance, new LoadingCallback());
107+
//}
108+
//else {
109+
// Log.info("[Dynmap] World loading using forced chunks is disabled");
110+
//}
111+
}
112+
113+
private MinecraftServer server;
114+
115+
@SubscribeEvent
116+
public void onServerStarting(ServerAboutToStartEvent event) {
117+
server = event.getServer();
118+
if(plugin == null)
119+
plugin = proxy.startServer(server);
120+
plugin.onStarting(server.getCommands().getDispatcher());
121+
}
122+
123+
@SubscribeEvent
124+
public void onServerStarted(ServerStartedEvent event) {
125+
DynmapCommonAPIListener.register(new APICallback());
126+
plugin.serverStarted();
127+
}
128+
129+
@SubscribeEvent
130+
public void serverStopping(ServerStoppingEvent event)
131+
{
132+
proxy.stopServer(plugin);
133+
plugin = null;
134+
}
135+
}

0 commit comments

Comments
 (0)