Skip to content

Commit 29dc7df

Browse files
committed
add /display teleport command
1 parent 662fbab commit 29dc7df

3 files changed

Lines changed: 108 additions & 35 deletions

File tree

src/main/java/cloud/grabsky/displayentities/DisplayEntities.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import cloud.grabsky.displayentities.command.CommandDisplayRotateY;
4949
import cloud.grabsky.displayentities.command.CommandDisplayScale;
5050
import cloud.grabsky.displayentities.command.CommandDisplaySeeThrough;
51+
import cloud.grabsky.displayentities.command.CommandDisplayTeleport;
5152
import cloud.grabsky.displayentities.command.CommandDisplayTextManipulation;
5253
import cloud.grabsky.displayentities.command.CommandDisplayTextOpacity;
5354
import cloud.grabsky.displayentities.command.CommandDisplayTextShadow;
@@ -209,6 +210,7 @@ private void registerCommands(final @NotNull Lamp<BukkitCommandActor> lamp) {
209210
lamp.register(CommandDisplayDelete.INSTANCE);
210211
lamp.register(CommandDisplayReload.INSTANCE);
211212
lamp.register(CommandDisplayRespawn.INSTANCE);
213+
lamp.register(CommandDisplayTeleport.INSTANCE);
212214
// Editing (Common / All)
213215
lamp.register(CommandDisplayMoveTo.INSTANCE);
214216
// Editing (Strict / Display Entities)
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/*
2+
* DisplayEntities (https://github.com/Grabsky/DisplayEntities)
3+
*
4+
* MIT License
5+
*
6+
* Copyright (c) 2025 Grabsky (michal.czopek.foss@proton.me)
7+
*
8+
* Permission is hereby granted, free of charge, to any person obtaining a copy
9+
* of this software and associated documentation files (the "Software"), to deal
10+
* in the Software without restriction, including without limitation the rights
11+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12+
* copies of the Software, and to permit persons to whom the Software is
13+
* furnished to do so, subject to the following conditions:
14+
*
15+
* The above copyright notice and this permission notice shall be included in all
16+
* substantial portions of the Software.
17+
*
18+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24+
* SOFTWARE.
25+
*/
26+
package cloud.grabsky.displayentities.command;
27+
28+
import cloud.grabsky.displayentities.DisplayWrapper;
29+
import cloud.grabsky.displayentities.configuration.PluginConfiguration;
30+
import cloud.grabsky.displayentities.util.LombokExtensions;
31+
import org.bukkit.entity.Player;
32+
import revxrsal.commands.annotation.Command;
33+
import revxrsal.commands.annotation.Dependency;
34+
import revxrsal.commands.bukkit.annotation.CommandPermission;
35+
36+
import org.jetbrains.annotations.NotNull;
37+
38+
import lombok.experimental.ExtensionMethod;
39+
40+
@ExtensionMethod(LombokExtensions.class)
41+
public enum CommandDisplayTeleport {
42+
INSTANCE; // SINGLETON
43+
44+
@Dependency
45+
private PluginConfiguration configuration;
46+
47+
@Command("display teleport <display>")
48+
@CommandPermission("displayentities.command.display.teleport")
49+
public String onDisplayTeleport(
50+
final @NotNull Player sender,
51+
final @NotNull DisplayWrapper display
52+
) {
53+
// Teleporting entity to the location of display entity.
54+
sender.teleportAsync(display.entity().getLocation());
55+
// Returning (sending) success message to the sender.
56+
return configuration.messages().commandDisplayTeleportSuccess().repl("{display}", display.name());
57+
}
58+
59+
}

0 commit comments

Comments
 (0)