Skip to content

Commit 50d7c1a

Browse files
committed
add MessageSender and surpress removal warnings
1 parent d395cb1 commit 50d7c1a

File tree

5 files changed

+105
-18
lines changed

5 files changed

+105
-18
lines changed

src/main/java/minevalley/core/api/ChatMenu.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import minevalley.core.api.utils.ClickableMessage;
44

5+
@Deprecated(forRemoval = true)
56
public interface ChatMenu {
67

78
/**

src/main/java/minevalley/core/api/CoreServer.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,11 @@ public interface CoreServer {
209209
@Contract("_ -> new")
210210
ItemBuilder createItem(String url) throws IllegalArgumentException;
211211

212+
@SuppressWarnings("removal")
212213
@Deprecated(forRemoval = true)
213214
ChatMenu createChatMenu(ChatMenu.Option... options);
214215

216+
@SuppressWarnings("removal")
215217
@Deprecated(forRemoval = true)
216218
ChatMenu createChatMenu();
217219

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package minevalley.core.api.chat;
2+
3+
import minevalley.core.api.chat.clickable.ChatMenu;
4+
import minevalley.core.api.chat.clickable.ClickableOption;
5+
import minevalley.core.api.chat.instruction.Instruction;
6+
import minevalley.core.api.utils.ClickableMessage;
7+
import net.kyori.adventure.text.ComponentLike;
8+
import org.jetbrains.annotations.Contract;
9+
10+
import javax.annotation.Nonnull;
11+
12+
@SuppressWarnings("unused")
13+
public interface MessageSender {
14+
15+
/**
16+
* Sends a message to a receiver.
17+
*
18+
* @param receiver receiver to send the message to
19+
* @param message message to send
20+
* @throws IllegalArgumentException if the receiver or message is null
21+
*/
22+
void send(@Nonnull MessageReceiver receiver, @Nonnull ComponentLike message) throws IllegalArgumentException;
23+
24+
/**
25+
* Sends a message to a receiver with an instruction.
26+
*
27+
* @param receiver receiver to send the message to
28+
* @param message message to send
29+
* @param instruction instruction to send
30+
* @throws IllegalArgumentException if the receiver, message or instruction is null
31+
*/
32+
void send(@Nonnull MessageReceiver receiver, @Nonnull ComponentLike message, @Nonnull Instruction instruction) throws IllegalArgumentException;
33+
34+
/**
35+
* Sends a message to a receiver with a menu.
36+
*
37+
* @param receiver receiver to send the message to
38+
* @param message message to send
39+
* @param menu menu to send
40+
* @return the chat menu
41+
* @throws IllegalArgumentException if the receiver, message or menu is null
42+
*/
43+
@Nonnull
44+
@Contract("_, _, _ -> new")
45+
ChatMenu send(@Nonnull MessageReceiver receiver, @Nonnull ComponentLike message, @Nonnull ClickableOption... menu) throws IllegalArgumentException;
46+
47+
/**
48+
* Sends a message to a receiver with an instruction and a menu.
49+
*
50+
* @param receiver receiver to send the message to
51+
* @param message message to send
52+
* @param instruction instruction to send
53+
* @param menu menu to send
54+
* @return the chat menu
55+
* @throws IllegalArgumentException if the receiver, message, instruction or menu is null
56+
*/
57+
@Nonnull
58+
@Contract("_, _, _, _ -> new")
59+
ChatMenu send(@Nonnull MessageReceiver receiver, @Nonnull ComponentLike message, @Nonnull Instruction instruction, @Nonnull ClickableMessage... menu) throws IllegalArgumentException;
60+
}

src/main/java/minevalley/core/api/npc/NPC.java

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import lombok.AllArgsConstructor;
44
import lombok.Getter;
55
import lombok.RequiredArgsConstructor;
6-
import minevalley.core.api.ChatMenu;
76
import minevalley.core.api.armorstand.FakeArmorStand;
7+
import minevalley.core.api.chat.MessageSender;
88
import minevalley.core.api.modifiers.EquipmentModifier;
99
import minevalley.core.api.modifiers.InteractionModifier;
1010
import minevalley.core.api.modifiers.LocationModifier;
@@ -17,11 +17,10 @@
1717
import org.bukkit.util.Vector;
1818

1919
import java.util.List;
20-
import java.util.function.BiConsumer;
2120
import java.util.function.Consumer;
2221

2322
@SuppressWarnings("unused")
24-
public interface NPC extends EquipmentModifier, InteractionModifier, LocationModifier, VisibilityModifier {
23+
public interface NPC extends MessageSender, EquipmentModifier, InteractionModifier, LocationModifier, VisibilityModifier {
2524

2625
String getName();
2726

@@ -77,29 +76,47 @@ default void zoomIn(OnlineUser user) {
7776

7877
NPC setChatPrefix(String prefix);
7978

79+
@Deprecated(forRemoval = true)
8080
void say(OnlineUser user, String text);
8181

82+
@Deprecated(forRemoval = true)
8283
void say(OnlineUser user, BaseComponent[] baseComponent);
8384

84-
void say(OnlineUser user, String text, ChatMenu chatMenu);
85+
@SuppressWarnings("removal")
86+
@Deprecated(forRemoval = true)
87+
void say(OnlineUser user, String text, minevalley.core.api.ChatMenu chatMenu);
8588

86-
void say(OnlineUser user, BaseComponent[] baseComponent, ChatMenu chatMenu);
89+
@SuppressWarnings("removal")
90+
@Deprecated(forRemoval = true)
91+
void say(OnlineUser user, BaseComponent[] baseComponent, minevalley.core.api.ChatMenu chatMenu);
8792

93+
@Deprecated(forRemoval = true)
8894
void say(OnlineUser user, String text, OnlineUser.Notice notice);
8995

96+
@Deprecated(forRemoval = true)
9097
void say(OnlineUser user, BaseComponent[] baseComponent, OnlineUser.Notice notice);
9198

92-
void say(OnlineUser user, String text, ChatMenu chatMenu, OnlineUser.Notice notice);
99+
@SuppressWarnings("removal")
100+
@Deprecated(forRemoval = true)
101+
void say(OnlineUser user, String text, minevalley.core.api.ChatMenu chatMenu, OnlineUser.Notice notice);
93102

94-
void say(OnlineUser user, BaseComponent[] baseComponent, ChatMenu chatMenu, OnlineUser.Notice notice);
103+
@SuppressWarnings("removal")
104+
@Deprecated(forRemoval = true)
105+
void say(OnlineUser user, BaseComponent[] baseComponent, minevalley.core.api.ChatMenu chatMenu, OnlineUser.Notice notice);
95106

107+
@Deprecated(forRemoval = true)
96108
void say(OnlineUser user, RandomText... text);
97109

98-
void say(OnlineUser user, ChatMenu chatMenu, RandomText... text);
110+
@SuppressWarnings("removal")
111+
@Deprecated(forRemoval = true)
112+
void say(OnlineUser user, minevalley.core.api.ChatMenu chatMenu, RandomText... text);
99113

114+
@Deprecated(forRemoval = true)
100115
void say(OnlineUser user, OnlineUser.Notice notice, RandomText... text);
101116

102-
void say(OnlineUser user, ChatMenu chatMenu, OnlineUser.Notice notice, RandomText... text);
117+
@SuppressWarnings("removal")
118+
@Deprecated(forRemoval = true)
119+
void say(OnlineUser user, minevalley.core.api.ChatMenu chatMenu, OnlineUser.Notice notice, RandomText... text);
103120

104121
OnlineUser.Notice getTalkWithMeNotice();
105122

src/main/java/minevalley/core/api/users/OnlineUser.java

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package minevalley.core.api.users;
22

33
import lombok.NonNull;
4-
import minevalley.core.api.ChatMenu;
54
import minevalley.core.api.chat.MessageReceiver;
65
import minevalley.core.api.chat.types.MessageType;
76
import minevalley.core.api.economy.AccountUser;
@@ -239,8 +238,9 @@ default void closeInventory() {
239238
* @param message message to be sent as string
240239
* @param chatMenu menu to attach underneath the message
241240
*/
241+
@SuppressWarnings("removal")
242242
@Deprecated(forRemoval = true)
243-
void sendMessage(@NonNull String message, ChatMenu chatMenu);
243+
void sendMessage(@NonNull String message, minevalley.core.api.ChatMenu chatMenu);
244244

245245
/**
246246
* Sends a message to this user like the default player.sendMessage()-method. Without any prefix or color.
@@ -250,8 +250,9 @@ default void closeInventory() {
250250
* @param chatMenu menu to attach underneath the message
251251
* @param notice notice that is sent to the user
252252
*/
253+
@SuppressWarnings("removal")
253254
@Deprecated(forRemoval = true)
254-
void sendMessage(@NonNull String message, ChatMenu chatMenu, @NonNull Notice notice);
255+
void sendMessage(@NonNull String message, minevalley.core.api.ChatMenu chatMenu, @NonNull Notice notice);
255256

256257
/**
257258
* Sends a message to this user with a specific prefix.
@@ -260,8 +261,9 @@ default void closeInventory() {
260261
* @param message message to be sent as string
261262
* @param chatMenu menu to attach underneath the message
262263
*/
264+
@SuppressWarnings("removal")
263265
@Deprecated(forRemoval = true)
264-
void sendMessage(@NonNull MessageType messageType, @NonNull String message, ChatMenu chatMenu);
266+
void sendMessage(@NonNull MessageType messageType, @NonNull String message, minevalley.core.api.ChatMenu chatMenu);
265267

266268
/**
267269
* Sends a message to this user with a specific prefix.
@@ -272,8 +274,9 @@ default void closeInventory() {
272274
* @param chatMenu menu to attach underneath the message
273275
* @param notice notice that is sent to the user
274276
*/
277+
@SuppressWarnings("removal")
275278
@Deprecated(forRemoval = true)
276-
void sendMessage(@NonNull MessageType messageType, @NonNull String message, ChatMenu chatMenu, @NonNull Notice notice);
279+
void sendMessage(@NonNull MessageType messageType, @NonNull String message, minevalley.core.api.ChatMenu chatMenu, @NonNull Notice notice);
277280

278281
/**
279282
* Sends a message to this user with a specific prefix, using ComponentBuilders.
@@ -282,8 +285,9 @@ default void closeInventory() {
282285
* @param baseComponent message to be sent as string
283286
* @param chatMenu menu to attach underneath the message
284287
*/
288+
@SuppressWarnings("removal")
285289
@Deprecated(forRemoval = true)
286-
void sendMessage(@NonNull MessageType messageType, @NonNull BaseComponent[] baseComponent, ChatMenu chatMenu);
290+
void sendMessage(@NonNull MessageType messageType, @NonNull BaseComponent[] baseComponent, minevalley.core.api.ChatMenu chatMenu);
287291

288292
/**
289293
* Sends a message to this user with a specific prefix, using ComponentBuilders.
@@ -294,17 +298,19 @@ default void closeInventory() {
294298
* @param chatMenu menu to attach underneath the message
295299
* @param notice notice that is sent to the user
296300
*/
301+
@SuppressWarnings("removal")
297302
@Deprecated(forRemoval = true)
298-
void sendMessage(@NonNull MessageType messageType, @NonNull BaseComponent[] baseComponent, ChatMenu chatMenu, @NonNull Notice notice);
303+
void sendMessage(@NonNull MessageType messageType, @NonNull BaseComponent[] baseComponent, minevalley.core.api.ChatMenu chatMenu, @NonNull Notice notice);
299304

300305
/**
301306
* Sends a message to this user, with using ComponentBuilders. This way you can use hover and click-events and can take advantage of the clickable messages.
302307
*
303308
* @param baseComponent base-component which can be created by "new ComponentBuilder().create()"
304309
* @param chatMenu menu to attach underneath the message
305310
*/
311+
@SuppressWarnings("removal")
306312
@Deprecated(forRemoval = true)
307-
void sendMessage(@NonNull BaseComponent[] baseComponent, ChatMenu chatMenu);
313+
void sendMessage(@NonNull BaseComponent[] baseComponent, minevalley.core.api.ChatMenu chatMenu);
308314

309315
/**
310316
* Sends a message to this user, with using ComponentBuilders. This way you can use hover and click-events and can take advantage of the clickable messages.
@@ -314,8 +320,9 @@ default void closeInventory() {
314320
* @param chatMenu menu to attach underneath the message
315321
* @param notice notice that is sent to the user
316322
*/
323+
@SuppressWarnings("removal")
317324
@Deprecated(forRemoval = true)
318-
void sendMessage(@NonNull BaseComponent[] baseComponent, ChatMenu chatMenu, @NonNull Notice notice);
325+
void sendMessage(@NonNull BaseComponent[] baseComponent, minevalley.core.api.ChatMenu chatMenu, @NonNull Notice notice);
319326

320327
/**
321328
* Sends a message to the user providing useful side information. The user can click a button so that the message will not be sent the next time.

0 commit comments

Comments
 (0)