Skip to content

Commit

Permalink
update: CommandLib 0.5.+に対応
Browse files Browse the repository at this point in the history
  • Loading branch information
Maru32768 committed Aug 25, 2022
1 parent e0190d9 commit a0cffa4
Show file tree
Hide file tree
Showing 10 changed files with 48 additions and 85 deletions.
2 changes: 1 addition & 1 deletion bukkit/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ dependencies {
implementation "com.google.code.gson:gson:2.8.9"
implementation group: "org.apache.poi", name: "poi", version: "5.1.0"
implementation "org.apache.commons:commons-lang3:3.0"
compileOnly "com.github.TeamKun.CommandLib:bukkit:0.4.1"
compileOnly "com.github.TeamKun.CommandLib:bukkit:0.5.2"
compileOnly fileTree(dir: "./libs/", include: "patched*.jar")
compileOnly "com.mojang:brigadier:1.0.18"
}
Expand Down
58 changes: 12 additions & 46 deletions bukkit/src/main/java/net/kunmc/lab/configlib/value/UUIDValue.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;

public class UUIDValue extends SingleValue<UUID, UUIDValue> {
public UUIDValue() {
Expand All @@ -26,77 +25,44 @@ public UUIDValue(UUID value) {
}

public @Nullable OfflinePlayer toOfflinePlayer() {
if (value != null) {
return Bukkit.getOfflinePlayer(value);
if (value == null) {
return null;
}

return null;
return Bukkit.getOfflinePlayer(value);
}

public @Nullable Player toPlayer() {
if (value != null) {
return Bukkit.getPlayer(value);
if (value == null) {
return null;
}

return null;
return Bukkit.getPlayer(value);
}

public String playerName() {
if (value == null) {
return "";
}

return valueToString(value);
}

@Override
protected void appendArgument(ArgumentBuilder builder) {
builder.entityArgument("target", false, true, sb -> {
List<String> list = Bukkit.getOnlinePlayers().stream()
.filter(p -> !p.getUniqueId().equals(value))
.map(Player::getName)
.collect(Collectors.toList());
if (!list.isEmpty()) {
list.forEach(sb::suggest);
sb.suggest("@r");
}
});
builder.playerArgument("target");
}

@Override
protected boolean isCorrectArgument(String entryName, List<Object> argument, CommandSender sender) {
List<Player> list = ((List<Player>) argument.get(0));

if (list.size() != 1) {
return false;
}

return !list.get(0).getUniqueId().equals(value);
protected UUID argumentToValue(List<Object> argument, CommandSender sender) {
return ((Player) argument.get(0)).getUniqueId();
}

@Override
protected UUID argumentToValue(List<Object> argument, CommandSender sender) {
return ((List<Player>) argument.get(0)).get(0).getUniqueId();
protected boolean isCorrectArgument(String entryName, List<Object> argument, CommandSender sender) {
return true;
}

@Override
protected String incorrectArgumentMessage(String entryName, List<Object> argument, CommandSender sender) {
List<Player> list = ((List<Player>) argument.get(0));

if (list.isEmpty()) {
return "プレイヤーが見つかりませんでした.";
}

if (list.size() > 1) {
return "複数人のプレイヤーを設定することはできません.";
}

Player p = list.get(0);
if (p.getUniqueId().equals(value)) {
return p.getName() + "はすでに設定されているプレイヤーです.";
}

return "could not reach";
return "";
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,23 +28,23 @@ public UUIDSetValue(Set<UUID> value) {

@Override
protected void appendArgumentForAdd(ArgumentBuilder builder) {
builder.entityArgument("players", false, false);
builder.playersArgument("players");
}

@Override
protected boolean isCorrectArgumentForAdd(String entryName, List<Object> argument, CommandSender sender) {
return !((List) argument.get(0)).isEmpty();
return true;
}

@Override
protected String incorrectArgumentMessageForAdd(String entryName, List<Object> argument, CommandSender sender) {
return "指定されたプレイヤーは存在しないかオフラインです.";
return "";
}


@Override
protected Set<UUID> argumentToValueForAdd(String entryName, List<Object> argument, CommandSender sender) {
return ((List<Entity>) argument.get(0)).stream()
return ((List<Player>) argument.get(0)).stream()
.map(Entity::getUniqueId)
.collect(Collectors.toSet());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Entity;

import java.util.*;
import java.util.stream.Collectors;
Expand All @@ -21,22 +20,22 @@ public UUID2ObjectMapValue(Map<UUID, V> value) {

@Override
protected void appendKeyArgumentForPut(ArgumentBuilder builder) {
builder.entityArgument("player", false, true);
builder.offlinePlayerArgument("player");
}

@Override
protected boolean isCorrectKeyArgumentForPut(String entryName, List<Object> argument, CommandSender sender) {
return !((List) argument.get(0)).isEmpty();
return true;
}

@Override
protected String incorrectKeyArgumentMessageForPut(String entryName, List<Object> argument, CommandSender sender) {
return "指定されたプレイヤーは存在しないかオフラインです.";
return "";
}

@Override
protected UUID argumentToKeyForPut(List<Object> argument, CommandSender sender) {
return ((List<Entity>) argument.get(0)).get(0).getUniqueId();
return ((OfflinePlayer) argument.get(0)).getUniqueId();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
package net.kunmc.lab.configlib.value.map;

import net.kunmc.lab.commandlib.ArgumentBuilder;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Entity;

import java.util.List;
import java.util.UUID;

public class UUID2UUIDMapValue extends UUID2ObjectMapValue<UUID, UUID2UUIDMapValue> {
@Override
protected void appendValueArgumentForPut(ArgumentBuilder builder) {
builder.entityArgument("player2", false, true);
builder.offlinePlayerArgument("player2");
}

@Override
protected boolean isCorrectValueArgumentForPut(String entryName, List<Object> argument, CommandSender sender) {
return !((List) argument.get(1)).isEmpty();
return true;
}

@Override
protected String incorrectValueArgumentMessageForPut(String entryName, List<Object> argument, CommandSender sender) {
return "指定されたプレイヤーは存在しないかオフラインです.";
return "";
}

@Override
protected UUID argumentToValueForPut(List<Object> argument, CommandSender sender) {
return ((List<Entity>) argument.get(1)).get(0).getUniqueId();
return ((OfflinePlayer) argument.get(1)).getUniqueId();
}

@Override
Expand Down
2 changes: 1 addition & 1 deletion forge/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ repositories {
dependencies {
minecraft 'net.minecraftforge:forge:1.16.5-36.2.31'
implementation group: "org.apache.poi", name: "poi", version: "5.1.0"
compileOnly "com.github.TeamKun.CommandLib:forge:0.4.1"
compileOnly "com.github.TeamKun.CommandLib:forge:0.5.2"
implementation "org.jetbrains:annotations:16.0.2"
}

Expand Down
14 changes: 6 additions & 8 deletions forge/src/main/java/net/kunmc/lab/configlib/value/UUIDValue.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,34 +25,32 @@ public UUIDValue(UUID value) {
}

public @Nullable PlayerEntity toPlayer() {
if (value != null) {
return ServerLifecycleHooks.getCurrentServer().getPlayerList().getPlayerByUUID(value);
if (value == null) {
return null;
}

return null;
return ServerLifecycleHooks.getCurrentServer().getPlayerList().getPlayerByUUID(value);
}

public String playerName() {
if (value == null) {
return "";
}

return valueToString(value);
}

@Override
protected void appendArgument(ArgumentBuilder builder) {
builder.entityArgument("target", false, true);
builder.playerArgument("target");
}

@Override
protected boolean isCorrectArgument(String entryName, List<Object> argument, CommandSource sender) {
return !((List) argument.get(0)).isEmpty();
return true;
}

@Override
protected UUID argumentToValue(List<Object> argument, CommandSource sender) {
return ((List<PlayerEntity>) argument.get(0)).get(0).getUniqueID();
return ((PlayerEntity) argument.get(0)).getUniqueID();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,24 +27,25 @@ public UUIDSetValue(Set<UUID> value) {

@Override
protected void appendArgumentForAdd(ArgumentBuilder builder) {
builder.entityArgument("players", false, false);
builder.playersArgument("players");
}

@Override
protected boolean isCorrectArgumentForAdd(String entryName, List<Object> argument, CommandSource sender) {
return !((List) argument.get(0)).isEmpty();
return true;
}

@Override
protected String incorrectArgumentMessageForAdd(String entryName, List<Object> argument, CommandSource sender) {
return "指定されたプレイヤーは存在しないかオフラインです.";
return "";
}


@Override
protected Set<UUID> argumentToValueForAdd(String entryName, List<Object> argument, CommandSource sender) {
return ((List<Entity>) argument.get(0)).stream()
.map(Entity::getUniqueID).collect(Collectors.toSet());
return ((List<PlayerEntity>) argument.get(0)).stream()
.map(Entity::getUniqueID)
.collect(Collectors.toSet());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import net.kunmc.lab.commandlib.argument.StringArgument;
import net.kunmc.lab.configlib.MapValue;
import net.minecraft.command.CommandSource;
import net.minecraft.entity.Entity;
import net.minecraftforge.fml.server.ServerLifecycleHooks;

import java.util.*;
Expand All @@ -21,22 +20,22 @@ public UUID2ObjectMapValue(Map<UUID, V> value) {

@Override
protected void appendKeyArgumentForPut(ArgumentBuilder builder) {
builder.entityArgument("player", false, true);
builder.gameProfileArgument("player");
}

@Override
protected boolean isCorrectKeyArgumentForPut(String entryName, List<Object> argument, CommandSource sender) {
return !((List) argument.get(0)).isEmpty();
return true;
}

@Override
protected String incorrectKeyArgumentMessageForPut(String entryName, List<Object> argument, CommandSource sender) {
return "指定されたプレイヤーは存在しないかオフラインです.";
return "";
}

@Override
protected UUID argumentToKeyForPut(List<Object> argument, CommandSource sender) {
return ((List<Entity>) argument.get(0)).get(0).getUniqueID();
return ((GameProfile) argument.get(0)).getId();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
package net.kunmc.lab.configlib.value.map;

import com.mojang.authlib.GameProfile;
import net.kunmc.lab.commandlib.ArgumentBuilder;
import net.minecraft.command.CommandSource;
import net.minecraft.entity.Entity;

import java.util.List;
import java.util.UUID;

public class UUID2UUIDMapValue extends UUID2ObjectMapValue<UUID, UUID2UUIDMapValue> {
@Override
protected void appendValueArgumentForPut(ArgumentBuilder builder) {
builder.entityArgument("player2", false, true);
builder.gameProfileArgument("player2");
}

@Override
protected boolean isCorrectValueArgumentForPut(String entryName, List<Object> argument, CommandSource sender) {
return !((List) argument.get(0)).isEmpty();
return true;
}

@Override
protected String incorrectValueArgumentMessageForPut(String entryName, List<Object> argument, CommandSource sender) {
return "指定されたプレイヤーは存在しないかオフラインです.";
return "";
}

@Override
protected UUID argumentToValueForPut(List<Object> argument, CommandSource sender) {
return ((List<Entity>) argument.get(1)).get(0).getUniqueID();
return ((GameProfile) argument.get(1)).getId();
}

@Override
Expand Down

0 comments on commit a0cffa4

Please sign in to comment.