Skip to content

Commit 91c4b23

Browse files
committed
Add forge 1.20.2
1 parent e2a5fc8 commit 91c4b23

22 files changed

Lines changed: 3620 additions & 15 deletions

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-
#Thu Sep 21 18:52:15 CDT 2023
2+
#Thu Sep 21 20:27:11 CDT 2023
33
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
44
org.eclipse.jdt.core.compiler.problem.nullReference=warning
55
eclipse.preferences.version=1

forge-1.20.2/.gitignore

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

forge-1.20.2/bin/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/main/
2+
/test/

forge-1.20.2/build.gradle

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
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: '5.1.+', 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.20.2)"
18+
}
19+
}
20+
21+
sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = JavaLanguageVersion.of(17) // 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.20.2'
29+
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
30+
runs {
31+
server {
32+
workingDirectory project.file('run').canonicalPath
33+
}
34+
}
35+
}
36+
37+
project.archivesBaseName = "${project.archivesBaseName}-forge-1.20.2"
38+
39+
dependencies {
40+
implementation project(path: ":DynmapCore", configuration: "shadow")
41+
implementation project(path: ':DynmapCoreAPI')
42+
43+
minecraft 'net.minecraftforge:forge:1.20.2-48.0.1'
44+
}
45+
46+
processResources
47+
{
48+
filesMatching('META-INF/mods.toml') {
49+
// replace version and mcversion
50+
expand(
51+
version: project.version + '-' + project.ext.buildNumber,
52+
mcversion: "1.20.2"
53+
)
54+
}
55+
}
56+
57+
shadowJar {
58+
dependencies {
59+
include(dependency(':DynmapCore'))
60+
include(dependency("commons-codec:commons-codec:"))
61+
exclude("META-INF/maven/**")
62+
exclude("META-INF/services/**")
63+
}
64+
relocate('org.apache.commons.codec', 'org.dynmap.forge_1_20_2.commons.codec')
65+
66+
archiveName = "Dynmap-${parent.version}-forge-1.20.2.jar"
67+
destinationDir = file '../target'
68+
}
69+
70+
shadowJar.doLast {
71+
task ->
72+
ant.checksum file: task.archivePath
73+
}
74+
75+
afterEvaluate {
76+
reobf {
77+
shadowJar {
78+
mappings = createMcpToSrg.output
79+
}
80+
}
81+
}
82+
83+
task deobfJar(type: Jar) {
84+
from sourceSets.main.output
85+
classifier = 'dev'
86+
}
87+
88+
artifacts {
89+
archives deobfJar
90+
}
91+
92+
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_20_2;
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_20_2;
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_20_2.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)