Skip to content

Commit

Permalink
cmds: fixed usage strings on error
Browse files Browse the repository at this point in the history
  • Loading branch information
Snaipe committed Sep 3, 2019
1 parent a1f2ff8 commit b131ba3
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 11 deletions.
5 changes: 4 additions & 1 deletion src/main/java/cool/foyer/chat/Chatter.java
Expand Up @@ -6,15 +6,18 @@
import java.util.Set;

import lombok.experimental.Accessors;
import lombok.experimental.Delegate;
import lombok.*;

import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.connection.ProxiedPlayer;

@RequiredArgsConstructor
@Accessors(fluent = true)
@Data
public class Chatter {
public class Chatter implements CommandSender {

@Delegate(types=CommandSender.class)
private final ProxiedPlayer player;
private Channel focus;
private final Set<Channel> channels = new HashSet<>();
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/cool/foyer/chat/Commands.java
Expand Up @@ -70,18 +70,18 @@ public void cmdLeave(Chatter chatter, @Optional Channel chan) {
@Subcommand("mute")
@CommandPermission("foyer.chat.mute")
@CommandCompletion("@players")
public void cmdMute(@Flags("other") Chatter target, @Optional Duration duration) {
public void cmdMute(Recipient target, @Optional Duration duration) {
if (duration == null) {
duration = ChronoUnit.FOREVER.getDuration();
}
target.mutedUntil(Instant.now().plus(duration));
target.chatter().mutedUntil(Instant.now().plus(duration));
}

@Subcommand("unmute")
@CommandPermission("foyer.chat.mute")
@CommandCompletion("@players")
public void cmdUnmute(@Flags("other") Chatter target) {
target.mutedUntil(Instant.MIN);
public void cmdUnmute(Recipient target) {
target.chatter().mutedUntil(Instant.MIN);
}

}
18 changes: 12 additions & 6 deletions src/main/java/cool/foyer/chat/Plugin.java
Expand Up @@ -131,15 +131,21 @@ public void onEnable() {
return duration;
});

cmdManager.getCommandContexts().registerContext(Recipient.class, c -> {
if (c.getFirstArg() == null) {
throw new InvalidCommandArgument(true);
}
var player = ProxyServer.getInstance().getPlayer(c.popFirstArg());
if (player == null) {
throw new InvalidCommandArgument("Joueur non connecté", false);
}
return new Recipient(chatters.get(player));
});

cmdManager.getCommandContexts().registerIssuerAwareContext(Chatter.class, c -> {
var sender = c.getSender();
var player = sender instanceof ProxiedPlayer ? (ProxiedPlayer) sender : null;
if (c.hasFlag("other")) {
player = ProxyServer.getInstance().getPlayer(c.popFirstArg());
if (player == null) {
throw new InvalidCommandArgument("Joueur non connecté", false);
}
} else if (player == null) {
if (player == null) {
throw new InvalidCommandArgument(MessageKeys.NOT_ALLOWED_ON_CONSOLE, false);
}
return chatters.get(player);
Expand Down
15 changes: 15 additions & 0 deletions src/main/java/cool/foyer/chat/Recipient.java
@@ -0,0 +1,15 @@
package cool.foyer.chat;

import lombok.experimental.Accessors;
import lombok.experimental.Delegate;
import lombok.*;

@RequiredArgsConstructor
@Accessors(fluent = true)
@Data
public class Recipient {

private final Chatter chatter;

}

0 comments on commit b131ba3

Please sign in to comment.