Skip to content

Commit 24133ec

Browse files
committed
wip: update to the new event generator
1 parent d5bbc5d commit 24133ec

16 files changed

+86
-522
lines changed

build.gradle.kts

Lines changed: 48 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ plugins {
1616
alias(libs.plugins.indra.crossdoc)
1717
alias(libs.plugins.indra.publishing)
1818
alias(libs.plugins.indra.publishing.sonatype)
19-
alias(libs.plugins.eventImplGen)
2019
alias(libs.plugins.ideaExt)
2120
alias(libs.plugins.errorprone)
2221
alias(libs.plugins.nexusPublish)
@@ -34,12 +33,30 @@ configurations {
3433
}
3534
}
3635
}
36+
tasks {
37+
register("printSourceDirs") {
38+
doLast {
39+
sourceSets.forEach { set ->
40+
println("SourceSet: ${set.name}")
41+
println("Java Source Dirs: ${set.java.srcDirs}" )
42+
}
43+
}
44+
}
45+
}
46+
47+
sourceSets {
48+
main {
49+
java.srcDirs(layout.buildDirectory.dir("generated/sources/annotationProcessor/java/main"))
50+
}
51+
}
3752

3853
// Project dependencies
3954
dependencies {
4055
// Directly tied to what's available from Minecraft
4156
api(libs.log4j.api)
4257
api(libs.gson)
58+
api(libs.eventImplGen.annotations)
59+
annotationProcessor(libs.eventImplGen.processor)
4360

4461
// Adventure
4562
api(platform(libs.adventure.bom))
@@ -131,28 +148,35 @@ dependencies {
131148
}
132149

133150
tasks {
134-
genEventImpl {
135-
sourceCompatibility = "17" // TODO use javaTarget here
136-
destinationDirectory = project.layout.buildDirectory.dir("generated/event-factory")
137-
138-
outputFactory = "org.spongepowered.api.event.SpongeEventFactory"
139-
include("org/spongepowered/api/event/*/**/*")
140-
include("org/spongepowered/api/event/CompositeEvent.java")
141-
exclude("org/spongepowered/api/event/action/InteractEvent.java")
142-
exclude("org/spongepowered/api/event/cause/")
143-
exclude("org/spongepowered/api/event/entity/AffectEntityEvent.java")
144-
exclude("org/spongepowered/api/event/filter/")
145-
exclude("org/spongepowered/api/event/impl/")
146-
exclude("org/spongepowered/api/event/lifecycle/ProvideServiceEvent.java")
147-
exclude("org/spongepowered/api/event/lifecycle/RegisterBuilderEvent.java")
148-
exclude("org/spongepowered/api/event/lifecycle/RegisterRegistryEvent.java")
149-
exclude("org/spongepowered/api/event/lifecycle/RegisterRegistryValueEvent.java")
150-
exclude("org/spongepowered/api/event/lifecycle/RegisterCommandEvent.java")
151-
exclude("org/spongepowered/api/event/lifecycle/RegisterFactoryEvent.java")
152-
exclude("org/spongepowered/api/event/lifecycle/RegisterWorldEvent.java")
153-
inclusiveAnnotations = setOf("org.spongepowered.api.util.annotation.eventgen.GenerateFactoryMethod")
154-
exclusiveAnnotations = setOf("org.spongepowered.api.util.annotation.eventgen.NoFactoryMethod")
151+
152+
compileJava {
153+
options.compilerArgs.addAll(listOf(
154+
"-AeventGenFactory=org.spongepowered.api.event.SpongeEventFactory",
155+
"-AeventGenDebug=true",
156+
))
155157
}
158+
// genEventImpl {
159+
// sourceCompatibility = javaTarget
160+
// destinationDirectory = project.layout.buildDirectory.dir("generated/event-factory")
161+
//
162+
// outputFactory = "org.spongepowered.api.event.SpongeEventFactory"
163+
// include("org/spongepowered/api/event/*/**/*")
164+
// include("org/spongepowered/api/event/CompositeEvent.java")
165+
// exclude("org/spongepowered/api/event/action/InteractEvent.java")
166+
// exclude("org/spongepowered/api/event/cause/")
167+
// exclude("org/spongepowered/api/event/entity/AffectEntityEvent.java")
168+
// exclude("org/spongepowered/api/event/filter/")
169+
// exclude("org/spongepowered/api/event/impl/")
170+
// exclude("org/spongepowered/api/event/lifecycle/ProvideServiceEvent.java")
171+
// exclude("org/spongepowered/api/event/lifecycle/RegisterBuilderEvent.java")
172+
// exclude("org/spongepowered/api/event/lifecycle/RegisterRegistryEvent.java")
173+
// exclude("org/spongepowered/api/event/lifecycle/RegisterRegistryValueEvent.java")
174+
// exclude("org/spongepowered/api/event/lifecycle/RegisterCommandEvent.java")
175+
// exclude("org/spongepowered/api/event/lifecycle/RegisterFactoryEvent.java")
176+
// exclude("org/spongepowered/api/event/lifecycle/RegisterWorldEvent.java")
177+
// inclusiveAnnotations = setOf("org.spongepowered.api.util.annotation.eventgen.GenerateFactoryMethod")
178+
// exclusiveAnnotations = setOf("org.spongepowered.api.util.annotation.eventgen.NoFactoryMethod")
179+
// }
156180

157181
jar {
158182
from(ap.get().output)
@@ -217,14 +241,14 @@ idea {
217241
testRunner = org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.PLATFORM
218242
}
219243
taskTriggers {
220-
beforeBuild(tasks.genEventImpl)
244+
// beforeBuild(tasks.genEventImpl)
221245
}
222246
}
223247
}
224248
}
225249

226250
eclipse {
227-
synchronizationTasks(tasks.genEventImpl)
251+
// synchronizationTasks(tasks.genEventImpl)
228252
}
229253

230254
val organization: String by project

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ guice = { module = "com.google.inject:guice", version.ref = "guice" }
3737
log4j-api = { module = "org.apache.logging.log4j:log4j-api", version.ref = "log4j" }
3838
math = { module = "org.spongepowered:math", version.ref = "math" }
3939
pluginSpi = { module = "org.spongepowered:plugin-spi", version.ref = "pluginSpi" }
40+
eventImplGen-processor = {module = "org.spongepowered:event-impl-gen", version = "8.0.0-SNAPSHOT"}
41+
eventImplGen-annotations = { module = "org.spongepowered:event-impl-gen-annotations", version = "8.0.0-SNAPSHOT"}
4042

4143
# build-time/annotations
4244

gradle/verification-metadata.xml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
<configuration>
44
<verify-metadata>true</verify-metadata>
55
<verify-signatures>false</verify-signatures>
6+
<trusted-artifacts>
7+
<trust group="org.spongepowered" name="event-impl-gen" reason="SNAPSHOT"/>
8+
<trust group="org.spongepowered" name="event-impl-gen-annotations" reason="SNAPSHOT"/>
9+
</trusted-artifacts>
610
</configuration>
711
<components>
812
<component group="aopalliance" name="aopalliance" version="1.0">
@@ -252,6 +256,14 @@
252256
<sha256 value="893d56afcea1b22f83220fd7e49a6668c5b8901e39bd59dc57b42f55673721ce" origin="Generated by Gradle"/>
253257
</artifact>
254258
</component>
259+
<component group="com.google.dagger" name="dagger" version="2.42">
260+
<artifact name="dagger-2.42.jar">
261+
<sha256 value="7ad8147fdb5dfb481b7cde8c70da73afbaa21430ce757fcd96709fcfb6a4d56b" origin="Generated by Gradle"/>
262+
</artifact>
263+
<artifact name="dagger-2.42.pom">
264+
<sha256 value="ca6529bd6d79090f0ab6f5da452eb4fbb29377b48e6a806e7612396dcb2998e0" origin="Generated by Gradle"/>
265+
</artifact>
266+
</component>
255267
<component group="com.google.errorprone" name="error_prone_annotation" version="2.24.1">
256268
<artifact name="error_prone_annotation-2.24.1.jar">
257269
<sha256 value="dc202da451680aa8cdda7c68d959f27c112dca8f8fdeaf7c597de73cb2b1a0a6" origin="Generated by Gradle"/>
@@ -557,6 +569,14 @@
557569
<sha256 value="f6ac2b6de9ed3823c8d68977df6352f3936af5db7baeb12303cdc9d3c4f46590" origin="Generated by Gradle"/>
558570
</artifact>
559571
</component>
572+
<component group="com.squareup" name="javapoet" version="1.13.0">
573+
<artifact name="javapoet-1.13.0.jar">
574+
<sha256 value="4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291" origin="Generated by Gradle"/>
575+
</artifact>
576+
<artifact name="javapoet-1.13.0.pom">
577+
<sha256 value="54a34fa8502a46bc90efdb49262600591fa80bf9a34f5a4c798311aec16ca977" origin="Generated by Gradle"/>
578+
</artifact>
579+
</component>
560580
<component group="com.squareup.okhttp3" name="okhttp" version="4.10.0">
561581
<artifact name="okhttp-4.10.0.jar">
562582
<sha256 value="7580f14fa1691206e37081ad3f92063b1603b328da0bb316f2fef02e0562e7ec" origin="Generated by Gradle"/>

src/main/java/org/spongepowered/api/event/CompositeEvent.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package org.spongepowered.api.event;
22

33
import org.spongepowered.api.event.impl.AbstractCompositeEvent;
4-
import org.spongepowered.api.event.impl.entity.AbstractDamageEntityEvent;
5-
import org.spongepowered.api.util.annotation.eventgen.GenerateFactoryMethod;
6-
import org.spongepowered.api.util.annotation.eventgen.ImplementedBy;
7-
import org.spongepowered.api.util.annotation.eventgen.NoFactoryMethod;
8-
import org.spongepowered.api.util.annotation.eventgen.PropertySettings;
4+
import org.spongepowered.eventgen.annotations.GenerateFactoryMethod;
5+
import org.spongepowered.eventgen.annotations.ImplementedBy;
6+
import org.spongepowered.eventgen.annotations.PropertySettings;
97

108
import java.util.List;
119
import java.util.function.Consumer;
@@ -25,18 +23,19 @@
2523
@ImplementedBy(AbstractCompositeEvent.class)
2624
public interface CompositeEvent<E extends Event> extends Event, Cancellable {
2725

26+
@PropertySettings(useInToString = false)
2827
E baseEvent();
2928

3029
List<Event> children();
3130

32-
default <E extends Event> List<? extends E> event(Class<E> type) {
31+
default <A extends Event> List<? extends A> event(Class<A> type) {
3332
return this.children().stream()
3433
.filter(type::isInstance)
3534
.map(type::cast)
3635
.toList();
3736
}
3837

39-
default <E extends Event> void applyTo(Class<E> type, Consumer<? super E> consumer) {
38+
default <A extends Event> void applyTo(Class<A> type, Consumer<? super A> consumer) {
4039
this.children().stream()
4140
.filter(type::isInstance)
4241
.map(type::cast)

src/main/java/org/spongepowered/api/event/Event.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626

2727
import org.spongepowered.api.event.impl.AbstractEvent;
2828
import org.spongepowered.api.util.annotation.DoNotStore;
29-
import org.spongepowered.api.util.annotation.eventgen.AbsoluteSortPosition;
30-
import org.spongepowered.api.util.annotation.eventgen.ImplementedBy;
29+
import org.spongepowered.eventgen.annotations.AbsoluteSortPosition;
30+
import org.spongepowered.eventgen.annotations.ImplementedBy;
3131

3232
/**
3333
* An event called within Sponge.

src/main/java/org/spongepowered/api/event/block/InteractBlockEvent.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,14 @@
2929
import org.spongepowered.api.block.BlockTypes;
3030
import org.spongepowered.api.entity.living.player.Player;
3131
import org.spongepowered.api.event.Cancellable;
32+
import org.spongepowered.api.event.CompositeEvent;
3233
import org.spongepowered.api.event.action.InteractEvent;
34+
import org.spongepowered.api.event.impl.AbstractCompositeEvent;
3335
import org.spongepowered.api.item.inventory.ItemStack;
3436
import org.spongepowered.api.util.Direction;
3537
import org.spongepowered.api.util.Tristate;
3638
import org.spongepowered.api.util.annotation.eventgen.GenerateFactoryMethod;
39+
import org.spongepowered.api.util.annotation.eventgen.ImplementedBy;
3740
import org.spongepowered.api.world.server.ServerLocation;
3841
import org.spongepowered.math.vector.Vector3d;
3942

@@ -187,5 +190,10 @@ interface Pre extends Secondary, Cancellable {
187190
void setUseBlockResult(Tristate result);
188191
}
189192

193+
@ImplementedBy(AbstractCompositeEvent.class)
194+
interface Post extends Secondary, CompositeEvent<Secondary> {
195+
196+
}
197+
190198
}
191199
}

src/main/java/org/spongepowered/api/util/annotation/eventgen/AbsoluteSortPosition.java

Lines changed: 0 additions & 55 deletions
This file was deleted.

src/main/java/org/spongepowered/api/util/annotation/eventgen/FactoryMethod.java

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/main/java/org/spongepowered/api/util/annotation/eventgen/GenerateFactoryMethod.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)