@@ -199,6 +199,63 @@ public Messages() {
199199 .ofNullable (alt .player ().getName ()).orElse (alt .player ().getUniqueId ().toString ())));
200200 }
201201
202+ public @ NotNull Component membersNationlessFallback () {
203+ return MiniMessage .miniMessage ().deserialize (
204+ Objects .requireNonNull (config .getString ("members.nationless-fallback" ))
205+ );
206+ }
207+
208+ public @ NotNull Component membersListHeader () {
209+ return MiniMessage .miniMessage ().deserialize (
210+ Objects .requireNonNull (config .getString ("members.list.header" ))
211+ );
212+ }
213+
214+ public @ NotNull Component membersListNone () {
215+ return MiniMessage .miniMessage ().deserialize (
216+ Objects .requireNonNull (config .getString ("members.list.none" ))
217+ );
218+ }
219+
220+ public @ NotNull Component membersListEntry (final @ NotNull Member member ) {
221+ return MiniMessage .miniMessage ().deserialize (
222+ Objects .requireNonNull (config .getString ("members.list.entry" )),
223+ Placeholder .unparsed ("player" , Optional .ofNullable (member .player ().getName ())
224+ .orElse (member .player ().getUniqueId ().toString ())),
225+ Formatter .choice ("staff" , member .staff ? 1 : 0 ),
226+ Placeholder .component ("nation" , member .nation ()
227+ .map (n -> n .getTeam ().displayName ())
228+ .orElse (membersNationlessFallback ())
229+ ),
230+ Formatter .date ("added" , member .added .toInstant ().atZone (ZoneOffset .systemDefault ()))
231+ );
232+ }
233+
234+ public @ NotNull Component membersAdded (final @ NotNull Member member ) {
235+ return MiniMessage .miniMessage ().deserialize (
236+ Objects .requireNonNull (config .getString ("members.added" )),
237+ Placeholder .unparsed ("player" , Optional .ofNullable (member .player ().getName ())
238+ .orElse (member .player ().getUniqueId ().toString ()))
239+ );
240+ }
241+
242+ public @ NotNull Component membersDeleted (final @ NotNull OfflinePlayer player ) {
243+ return MiniMessage .miniMessage ().deserialize (
244+ Objects .requireNonNull (config .getString ("members.deleted" )),
245+ Placeholder .unparsed ("player" , Optional .ofNullable (player .getName ())
246+ .orElse (player .getUniqueId ().toString ()))
247+ );
248+ }
249+
250+ public @ NotNull Component membersSetStaff (final @ NotNull Member member ) {
251+ return MiniMessage .miniMessage ().deserialize (
252+ Objects .requireNonNull (config .getString ("members.set-staff" )),
253+ Placeholder .unparsed ("player" , Optional .ofNullable (member .player ().getName ())
254+ .orElse (member .player ().getUniqueId ().toString ())),
255+ Formatter .choice ("staff" , member .staff ? 1 : 0 )
256+ );
257+ }
258+
202259 public @ NotNull Component seen (final @ NotNull Member member ) {
203260 if (member .player ().isOnline ()) return MiniMessage .miniMessage ()
204261 .deserialize (Objects .requireNonNull (config .getString ("seen.online" )), Placeholder .unparsed ("player" , Optional
@@ -636,13 +693,39 @@ public Messages() {
636693 return MiniMessage .miniMessage ().deserialize (Objects .requireNonNull (config .getString ("error.duration-zero-or-less" )));
637694 }
638695
639- public @ NotNull Component invalidDuration (final @ NotNull String duration ) {
696+ public @ NotNull Component errorInvalidDuration (final @ NotNull String duration ) {
640697 return MiniMessage .miniMessage ().deserialize (
641698 Objects .requireNonNull (config .getString ("error.invalid-duration" )),
642699 Placeholder .unparsed ("duration" , duration )
643700 );
644701 }
645702
703+ public @ NotNull Component errorAlreadyMember (final @ NotNull Member member ) {
704+ return MiniMessage .miniMessage ().deserialize (
705+ Objects .requireNonNull (config .getString ("error.already-member" )),
706+ Placeholder .unparsed ("player" , Optional .ofNullable (member .player ().getName ())
707+ .orElse (member .player ().getUniqueId ().toString ()))
708+ );
709+ }
710+
711+ public @ NotNull Component errorAlreadyStaff (final @ NotNull Member member ) {
712+ return MiniMessage .miniMessage ().deserialize (
713+ Objects .requireNonNull (config .getString ("error.already-staff" )),
714+ Placeholder .unparsed ("player" , Optional .ofNullable (member .player ().getName ())
715+ .orElse (member .player ().getUniqueId ().toString ())),
716+ Formatter .choice ("staff" , member .staff ? 1 : 0 )
717+ );
718+ }
719+
720+ public @ NotNull Component errorRemoveMemberLeader (final @ NotNull Member member , final @ NotNull Nation nation ) {
721+ return MiniMessage .miniMessage ().deserialize (
722+ Objects .requireNonNull (config .getString ("error.remove-member-leader" )),
723+ Placeholder .unparsed ("player" , Optional .ofNullable (member .player ().getName ())
724+ .orElse (member .player ().getUniqueId ().toString ())),
725+ Placeholder .unparsed ("nation" , nation .name )
726+ );
727+ }
728+
646729 public record SubCommandArgument (@ NotNull String name , boolean required ) {
647730 public @ NotNull Component component () {
648731 return required ? SMPCore .messages ().subCommandArgumentRequired (name ) : SMPCore .messages ()
0 commit comments