Skip to content

Commit a872c37

Browse files
committed
WorldEdit goes on an adventure
1 parent ffaf8e0 commit a872c37

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+182
-167
lines changed

buildSrc/src/main/kotlin/LibsConfig.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ fun Project.applyLibrariesConfiguration() {
2727
group = "${rootProject.group}.worldedit-libs"
2828

2929
val relocations = mapOf(
30-
"net.kyori.text" to "com.sk89q.worldedit.util.formatting.text",
30+
"net.kyori.adventure.text" to "com.sk89q.worldedit.util.formatting.text",
3131
"net.kyori.minecraft" to "com.sk89q.worldedit.util.kyori"
3232
)
3333

buildSrc/src/main/kotlin/Versions.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import org.gradle.api.Project
22

33
object Versions {
4-
const val TEXT = "3.0.4"
5-
const val TEXT_EXTRAS = "3.0.6"
4+
const val ADVENTURE = "4.0.0-SNAPSHOT"
5+
const val ADVENTURE_EXTRAS = "4.0.0-SNAPSHOT"
66
const val PISTON = "0.5.6"
77
const val AUTO_VALUE = "1.7"
88
const val JUNIT = "5.6.1"

settings.gradle.kts

+5
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,8 @@ listOf("bukkit", "core", "forge", "sponge", "fabric", "cli").forEach {
99
include("worldedit-libs:core:ap")
1010

1111
include("worldedit-core:doctools")
12+
13+
includeBuild("../Piston") {
14+
dependencySubstitution {
15+
}
16+
}

worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockCommandSender.java

+9-6
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@
2929
import com.sk89q.worldedit.util.formatting.WorldEditText;
3030
import com.sk89q.worldedit.util.formatting.text.Component;
3131
import com.sk89q.worldedit.util.formatting.text.TextComponent;
32-
import com.sk89q.worldedit.util.formatting.text.adapter.bukkit.TextAdapter;
33-
import com.sk89q.worldedit.util.formatting.text.format.TextColor;
32+
import com.sk89q.worldedit.util.formatting.text.format.NamedTextColor;
33+
import net.kyori.adventure.audience.Audience;
34+
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
3435
import org.bukkit.Bukkit;
3536
import org.bukkit.Material;
3637
import org.bukkit.block.Block;
@@ -46,6 +47,7 @@ public class BukkitBlockCommandSender extends AbstractNonPlayerActor implements
4647

4748
private static final String UUID_PREFIX = "CMD";
4849

50+
private final Audience audience;
4951
private final BlockCommandSender sender;
5052
private final WorldEditPlugin plugin;
5153
private final Location location;
@@ -55,6 +57,7 @@ public BukkitBlockCommandSender(WorldEditPlugin plugin, BlockCommandSender sende
5557
checkNotNull(plugin);
5658
checkNotNull(sender);
5759

60+
this.audience = BukkitAudiences.create(plugin).audience(sender);
5861
this.plugin = plugin;
5962
this.sender = sender;
6063
this.location = BukkitAdapter.adapt(sender.getBlock().getLocation());
@@ -78,29 +81,29 @@ public void printRaw(String msg) {
7881
@Deprecated
7982
public void print(String msg) {
8083
for (String part : msg.split("\n")) {
81-
print(TextComponent.of(part, TextColor.LIGHT_PURPLE));
84+
print(TextComponent.of(part, NamedTextColor.LIGHT_PURPLE));
8285
}
8386
}
8487

8588
@Override
8689
@Deprecated
8790
public void printDebug(String msg) {
8891
for (String part : msg.split("\n")) {
89-
print(TextComponent.of(part, TextColor.GRAY));
92+
print(TextComponent.of(part, NamedTextColor.GRAY));
9093
}
9194
}
9295

9396
@Override
9497
@Deprecated
9598
public void printError(String msg) {
9699
for (String part : msg.split("\n")) {
97-
print(TextComponent.of(part, TextColor.RED));
100+
print(TextComponent.of(part, NamedTextColor.RED));
98101
}
99102
}
100103

101104
@Override
102105
public void print(Component component) {
103-
TextAdapter.sendMessage(sender, WorldEditText.format(component, getLocale()));
106+
audience.sendMessage(WorldEditText.format(component, getLocale()));
104107
}
105108

106109
@Override

worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandSender.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@
2424
import com.sk89q.worldedit.session.SessionKey;
2525
import com.sk89q.worldedit.util.formatting.WorldEditText;
2626
import com.sk89q.worldedit.util.formatting.text.Component;
27-
import com.sk89q.worldedit.util.formatting.text.adapter.bukkit.TextAdapter;
27+
import net.kyori.adventure.audience.Audience;
28+
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
2829
import org.bukkit.command.CommandSender;
2930
import org.bukkit.entity.Player;
3031

3132
import java.util.Locale;
3233
import java.util.UUID;
33-
import javax.annotation.Nullable;
3434

3535
import static com.google.common.base.Preconditions.checkArgument;
3636
import static com.google.common.base.Preconditions.checkNotNull;
@@ -42,15 +42,15 @@ public class BukkitCommandSender extends AbstractNonPlayerActor {
4242
*/
4343
private static final UUID DEFAULT_ID = UUID.fromString("a233eb4b-4cab-42cd-9fd9-7e7b9a3f74be");
4444

45+
private final Audience audience;
4546
private final CommandSender sender;
46-
private final WorldEditPlugin plugin;
4747

4848
public BukkitCommandSender(WorldEditPlugin plugin, CommandSender sender) {
4949
checkNotNull(plugin);
5050
checkNotNull(sender);
5151
checkArgument(!(sender instanceof Player), "Cannot wrap a player");
5252

53-
this.plugin = plugin;
53+
this.audience = BukkitAudiences.create(plugin).audience(sender);
5454
this.sender = sender;
5555
}
5656

@@ -98,7 +98,7 @@ public void printError(String msg) {
9898

9999
@Override
100100
public void print(Component component) {
101-
TextAdapter.sendMessage(sender, WorldEditText.format(component, getLocale()));
101+
audience.sendMessage(WorldEditText.format(component, getLocale()));
102102
}
103103

104104
@Override
@@ -127,7 +127,6 @@ public CommandSender getSender() {
127127
@Override
128128
public SessionKey getSessionKey() {
129129
return new SessionKey() {
130-
@Nullable
131130
@Override
132131
public String getName() {
133132
return sender.getName();

worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,16 @@
3636
import com.sk89q.worldedit.util.formatting.text.Component;
3737
import com.sk89q.worldedit.util.formatting.text.TextComponent;
3838
import com.sk89q.worldedit.util.formatting.text.TranslatableComponent;
39-
import com.sk89q.worldedit.util.formatting.text.adapter.bukkit.TextAdapter;
4039
import com.sk89q.worldedit.util.formatting.text.event.ClickEvent;
41-
import com.sk89q.worldedit.util.formatting.text.format.TextColor;
40+
import com.sk89q.worldedit.util.formatting.text.format.NamedTextColor;
4241
import com.sk89q.worldedit.world.World;
4342
import com.sk89q.worldedit.world.block.BaseBlock;
4443
import com.sk89q.worldedit.world.block.BlockStateHolder;
4544
import com.sk89q.worldedit.world.block.BlockTypes;
4645
import com.sk89q.worldedit.world.gamemode.GameMode;
4746
import com.sk89q.worldedit.world.gamemode.GameModes;
47+
import net.kyori.adventure.audience.Audience;
48+
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
4849
import org.bukkit.Bukkit;
4950
import org.bukkit.Location;
5051
import org.bukkit.entity.Player;
@@ -58,6 +59,7 @@ public class BukkitPlayer extends AbstractPlayerActor {
5859

5960
private final Player player;
6061
private final WorldEditPlugin plugin;
62+
private final Audience audience;
6163

6264
public BukkitPlayer(Player player) {
6365
this(WorldEditPlugin.getInstance(), player);
@@ -66,6 +68,7 @@ public BukkitPlayer(Player player) {
6668
public BukkitPlayer(WorldEditPlugin plugin, Player player) {
6769
this.plugin = plugin;
6870
this.player = player;
71+
this.audience = BukkitAudiences.create(plugin).player(player);
6972
}
7073

7174
@Override
@@ -138,7 +141,7 @@ public void printError(String msg) {
138141

139142
@Override
140143
public void print(Component component) {
141-
TextAdapter.sendMessage(player, WorldEditText.format(component, getLocale()));
144+
audience.sendMessage(WorldEditText.format(component, getLocale()));
142145
}
143146

144147
@Override
@@ -233,7 +236,7 @@ public Locale getLocale() {
233236
public void sendAnnouncements() {
234237
if (WorldEditPlugin.getInstance().getBukkitImplAdapter() == null) {
235238
printError(TranslatableComponent.of("worldedit.version.bukkit.unsupported-adapter",
236-
TextComponent.of("https://enginehub.org/worldedit/#downloads", TextColor.AQUA)
239+
TextComponent.of("https://enginehub.org/worldedit/#downloads", NamedTextColor.AQUA)
237240
.clickEvent(ClickEvent.openUrl("https://enginehub.org/worldedit/#downloads"))));
238241
}
239242
}

worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLICommandSender.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public void printError(String msg) {
103103

104104
@Override
105105
public void print(Component component) {
106-
print(PlainComponentSerializer.INSTANCE.serialize(WorldEditText.format(component, getLocale())));
106+
print(PlainComponentSerializer.plain().serialize(WorldEditText.format(component, getLocale())));
107107
}
108108

109109
@Override

worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
import com.sk89q.worldedit.util.eventbus.EventBus;
5858
import com.sk89q.worldedit.util.formatting.text.TextComponent;
5959
import com.sk89q.worldedit.util.formatting.text.TranslatableComponent;
60-
import com.sk89q.worldedit.util.formatting.text.format.TextColor;
60+
import com.sk89q.worldedit.util.formatting.text.format.NamedTextColor;
6161
import com.sk89q.worldedit.util.io.file.FileSelectionAbortedException;
6262
import com.sk89q.worldedit.util.io.file.FilenameException;
6363
import com.sk89q.worldedit.util.io.file.FilenameResolutionException;
@@ -736,14 +736,14 @@ public void runScript(Player player, File f, String[] args) throws WorldEditExce
736736
} catch (ScriptException e) {
737737
// non-exceptional return check
738738
if (!(Throwables.getRootCause(e) instanceof ReturnException)) {
739-
player.printError(TranslatableComponent.of("worldedit.script.failed", TextComponent.of(e.getMessage(), TextColor.WHITE)));
739+
player.printError(TranslatableComponent.of("worldedit.script.failed", TextComponent.of(e.getMessage(), NamedTextColor.WHITE)));
740740
logger.warn("Failed to execute script", e);
741741
}
742742
} catch (NumberFormatException | WorldEditException e) {
743743
throw e;
744744
} catch (Throwable e) {
745745
player.printError(TranslatableComponent.of("worldedit.script.failed-console", TextComponent.of(e.getClass().getCanonicalName(),
746-
TextColor.WHITE)));
746+
NamedTextColor.WHITE)));
747747
logger.warn("Failed to execute script", e);
748748
} finally {
749749
for (EditSession editSession : scriptContext.getEditSessions()) {

worldedit-core/src/main/java/com/sk89q/worldedit/command/ApplyBrushCommands.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
import com.sk89q.worldedit.util.TreeGenerator;
4242
import com.sk89q.worldedit.util.formatting.text.TextComponent;
4343
import com.sk89q.worldedit.util.formatting.text.TranslatableComponent;
44-
import com.sk89q.worldedit.util.formatting.text.format.TextColor;
44+
import com.sk89q.worldedit.util.formatting.text.format.NamedTextColor;
4545
import com.sk89q.worldedit.util.formatting.text.format.TextDecoration;
4646
import org.enginehub.piston.CommandManager;
4747
import org.enginehub.piston.CommandManagerService;
@@ -124,7 +124,7 @@ public void item(CommandParameters parameters,
124124
@Arg(desc = "The direction in which the item will be applied", def = "up")
125125
@Direction(includeDiagonals = true)
126126
com.sk89q.worldedit.util.Direction direction) throws WorldEditException {
127-
player.print(TextComponent.builder().append("WARNING: ", TextColor.RED, TextDecoration.BOLD)
127+
player.print(TextComponent.builder().append("WARNING: ", NamedTextColor.RED, TextDecoration.BOLD)
128128
.append(TranslatableComponent.of("worldedit.brush.apply.item.warning")).build());
129129
setApplyBrush(parameters, player, localSession, new ItemUseFactory(item, direction));
130130
}

worldedit-core/src/main/java/com/sk89q/worldedit/command/ChunkCommands.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
import com.sk89q.worldedit.util.formatting.text.TextComponent;
4141
import com.sk89q.worldedit.util.formatting.text.TranslatableComponent;
4242
import com.sk89q.worldedit.util.formatting.text.event.ClickEvent;
43-
import com.sk89q.worldedit.util.formatting.text.format.TextColor;
43+
import com.sk89q.worldedit.util.formatting.text.format.NamedTextColor;
4444
import com.sk89q.worldedit.world.World;
4545
import com.sk89q.worldedit.world.storage.LegacyChunkStore;
4646
import com.sk89q.worldedit.world.storage.McRegionChunkStore;
@@ -175,8 +175,8 @@ public void deleteChunks(Actor actor, World world, LocalSession session,
175175
currentInfo.batches.stream().mapToInt(ChunkDeletionInfo.ChunkBatch::getChunkCount).sum())
176176
));
177177
}
178-
actor.print(TextComponent.of("You can mark more chunks for deletion, or to stop now, run: ", TextColor.LIGHT_PURPLE)
179-
.append(TextComponent.of("/stop", TextColor.AQUA)
178+
actor.print(TextComponent.of("You can mark more chunks for deletion, or to stop now, run: ", NamedTextColor.LIGHT_PURPLE)
179+
.append(TextComponent.of("/stop", NamedTextColor.AQUA)
180180
.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, "/stop"))));
181181
}
182182

worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
import com.sk89q.worldedit.util.formatting.text.Component;
4444
import com.sk89q.worldedit.util.formatting.text.TextComponent;
4545
import com.sk89q.worldedit.util.formatting.text.TranslatableComponent;
46-
import com.sk89q.worldedit.util.formatting.text.format.TextColor;
46+
import com.sk89q.worldedit.util.formatting.text.format.NamedTextColor;
4747
import com.sk89q.worldedit.world.World;
4848
import com.sk89q.worldedit.world.item.ItemType;
4949
import org.enginehub.piston.CommandManager;
@@ -163,7 +163,7 @@ public void limit(Actor actor, LocalSession session,
163163
session.setBlockChangeLimit(limit);
164164
Component component = TextComponent.empty().append(TranslatableComponent.of("worldedit.limit.set", TextComponent.of(limit)));
165165
if (limit != config.defaultChangeLimit) {
166-
component.append(TextComponent.space()).append(TranslatableComponent.of("worldedit.limit.return-to-default", TextColor.GRAY));
166+
component.append(TextComponent.space()).append(TranslatableComponent.of("worldedit.limit.return-to-default", NamedTextColor.GRAY));
167167
}
168168
actor.printInfo(component);
169169
}
@@ -190,7 +190,7 @@ public void timeout(Actor actor, LocalSession session,
190190
session.setTimeout(limit);
191191
Component component = TextComponent.empty().append(TranslatableComponent.of("worldedit.timeout.set", TextComponent.of(limit)));
192192
if (limit != config.calculationTimeout) {
193-
component.append(TranslatableComponent.of("worldedit.timeout.return-to-default", TextColor.GRAY));
193+
component.append(TranslatableComponent.of("worldedit.timeout.return-to-default", NamedTextColor.GRAY));
194194
}
195195
actor.printInfo(component);
196196
}

worldedit-core/src/main/java/com/sk89q/worldedit/command/LegacySnapshotCommands.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import com.sk89q.worldedit.util.formatting.text.TranslatableComponent;
3333
import com.sk89q.worldedit.util.formatting.text.event.ClickEvent;
3434
import com.sk89q.worldedit.util.formatting.text.event.HoverEvent;
35-
import com.sk89q.worldedit.util.formatting.text.format.TextColor;
35+
import com.sk89q.worldedit.util.formatting.text.format.NamedTextColor;
3636
import com.sk89q.worldedit.world.World;
3737
import com.sk89q.worldedit.world.snapshot.InvalidSnapshotException;
3838
import com.sk89q.worldedit.world.snapshot.Snapshot;
@@ -189,8 +189,8 @@ private static class SnapshotListBox extends PaginationBox {
189189
@Override
190190
public Component getComponent(int number) {
191191
final Snapshot snapshot = snapshots.get(number);
192-
return TextComponent.of(number + 1 + ". ", TextColor.GOLD)
193-
.append(TextComponent.of(snapshot.getName(), TextColor.LIGHT_PURPLE)
192+
return TextComponent.of(number + 1 + ". ", NamedTextColor.GOLD)
193+
.append(TextComponent.of(snapshot.getName(), NamedTextColor.LIGHT_PURPLE)
194194
.hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, TextComponent.of("Click to use")))
195195
.clickEvent(ClickEvent.of(ClickEvent.Action.RUN_COMMAND, "/snap use " + snapshot.getName())));
196196
}

worldedit-core/src/main/java/com/sk89q/worldedit/command/PaintBrushCommands.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
import com.sk89q.worldedit.util.TreeGenerator;
4242
import com.sk89q.worldedit.util.formatting.text.TextComponent;
4343
import com.sk89q.worldedit.util.formatting.text.TranslatableComponent;
44-
import com.sk89q.worldedit.util.formatting.text.format.TextColor;
44+
import com.sk89q.worldedit.util.formatting.text.format.NamedTextColor;
4545
import com.sk89q.worldedit.util.formatting.text.format.TextDecoration;
4646
import org.enginehub.piston.CommandManager;
4747
import org.enginehub.piston.CommandManagerService;
@@ -130,7 +130,7 @@ public void item(CommandParameters parameters,
130130
@Arg(desc = "The direction in which the item will be applied", def = "up")
131131
@Direction(includeDiagonals = true)
132132
com.sk89q.worldedit.util.Direction direction) throws WorldEditException {
133-
player.print(TextComponent.builder().append("WARNING: ", TextColor.RED, TextDecoration.BOLD)
133+
player.print(TextComponent.builder().append("WARNING: ", NamedTextColor.RED, TextDecoration.BOLD)
134134
.append(TranslatableComponent.of("worldedit.brush.paint.item.warning")).build());
135135
setPaintBrush(parameters, player, localSession, new ItemUseFactory(item, direction));
136136
}

worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
import com.sk89q.worldedit.util.formatting.text.TranslatableComponent;
5252
import com.sk89q.worldedit.util.formatting.text.event.ClickEvent;
5353
import com.sk89q.worldedit.util.formatting.text.event.HoverEvent;
54-
import com.sk89q.worldedit.util.formatting.text.format.TextColor;
54+
import com.sk89q.worldedit.util.formatting.text.format.NamedTextColor;
5555
import com.sk89q.worldedit.util.io.Closer;
5656
import com.sk89q.worldedit.util.io.file.FilenameException;
5757
import org.enginehub.piston.annotation.Command;
@@ -133,8 +133,8 @@ public void load(Actor actor, LocalSession session,
133133
AsyncCommandBuilder.wrap(task, actor)
134134
.registerWithSupervisor(worldEdit.getSupervisor(), "Loading schematic " + filename)
135135
.sendMessageAfterDelay(TranslatableComponent.of("worldedit.schematic.load.loading"))
136-
.onSuccess(TextComponent.of(filename, TextColor.GOLD)
137-
.append(TextComponent.of(" loaded. Paste it with ", TextColor.LIGHT_PURPLE))
136+
.onSuccess(TextComponent.of(filename, NamedTextColor.GOLD)
137+
.append(TextComponent.of(" loaded. Paste it with ", NamedTextColor.LIGHT_PURPLE))
138138
.append(CodeFormat.wrap("//paste").clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, "//paste"))),
139139
session::setClipboard)
140140
.onFailure("Failed to load schematic", worldEdit.getPlatformManager().getPlatformCommandManager().getExceptionConverter())
@@ -446,12 +446,12 @@ public Component getComponent(int number) {
446446
return TextComponent.builder()
447447
.content("")
448448
.append(TextComponent.of("[L]")
449-
.color(TextColor.GOLD)
449+
.color(NamedTextColor.GOLD)
450450
.clickEvent(ClickEvent.of(ClickEvent.Action.RUN_COMMAND, "/schem load \"" + path + "\""))
451451
.hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, TextComponent.of("Click to load"))))
452452
.append(TextComponent.space())
453453
.append(TextComponent.of(path)
454-
.color(TextColor.DARK_GREEN)
454+
.color(NamedTextColor.DARK_GREEN)
455455
.hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, TextComponent.of(format))))
456456
.build();
457457
}

0 commit comments

Comments
 (0)