Skip to content

Commit 9a481d3

Browse files
committed
Merge remote-tracking branch 'origin/api-8' into api-9
2 parents a8c916b + 68f7ef5 commit 9a481d3

File tree

7 files changed

+64
-12
lines changed

7 files changed

+64
-12
lines changed

build.gradle.kts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,20 +51,18 @@ dependencies {
5151

5252
// Adventure
5353
api(platform("net.kyori:adventure-bom:$adventureVersion"))
54-
api("net.kyori:adventure-api") {
55-
exclude(group = "org.checkerframework", module = "checker-qual")
56-
}
54+
api("net.kyori:adventure-api")
5755
api("net.kyori:adventure-text-serializer-gson") {
58-
exclude(group = "org.checkerframework", module = "checker-qual")
5956
exclude(group = "com.google.code.gson", module = "gson")
6057
exclude(group = "net.kyori", module = "adventure-api")
6158
}
6259
api("net.kyori:adventure-text-serializer-legacy") {
63-
exclude(group = "org.checkerframework", module = "checker-qual")
6460
exclude(group = "net.kyori", module = "adventure-api")
6561
}
6662
api("net.kyori:adventure-text-serializer-plain") {
67-
exclude(group = "org.checkerframework", module = "checker-qual")
63+
exclude(group = "net.kyori", module = "adventure-api")
64+
}
65+
api("net.kyori:adventure-text-minimessage") {
6866
exclude(group = "net.kyori", module = "adventure-api")
6967
}
7068

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ projectDescription=A plugin API for Minecraft: Java Edition
66

77
org.gradle.parallel=true
88

9-
adventureVersion=4.9.3
9+
adventureVersion=4.10.0
1010
caffeineVersion=3.0.4
1111
configurateVersion=4.1.2
1212
errorproneVersion=2.10.0

src/main/java/org/spongepowered/api/adventure/SpongeComponents.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import net.kyori.adventure.audience.Audience;
2828
import net.kyori.adventure.text.Component;
2929
import net.kyori.adventure.text.event.ClickEvent;
30+
import net.kyori.adventure.text.flattener.ComponentFlattener;
3031
import org.spongepowered.api.Sponge;
3132
import org.spongepowered.api.command.CommandCause;
3233
import org.spongepowered.api.registry.DefaultedRegistryReference;
@@ -99,6 +100,17 @@ public static Component resolve(
99100
return SpongeComponents.factory().render(component, senderContext, resolver, otherResolvers);
100101
}
101102

103+
/**
104+
* Get a {@link ComponentFlattener} with access to server-specific information
105+
*
106+
* <p>This flattener can be used for custom formats where translatable strings should be localized server-side.</p>
107+
*
108+
* @return The flattener
109+
*/
110+
public static ComponentFlattener flattener() {
111+
return SpongeComponents.factory().flattener();
112+
}
113+
102114
private static Factory factory() {
103115
return Sponge.game().factoryProvider().provide(Factory.class);
104116
}
@@ -123,5 +135,7 @@ Component render(
123135
final DefaultedRegistryReference<ResolveOperation>... otherResolvers
124136
);
125137

138+
ComponentFlattener flattener();
139+
126140
}
127141
}

src/main/java/org/spongepowered/api/item/inventory/ItemStack.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
package org.spongepowered.api.item.inventory;
2626

2727
import net.kyori.adventure.text.ComponentLike;
28+
import net.kyori.adventure.text.event.HoverEvent;
29+
import net.kyori.adventure.text.event.HoverEventSource;
2830
import org.spongepowered.api.Sponge;
2931
import org.spongepowered.api.block.BlockSnapshot;
3032
import org.spongepowered.api.block.BlockState;
@@ -57,7 +59,7 @@
5759
* use {@link ValueContainer#get(Key)} in order to retrieve information regarding
5860
* this item stack.</p>
5961
*/
60-
public interface ItemStack extends SerializableDataHolder.Mutable, ComponentLike {
62+
public interface ItemStack extends SerializableDataHolder.Mutable, ComponentLike, HoverEventSource<HoverEvent.ShowItem> {
6163

6264
/**
6365
* Returns an empty {@link ItemStack}.

src/main/java/org/spongepowered/api/world/DefaultWorldKeys.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,46 @@
2525
package org.spongepowered.api.world;
2626

2727
import org.spongepowered.api.ResourceKey;
28+
import org.spongepowered.api.Sponge;
2829
import org.spongepowered.api.world.server.ServerWorld;
2930

3031
/**
3132
* A listing of the {@link ResourceKey keys} of the default {@link ServerWorld worlds} in Minecraft.
3233
*/
3334
public final class DefaultWorldKeys {
3435

36+
/**
37+
* @deprecated Use {@link #DEFAULT} instead
38+
*/
39+
@Deprecated
3540
public static final ResourceKey OVERWORLD = ResourceKey.minecraft("overworld");
3641

37-
public static final ResourceKey THE_NETHER = ResourceKey.minecraft("the_nether");
42+
/**
43+
* The default "world" of a running game session. Typically, the Overworld.
44+
* <p>
45+
* Refer to: <a href="https://minecraft.fandom.com/wiki/Overworld">Overworld</a>
46+
*/
47+
public static final ResourceKey DEFAULT = Sponge.game().factoryProvider().provide(DefaultWorldKeys.Factory.class).defaultWorld();
3848

39-
public static final ResourceKey THE_END = ResourceKey.minecraft("the_end");
49+
/**
50+
* Refer to: <a href="https://minecraft.fandom.com/wiki/The_Nether">The Nether</a>
51+
*/
52+
public static final ResourceKey THE_NETHER = Sponge.game().factoryProvider().provide(DefaultWorldKeys.Factory.class).theNether();
53+
54+
/**
55+
* Refer to: <a href="https://minecraft.fandom.com/wiki/The_End">The End</a>
56+
*/
57+
public static final ResourceKey THE_END = Sponge.game().factoryProvider().provide(DefaultWorldKeys.Factory.class).theEnd();
4058

4159
private DefaultWorldKeys() {
4260
}
61+
62+
public interface Factory {
63+
64+
ResourceKey defaultWorld();
65+
66+
ResourceKey theNether();
67+
68+
ResourceKey theEnd();
69+
}
4370
}

src/main/java/org/spongepowered/api/world/server/WorldManager.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
import org.spongepowered.api.ResourceKey;
2828
import org.spongepowered.api.Server;
29+
import org.spongepowered.api.world.WorldType;
2930
import org.spongepowered.api.world.server.storage.ServerWorldProperties;
3031

3132
import java.nio.file.Path;
@@ -73,7 +74,10 @@ public interface WorldManager {
7374
* <p>It is up to the implementation to define what the default world actually is.</p>
7475
*
7576
* @return The default world
77+
*
78+
* @deprecated Use {@link #world(ResourceKey)} with {@link org.spongepowered.api.world.DefaultWorldKeys#DEFAULT} instead
7679
*/
80+
@Deprecated
7781
ServerWorld defaultWorld();
7882

7983
/**
@@ -128,9 +132,15 @@ default List<ResourceKey> offlineWorldKeys() {
128132
* @param uniqueId The unique id
129133
* @return The key or {@link Optional#empty()} if not found
130134
*/
131-
@Deprecated
132135
Optional<ResourceKey> worldKey(UUID uniqueId);
133136

137+
/**
138+
* Retrieves all {@link ServerWorld worlds} that are of a particular {@link WorldType type}.
139+
* @param type The type
140+
* @return The {@link Collection worlds}
141+
*/
142+
Collection<ServerWorld> worldsOfType(WorldType type);
143+
134144
/**
135145
* Loads a {@link ServerWorld world} from a {@link WorldTemplate template}.
136146
*

src/main/java/org/spongepowered/api/world/server/storage/ServerWorldProperties.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.spongepowered.api.entity.living.trader.WanderingTrader;
3434
import org.spongepowered.api.util.Identifiable;
3535
import org.spongepowered.api.util.MinecraftDayTime;
36+
import org.spongepowered.api.util.Nameable;
3637
import org.spongepowered.api.util.Ticks;
3738
import org.spongepowered.api.world.SerializationBehavior;
3839
import org.spongepowered.api.world.WorldType;
@@ -46,7 +47,7 @@
4647
import java.util.Optional;
4748
import java.util.UUID;
4849

49-
public interface ServerWorldProperties extends WorldProperties, Identifiable, ResourceKeyed, WeatherUniverse.Mutable {
50+
public interface ServerWorldProperties extends WorldProperties, Nameable, Identifiable, ResourceKeyed, WeatherUniverse.Mutable {
5051

5152
/**
5253
* Gets the {@link ServerWorld} that correlates to this properties, if available.

0 commit comments

Comments
 (0)