feat(C-01): i18n main commands — 148 translatable keys
Phase 3: Migrate Component.literal() in all remaining command files. - NPCCommand (34), CellCommand (33), SocialCommand (16), CollarCommand (25), KeyCommand (18), BountyCommand (6), KidnapSetCommand (2), CaptivityDebugCommand (7), InventorySubCommand (3), TestAnimSubCommand (2), MasterTestSubCommand (7), DebtSubCommand (8) - Strip all section sign color codes, use .withStyle(ChatFormatting) - 148 new keys in en_us.json (command.tiedup.*) - Debug/dynamic strings intentionally kept as literal
This commit is contained in:
@@ -69,8 +69,8 @@ public class BountyCommand {
|
|||||||
// Cannot bounty yourself
|
// Cannot bounty yourself
|
||||||
if (player.getUUID().equals(target.getUUID())) {
|
if (player.getUUID().equals(target.getUUID())) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"You cannot put a bounty on yourself!"
|
"command.tiedup.bounty.cannot_self"
|
||||||
).withStyle(ChatFormatting.RED)
|
).withStyle(ChatFormatting.RED)
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -80,8 +80,8 @@ public class BountyCommand {
|
|||||||
IBondageState playerState = KidnappedHelper.getKidnappedState(player);
|
IBondageState playerState = KidnappedHelper.getKidnappedState(player);
|
||||||
if (playerState != null && playerState.isTiedUp()) {
|
if (playerState != null && playerState.isTiedUp()) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"You cannot create bounties while tied up!"
|
"command.tiedup.bounty.tied_up"
|
||||||
).withStyle(ChatFormatting.RED)
|
).withStyle(ChatFormatting.RED)
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -96,8 +96,8 @@ public class BountyCommand {
|
|||||||
player.serverLevel().getGameRules()
|
player.serverLevel().getGameRules()
|
||||||
);
|
);
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Maximum number (" + max + ") of active bounties reached!"
|
"command.tiedup.bounty.max_reached", max
|
||||||
).withStyle(ChatFormatting.RED)
|
).withStyle(ChatFormatting.RED)
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -107,8 +107,8 @@ public class BountyCommand {
|
|||||||
ItemStack heldItem = player.getMainHandItem();
|
ItemStack heldItem = player.getMainHandItem();
|
||||||
if (heldItem.isEmpty()) {
|
if (heldItem.isEmpty()) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"You must hold an item as the reward!"
|
"command.tiedup.bounty.must_hold_item"
|
||||||
).withStyle(ChatFormatting.RED)
|
).withStyle(ChatFormatting.RED)
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -143,8 +143,8 @@ public class BountyCommand {
|
|||||||
// Notify player
|
// Notify player
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Bounty created on " + target.getName().getString() + "!"
|
"command.tiedup.bounty.created", target.getName().getString()
|
||||||
).withStyle(ChatFormatting.GREEN),
|
).withStyle(ChatFormatting.GREEN),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
@@ -153,12 +153,10 @@ public class BountyCommand {
|
|||||||
player.server
|
player.server
|
||||||
.getPlayerList()
|
.getPlayerList()
|
||||||
.broadcastSystemMessage(
|
.broadcastSystemMessage(
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"[Bounty] " +
|
"command.tiedup.bounty.broadcast",
|
||||||
player.getName().getString() +
|
player.getName().getString(),
|
||||||
" has put a bounty on " +
|
target.getName().getString()
|
||||||
target.getName().getString() +
|
|
||||||
"!"
|
|
||||||
).withStyle(ChatFormatting.GOLD),
|
).withStyle(ChatFormatting.GOLD),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -117,9 +117,9 @@ public class CaptivityDebugCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"=== Captivity Debug Info ===\n" + debugInfo
|
"command.tiedup.debug.prisoner_header"
|
||||||
).withStyle(ChatFormatting.YELLOW),
|
).append(Component.literal("\n" + debugInfo)).withStyle(ChatFormatting.YELLOW),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -128,7 +128,7 @@ public class CaptivityDebugCommand {
|
|||||||
ctx
|
ctx
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal("Error: " + e.getMessage()).withStyle(
|
Component.translatable("command.tiedup.debug.error", e.getMessage()).withStyle(
|
||||||
ChatFormatting.RED
|
ChatFormatting.RED
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@@ -149,8 +149,8 @@ public class CaptivityDebugCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Checking captivity system..."
|
"command.tiedup.debug.validate_checking"
|
||||||
).withStyle(ChatFormatting.YELLOW),
|
).withStyle(ChatFormatting.YELLOW),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
@@ -163,9 +163,7 @@ public class CaptivityDebugCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(debugInfo).withStyle(
|
Component.literal(debugInfo).withStyle(ChatFormatting.GREEN),
|
||||||
ChatFormatting.GREEN
|
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -174,8 +172,8 @@ public class CaptivityDebugCommand {
|
|||||||
ctx
|
ctx
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Error during validation: " + e.getMessage()
|
"command.tiedup.debug.error", e.getMessage()
|
||||||
).withStyle(ChatFormatting.RED)
|
).withStyle(ChatFormatting.RED)
|
||||||
);
|
);
|
||||||
return 0; // Failure
|
return 0; // Failure
|
||||||
@@ -193,8 +191,8 @@ public class CaptivityDebugCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Repair functionality has been simplified with the new PrisonerManager system."
|
"command.tiedup.debug.repair_simplified"
|
||||||
).withStyle(ChatFormatting.YELLOW),
|
).withStyle(ChatFormatting.YELLOW),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
@@ -203,8 +201,8 @@ public class CaptivityDebugCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"The new system maintains consistency automatically."
|
"command.tiedup.debug.repair_auto"
|
||||||
).withStyle(ChatFormatting.GREEN),
|
).withStyle(ChatFormatting.GREEN),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
@@ -214,7 +212,7 @@ public class CaptivityDebugCommand {
|
|||||||
ctx
|
ctx
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal("Error: " + e.getMessage()).withStyle(
|
Component.translatable("command.tiedup.debug.error", e.getMessage()).withStyle(
|
||||||
ChatFormatting.RED
|
ChatFormatting.RED
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@@ -251,8 +249,8 @@ public class CaptivityDebugCommand {
|
|||||||
ctx
|
ctx
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"No camp found with ID prefix: " + campIdPrefix
|
"command.tiedup.debug.camp_not_found", campIdPrefix
|
||||||
).withStyle(ChatFormatting.RED)
|
).withStyle(ChatFormatting.RED)
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -322,7 +320,7 @@ public class CaptivityDebugCommand {
|
|||||||
ctx
|
ctx
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal("Error: " + e.getMessage()).withStyle(
|
Component.translatable("command.tiedup.debug.error", e.getMessage()).withStyle(
|
||||||
ChatFormatting.RED
|
ChatFormatting.RED
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.tiedup.remake.items.ItemAdminWand;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.commands.CommandSourceStack;
|
import net.minecraft.commands.CommandSourceStack;
|
||||||
import net.minecraft.commands.Commands;
|
import net.minecraft.commands.Commands;
|
||||||
import net.minecraft.commands.arguments.EntityArgument;
|
import net.minecraft.commands.arguments.EntityArgument;
|
||||||
@@ -110,7 +111,7 @@ public class CellCommand {
|
|||||||
|
|
||||||
// Must be a player
|
// Must be a player
|
||||||
if (!(source.getEntity() instanceof ServerPlayer player)) {
|
if (!(source.getEntity() instanceof ServerPlayer player)) {
|
||||||
source.sendFailure(Component.literal("Must be a player"));
|
source.sendFailure(Component.translatable("command.tiedup.error.must_be_player"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,9 +122,7 @@ public class CellCommand {
|
|||||||
UUID selectedCellId = getSelectedCellFromWand(player);
|
UUID selectedCellId = getSelectedCellFromWand(player);
|
||||||
if (selectedCellId == null) {
|
if (selectedCellId == null) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.cell.no_selection")
|
||||||
"No cell selected. Use the Admin Wand on a Cell Core first."
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -131,7 +130,7 @@ public class CellCommand {
|
|||||||
CellDataV2 cell = registry.getCell(selectedCellId);
|
CellDataV2 cell = registry.getCell(selectedCellId);
|
||||||
if (cell == null) {
|
if (cell == null) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("Selected cell no longer exists")
|
Component.translatable("command.tiedup.cell.no_longer_exists")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -142,7 +141,7 @@ public class CellCommand {
|
|||||||
existingCell != null && !existingCell.getId().equals(selectedCellId)
|
existingCell != null && !existingCell.getId().equals(selectedCellId)
|
||||||
) {
|
) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("Cell name '" + name + "' already exists")
|
Component.translatable("command.tiedup.cell.name_exists", name)
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -161,9 +160,7 @@ public class CellCommand {
|
|||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.cell.named", name).withStyle(ChatFormatting.GREEN),
|
||||||
"Named cell '" + name + "' and linked to you"
|
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -182,20 +179,20 @@ public class CellCommand {
|
|||||||
Collection<CellDataV2> cells = registry.getAllCells();
|
Collection<CellDataV2> cells = registry.getAllCells();
|
||||||
if (cells.isEmpty()) {
|
if (cells.isEmpty()) {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("No cells registered"),
|
() -> Component.translatable("command.tiedup.cell.none_registered"),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("=== Cells (" + cells.size() + ") ==="),
|
() -> Component.translatable("command.tiedup.cell.list_header", cells.size()).withStyle(ChatFormatting.GOLD),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
for (CellDataV2 cell : cells) {
|
for (CellDataV2 cell : cells) {
|
||||||
String info = formatCellInfo(cell, serverLevel);
|
String info = formatCellInfo(cell, serverLevel);
|
||||||
source.sendSuccess(() -> Component.literal(info), false);
|
source.sendSuccess(() -> Component.literal(info).withStyle(ChatFormatting.GRAY), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
@@ -217,9 +214,7 @@ public class CellCommand {
|
|||||||
if (cells.isEmpty()) {
|
if (cells.isEmpty()) {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.cell.no_cells_for_owner", owner.getName().getString()),
|
||||||
owner.getName().getString() + " has no cells"
|
|
||||||
),
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -227,19 +222,17 @@ public class CellCommand {
|
|||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"=== Cells owned by " +
|
"command.tiedup.cell.list_owner_header",
|
||||||
owner.getName().getString() +
|
owner.getName().getString(),
|
||||||
" (" +
|
cells.size()
|
||||||
cells.size() +
|
).withStyle(ChatFormatting.GOLD),
|
||||||
") ==="
|
|
||||||
),
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
for (CellDataV2 cell : cells) {
|
for (CellDataV2 cell : cells) {
|
||||||
String info = formatCellInfo(cell, serverLevel);
|
String info = formatCellInfo(cell, serverLevel);
|
||||||
source.sendSuccess(() -> Component.literal(info), false);
|
source.sendSuccess(() -> Component.literal(info).withStyle(ChatFormatting.GRAY), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
@@ -257,7 +250,7 @@ public class CellCommand {
|
|||||||
|
|
||||||
// Must be a player
|
// Must be a player
|
||||||
if (!(source.getEntity() instanceof ServerPlayer player)) {
|
if (!(source.getEntity() instanceof ServerPlayer player)) {
|
||||||
source.sendFailure(Component.literal("Must be a player"));
|
source.sendFailure(Component.translatable("command.tiedup.error.must_be_player"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -267,9 +260,7 @@ public class CellCommand {
|
|||||||
UUID selectedCellId = getSelectedCellFromWand(player);
|
UUID selectedCellId = getSelectedCellFromWand(player);
|
||||||
if (selectedCellId == null) {
|
if (selectedCellId == null) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.cell.no_selection")
|
||||||
"No cell selected. Use the Admin Wand on a Cell Core first."
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -277,7 +268,7 @@ public class CellCommand {
|
|||||||
CellDataV2 cell = registry.getCell(selectedCellId);
|
CellDataV2 cell = registry.getCell(selectedCellId);
|
||||||
if (cell == null) {
|
if (cell == null) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("Selected cell no longer exists")
|
Component.translatable("command.tiedup.cell.no_longer_exists")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -300,7 +291,7 @@ public class CellCommand {
|
|||||||
CellDataV2 cell = registry.getCellByName(name);
|
CellDataV2 cell = registry.getCellByName(name);
|
||||||
if (cell == null) {
|
if (cell == null) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("Cell '" + name + "' not found")
|
Component.translatable("command.tiedup.cell.not_found", name)
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -321,7 +312,7 @@ public class CellCommand {
|
|||||||
|
|
||||||
// Must be a player
|
// Must be a player
|
||||||
if (!(source.getEntity() instanceof ServerPlayer player)) {
|
if (!(source.getEntity() instanceof ServerPlayer player)) {
|
||||||
source.sendFailure(Component.literal("Must be a player"));
|
source.sendFailure(Component.translatable("command.tiedup.error.must_be_player"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -331,9 +322,7 @@ public class CellCommand {
|
|||||||
UUID selectedCellId = getSelectedCellFromWand(player);
|
UUID selectedCellId = getSelectedCellFromWand(player);
|
||||||
if (selectedCellId == null) {
|
if (selectedCellId == null) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.cell.no_selection")
|
||||||
"No cell selected. Use the Admin Wand on a Cell Core first."
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -341,7 +330,7 @@ public class CellCommand {
|
|||||||
CellDataV2 cell = registry.getCell(selectedCellId);
|
CellDataV2 cell = registry.getCell(selectedCellId);
|
||||||
if (cell == null) {
|
if (cell == null) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("Selected cell no longer exists")
|
Component.translatable("command.tiedup.cell.no_longer_exists")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -365,7 +354,7 @@ public class CellCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("Deleted cell '" + cellName + "'"),
|
() -> Component.translatable("command.tiedup.cell.deleted", cellName).withStyle(ChatFormatting.GREEN),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -438,24 +427,16 @@ public class CellCommand {
|
|||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Reset " +
|
"command.tiedup.cell.reset_spawns", finalResetCount, finalSpawnMarkerCount, radius
|
||||||
finalResetCount +
|
).withStyle(ChatFormatting.GREEN),
|
||||||
" spawn markers (found " +
|
|
||||||
finalSpawnMarkerCount +
|
|
||||||
" total spawn markers in " +
|
|
||||||
radius +
|
|
||||||
" block radius)"
|
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|
||||||
if (resetCount > 0) {
|
if (resetCount > 0) {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.cell.reset_spawns_hint").withStyle(ChatFormatting.GRAY),
|
||||||
"You can now save the structure - NPCs will spawn when it's placed."
|
|
||||||
),
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -541,25 +522,25 @@ public class CellCommand {
|
|||||||
String nameDisplay =
|
String nameDisplay =
|
||||||
cell.getName() != null ? cell.getName() : "(unnamed)";
|
cell.getName() != null ? cell.getName() : "(unnamed)";
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("=== Cell: " + nameDisplay + " ==="),
|
() -> Component.translatable("command.tiedup.cell.info_header", nameDisplay).withStyle(ChatFormatting.GOLD),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("ID: " + cell.getId().toString()),
|
() -> Component.translatable("command.tiedup.cell.info_id", cell.getId().toString()).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("State: " + cell.getState()),
|
() -> Component.translatable("command.tiedup.cell.info_state", cell.getState().toString()).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Core Position: " + cell.getCorePos().toShortString()
|
"command.tiedup.cell.info_core_pos", cell.getCorePos().toShortString()
|
||||||
),
|
).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -567,9 +548,9 @@ public class CellCommand {
|
|||||||
if (cell.getSpawnPoint() != null) {
|
if (cell.getSpawnPoint() != null) {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Spawn Point: " + cell.getSpawnPoint().toShortString()
|
"command.tiedup.cell.info_spawn_point", cell.getSpawnPoint().toShortString()
|
||||||
),
|
).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -584,18 +565,16 @@ public class CellCommand {
|
|||||||
owner != null ? owner.getName().getString() : "(offline)";
|
owner != null ? owner.getName().getString() : "(offline)";
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Owner: " +
|
"command.tiedup.cell.info_owner",
|
||||||
ownerName +
|
ownerName,
|
||||||
" (" +
|
cell.getOwnerId().toString().substring(0, 8) + "..."
|
||||||
cell.getOwnerId().toString().substring(0, 8) +
|
).withStyle(ChatFormatting.GRAY),
|
||||||
"...)"
|
|
||||||
),
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("Owner: (world-generated)"),
|
() -> Component.translatable("command.tiedup.cell.info_owner_world").withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -603,16 +582,16 @@ public class CellCommand {
|
|||||||
// Geometry
|
// Geometry
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Interior blocks: " + cell.getInteriorBlocks().size()
|
"command.tiedup.cell.info_interior", cell.getInteriorBlocks().size()
|
||||||
),
|
).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Wall blocks: " + cell.getWallBlocks().size()
|
"command.tiedup.cell.info_walls", cell.getWallBlocks().size()
|
||||||
),
|
).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -620,16 +599,11 @@ public class CellCommand {
|
|||||||
if (!cell.getBreachedPositions().isEmpty()) {
|
if (!cell.getBreachedPositions().isEmpty()) {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Breaches: " +
|
"command.tiedup.cell.info_breaches",
|
||||||
cell.getBreachedPositions().size() +
|
cell.getBreachedPositions().size(),
|
||||||
" (" +
|
String.format("%.1f", cell.getBreachPercentage() * 100)
|
||||||
String.format(
|
).withStyle(ChatFormatting.RED),
|
||||||
"%.1f",
|
|
||||||
cell.getBreachPercentage() * 100
|
|
||||||
) +
|
|
||||||
"%)"
|
|
||||||
),
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -637,19 +611,19 @@ public class CellCommand {
|
|||||||
// Features
|
// Features
|
||||||
if (!cell.getBeds().isEmpty()) {
|
if (!cell.getBeds().isEmpty()) {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("Beds: " + cell.getBeds().size()),
|
() -> Component.translatable("command.tiedup.cell.info_beds", cell.getBeds().size()).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (!cell.getAnchors().isEmpty()) {
|
if (!cell.getAnchors().isEmpty()) {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("Anchors: " + cell.getAnchors().size()),
|
() -> Component.translatable("command.tiedup.cell.info_anchors", cell.getAnchors().size()).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (!cell.getDoors().isEmpty()) {
|
if (!cell.getDoors().isEmpty()) {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("Doors: " + cell.getDoors().size()),
|
() -> Component.translatable("command.tiedup.cell.info_doors", cell.getDoors().size()).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -657,9 +631,9 @@ public class CellCommand {
|
|||||||
// Prisoners
|
// Prisoners
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Prisoners: " + cell.getPrisonerCount() + "/4"
|
"command.tiedup.cell.info_prisoners", cell.getPrisonerCount()
|
||||||
),
|
).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
for (UUID prisonerId : cell.getPrisonerIds()) {
|
for (UUID prisonerId : cell.getPrisonerIds()) {
|
||||||
@@ -670,7 +644,7 @@ public class CellCommand {
|
|||||||
String prisonerName =
|
String prisonerName =
|
||||||
prisoner != null ? prisoner.getName().getString() : "(offline)";
|
prisoner != null ? prisoner.getName().getString() : "(offline)";
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal(" - " + prisonerName),
|
() -> Component.literal(" - " + prisonerName).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.tiedup.remake.v2.bondage.CollarHelper;
|
|||||||
import com.tiedup.remake.util.teleport.Position;
|
import com.tiedup.remake.util.teleport.Position;
|
||||||
import com.tiedup.remake.util.teleport.TeleportHelper;
|
import com.tiedup.remake.util.teleport.TeleportHelper;
|
||||||
import com.tiedup.remake.v2.BodyRegionV2;
|
import com.tiedup.remake.v2.BodyRegionV2;
|
||||||
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.commands.CommandSourceStack;
|
import net.minecraft.commands.CommandSourceStack;
|
||||||
import net.minecraft.commands.Commands;
|
import net.minecraft.commands.Commands;
|
||||||
import net.minecraft.commands.arguments.EntityArgument;
|
import net.minecraft.commands.arguments.EntityArgument;
|
||||||
@@ -152,9 +153,7 @@ public class CollarCommand {
|
|||||||
ItemStack collar = getPlayerCollar(target);
|
ItemStack collar = getPlayerCollar(target);
|
||||||
if (collar.isEmpty()) {
|
if (collar.isEmpty()) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.collar_cmd.no_collar", target.getName().getString())
|
||||||
target.getName().getString() + " does not have a collar"
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -164,18 +163,16 @@ public class CollarCommand {
|
|||||||
CollarHelper.addOwner(collar, executor);
|
CollarHelper.addOwner(collar, executor);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aClaimed " +
|
"command.tiedup.collar_cmd.claimed", target.getName().getString()
|
||||||
target.getName().getString() +
|
).withStyle(ChatFormatting.GREEN),
|
||||||
"'s collar"
|
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
source.sendFailure(Component.literal("Failed to claim collar"));
|
source.sendFailure(Component.translatable("command.tiedup.collar_cmd.claim_failed"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -187,9 +184,7 @@ public class CollarCommand {
|
|||||||
ItemStack collar = getPlayerCollar(target);
|
ItemStack collar = getPlayerCollar(target);
|
||||||
if (collar.isEmpty()) {
|
if (collar.isEmpty()) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.collar_cmd.no_collar", target.getName().getString())
|
||||||
target.getName().getString() + " does not have a collar"
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -199,18 +194,16 @@ public class CollarCommand {
|
|||||||
CollarHelper.removeOwner(collar, executor.getUUID());
|
CollarHelper.removeOwner(collar, executor.getUUID());
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aRemoved your ownership from " +
|
"command.tiedup.collar_cmd.unclaimed", target.getName().getString()
|
||||||
target.getName().getString() +
|
).withStyle(ChatFormatting.GREEN),
|
||||||
"'s collar"
|
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
source.sendFailure(Component.literal("Failed to unclaim collar"));
|
source.sendFailure(Component.translatable("command.tiedup.collar_cmd.unclaim_failed"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -223,9 +216,7 @@ public class CollarCommand {
|
|||||||
ItemStack collar = getPlayerCollar(target);
|
ItemStack collar = getPlayerCollar(target);
|
||||||
if (collar.isEmpty()) {
|
if (collar.isEmpty()) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.collar_cmd.no_collar", target.getName().getString())
|
||||||
target.getName().getString() + " does not have a collar"
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -234,9 +225,9 @@ public class CollarCommand {
|
|||||||
CollarHelper.setNickname(collar, name);
|
CollarHelper.setNickname(collar, name);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aSet collar nickname to '" + name + "'"
|
"command.tiedup.collar_cmd.renamed", name
|
||||||
),
|
).withStyle(ChatFormatting.GREEN),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -254,9 +245,7 @@ public class CollarCommand {
|
|||||||
ItemStack collar = getPlayerCollar(target);
|
ItemStack collar = getPlayerCollar(target);
|
||||||
if (collar.isEmpty()) {
|
if (collar.isEmpty()) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.collar_cmd.no_collar", target.getName().getString())
|
||||||
target.getName().getString() + " does not have a collar"
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -265,13 +254,11 @@ public class CollarCommand {
|
|||||||
CollarHelper.addOwner(collar, owner);
|
CollarHelper.addOwner(collar, owner);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aAdded " +
|
"command.tiedup.collar_cmd.owner_added",
|
||||||
owner.getName().getString() +
|
owner.getName().getString(),
|
||||||
" as owner of " +
|
target.getName().getString()
|
||||||
target.getName().getString() +
|
).withStyle(ChatFormatting.GREEN),
|
||||||
"'s collar"
|
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -289,9 +276,7 @@ public class CollarCommand {
|
|||||||
ItemStack collar = getPlayerCollar(target);
|
ItemStack collar = getPlayerCollar(target);
|
||||||
if (collar.isEmpty()) {
|
if (collar.isEmpty()) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.collar_cmd.no_collar", target.getName().getString())
|
||||||
target.getName().getString() + " does not have a collar"
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -300,13 +285,11 @@ public class CollarCommand {
|
|||||||
CollarHelper.removeOwner(collar, owner.getUUID());
|
CollarHelper.removeOwner(collar, owner.getUUID());
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aRemoved " +
|
"command.tiedup.collar_cmd.owner_removed",
|
||||||
owner.getName().getString() +
|
owner.getName().getString(),
|
||||||
" as owner of " +
|
target.getName().getString()
|
||||||
target.getName().getString() +
|
).withStyle(ChatFormatting.GREEN),
|
||||||
"'s collar"
|
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -329,9 +312,7 @@ public class CollarCommand {
|
|||||||
ItemStack collar = getPlayerCollar(target);
|
ItemStack collar = getPlayerCollar(target);
|
||||||
if (collar.isEmpty()) {
|
if (collar.isEmpty()) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.collar_cmd.no_collar", target.getName().getString())
|
||||||
target.getName().getString() + " does not have a collar"
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -343,7 +324,7 @@ public class CollarCommand {
|
|||||||
|
|
||||||
if (cell == null) {
|
if (cell == null) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("Cell '" + cellName + "' not found")
|
Component.translatable("command.tiedup.collar_cmd.cell_not_found", cellName)
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -352,13 +333,11 @@ public class CollarCommand {
|
|||||||
CollarHelper.setCellId(collar, cell.getId());
|
CollarHelper.setCellId(collar, cell.getId());
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aAssigned cell '" +
|
"command.tiedup.collar_cmd.cell_assigned",
|
||||||
cellName +
|
cellName,
|
||||||
"' to " +
|
target.getName().getString()
|
||||||
target.getName().getString() +
|
).withStyle(ChatFormatting.GREEN),
|
||||||
"'s collar"
|
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -381,9 +360,7 @@ public class CollarCommand {
|
|||||||
ItemStack collar = getPlayerCollar(target);
|
ItemStack collar = getPlayerCollar(target);
|
||||||
if (collar.isEmpty()) {
|
if (collar.isEmpty()) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.collar_cmd.no_collar", target.getName().getString())
|
||||||
target.getName().getString() + " does not have a collar"
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -391,7 +368,7 @@ public class CollarCommand {
|
|||||||
if (CollarHelper.isCollar(collar)) {
|
if (CollarHelper.isCollar(collar)) {
|
||||||
if (!CollarHelper.hasCellAssigned(collar)) {
|
if (!CollarHelper.hasCellAssigned(collar)) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("No cell assigned to collar")
|
Component.translatable("command.tiedup.collar_cmd.no_cell_assigned")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -403,7 +380,7 @@ public class CollarCommand {
|
|||||||
|
|
||||||
if (cell == null) {
|
if (cell == null) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("Assigned cell no longer exists")
|
Component.translatable("command.tiedup.collar_cmd.cell_deleted")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -420,12 +397,11 @@ public class CollarCommand {
|
|||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aTeleported " +
|
"command.tiedup.collar_cmd.teleported",
|
||||||
target.getName().getString() +
|
target.getName().getString(),
|
||||||
" to cell at " +
|
|
||||||
cell.getCorePos().toShortString()
|
cell.getCorePos().toShortString()
|
||||||
),
|
).withStyle(ChatFormatting.GREEN),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -442,9 +418,7 @@ public class CollarCommand {
|
|||||||
ItemStack collar = getPlayerCollar(target);
|
ItemStack collar = getPlayerCollar(target);
|
||||||
if (collar.isEmpty()) {
|
if (collar.isEmpty()) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.collar_cmd.no_collar", target.getName().getString())
|
||||||
target.getName().getString() + " does not have a collar"
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -452,28 +426,23 @@ public class CollarCommand {
|
|||||||
if (CollarHelper.isCollar(collar)) {
|
if (CollarHelper.isCollar(collar)) {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§6=== Collar Info for " +
|
"command.tiedup.collar_cmd.info_header",
|
||||||
target.getName().getString() +
|
target.getName().getString()
|
||||||
" ==="
|
).withStyle(ChatFormatting.GOLD),
|
||||||
),
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
String nickname = CollarHelper.getNickname(collar);
|
String nickname = CollarHelper.getNickname(collar);
|
||||||
|
String nicknameDisplay = (nickname == null || nickname.isEmpty()) ? "None" : nickname;
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.collar_cmd.info_nickname", nicknameDisplay).withStyle(ChatFormatting.GRAY),
|
||||||
"§7Nickname: §f" +
|
|
||||||
(nickname == null || nickname.isEmpty() ? "None" : nickname)
|
|
||||||
),
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.collar_cmd.info_has_owner", String.valueOf(CollarHelper.hasOwner(collar))).withStyle(ChatFormatting.GRAY),
|
||||||
"§7Has Owner: §f" + CollarHelper.hasOwner(collar)
|
|
||||||
),
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
// Cell assignment
|
// Cell assignment
|
||||||
@@ -489,23 +458,22 @@ public class CollarCommand {
|
|||||||
: cellId.toString().substring(0, 8) + "...";
|
: cellId.toString().substring(0, 8) + "...";
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§7Assigned Cell: §a" +
|
"command.tiedup.collar_cmd.info_cell",
|
||||||
cellDisplay +
|
cellDisplay,
|
||||||
" §7@ " +
|
|
||||||
cell.getCorePos().toShortString()
|
cell.getCorePos().toShortString()
|
||||||
),
|
).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("§7Assigned Cell: §c(deleted)"),
|
() -> Component.translatable("command.tiedup.collar_cmd.info_cell_deleted").withStyle(ChatFormatting.RED),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("§7Assigned Cell: §fNone"),
|
() -> Component.translatable("command.tiedup.collar_cmd.info_cell_none").withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -514,9 +482,9 @@ public class CollarCommand {
|
|||||||
&& lockable.isLocked(collar);
|
&& lockable.isLocked(collar);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§7Locked: §f" + locked
|
"command.tiedup.collar_cmd.info_locked", String.valueOf(locked)
|
||||||
),
|
).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public final class CommandHelper {
|
|||||||
if (source.getEntity() instanceof ServerPlayer player) {
|
if (source.getEntity() instanceof ServerPlayer player) {
|
||||||
return Optional.of(player);
|
return Optional.of(player);
|
||||||
}
|
}
|
||||||
source.sendFailure(Component.literal("Must be a player"));
|
source.sendFailure(Component.translatable("command.tiedup.error.must_be_player"));
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.mojang.brigadier.context.CommandContext;
|
|||||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||||
import com.tiedup.remake.items.ModItems;
|
import com.tiedup.remake.items.ModItems;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.commands.CommandSourceStack;
|
import net.minecraft.commands.CommandSourceStack;
|
||||||
import net.minecraft.commands.Commands;
|
import net.minecraft.commands.Commands;
|
||||||
import net.minecraft.commands.arguments.EntityArgument;
|
import net.minecraft.commands.arguments.EntityArgument;
|
||||||
@@ -89,7 +90,7 @@ public class KeyCommand {
|
|||||||
|
|
||||||
ItemStack key = getHeldKey(player);
|
ItemStack key = getHeldKey(player);
|
||||||
if (key.isEmpty()) {
|
if (key.isEmpty()) {
|
||||||
source.sendFailure(Component.literal("You must hold a collar key"));
|
source.sendFailure(Component.translatable("command.tiedup.key.must_hold_key"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,7 +102,7 @@ public class KeyCommand {
|
|||||||
!tag.getUUID(TAG_OWNER).equals(player.getUUID())
|
!tag.getUUID(TAG_OWNER).equals(player.getUUID())
|
||||||
) {
|
) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("This key is already claimed by someone else")
|
Component.translatable("command.tiedup.key.already_claimed")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -110,7 +111,7 @@ public class KeyCommand {
|
|||||||
tag.putString(TAG_OWNER_NAME, player.getName().getString());
|
tag.putString(TAG_OWNER_NAME, player.getName().getString());
|
||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("§aYou have claimed this key"),
|
() -> Component.translatable("command.tiedup.key.claimed").withStyle(ChatFormatting.GREEN),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -129,19 +130,19 @@ public class KeyCommand {
|
|||||||
|
|
||||||
ItemStack key = getHeldKey(player);
|
ItemStack key = getHeldKey(player);
|
||||||
if (key.isEmpty()) {
|
if (key.isEmpty()) {
|
||||||
source.sendFailure(Component.literal("You must hold a collar key"));
|
source.sendFailure(Component.translatable("command.tiedup.key.must_hold_key"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
CompoundTag tag = key.getOrCreateTag();
|
CompoundTag tag = key.getOrCreateTag();
|
||||||
|
|
||||||
if (!tag.hasUUID(TAG_OWNER)) {
|
if (!tag.hasUUID(TAG_OWNER)) {
|
||||||
source.sendFailure(Component.literal("This key is not claimed"));
|
source.sendFailure(Component.translatable("command.tiedup.key.not_claimed"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!tag.getUUID(TAG_OWNER).equals(player.getUUID())) {
|
if (!tag.getUUID(TAG_OWNER).equals(player.getUUID())) {
|
||||||
source.sendFailure(Component.literal("You do not own this key"));
|
source.sendFailure(Component.translatable("command.tiedup.key.not_owner"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,7 +150,7 @@ public class KeyCommand {
|
|||||||
tag.remove(TAG_OWNER_NAME);
|
tag.remove(TAG_OWNER_NAME);
|
||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("§aYou have unclaimed this key"),
|
() -> Component.translatable("command.tiedup.key.unclaimed").withStyle(ChatFormatting.GREEN),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -170,7 +171,7 @@ public class KeyCommand {
|
|||||||
|
|
||||||
ItemStack key = getHeldKey(player);
|
ItemStack key = getHeldKey(player);
|
||||||
if (key.isEmpty()) {
|
if (key.isEmpty()) {
|
||||||
source.sendFailure(Component.literal("You must hold a collar key"));
|
source.sendFailure(Component.translatable("command.tiedup.key.must_hold_key"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -181,7 +182,7 @@ public class KeyCommand {
|
|||||||
tag.hasUUID(TAG_OWNER) &&
|
tag.hasUUID(TAG_OWNER) &&
|
||||||
!tag.getUUID(TAG_OWNER).equals(player.getUUID())
|
!tag.getUUID(TAG_OWNER).equals(player.getUUID())
|
||||||
) {
|
) {
|
||||||
source.sendFailure(Component.literal("You do not own this key"));
|
source.sendFailure(Component.translatable("command.tiedup.key.not_owner"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -190,9 +191,9 @@ public class KeyCommand {
|
|||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aAssigned key to " + target.getName().getString()
|
"command.tiedup.key.assigned", target.getName().getString()
|
||||||
),
|
).withStyle(ChatFormatting.GREEN),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -211,7 +212,7 @@ public class KeyCommand {
|
|||||||
|
|
||||||
ItemStack key = getHeldKey(player);
|
ItemStack key = getHeldKey(player);
|
||||||
if (key.isEmpty()) {
|
if (key.isEmpty()) {
|
||||||
source.sendFailure(Component.literal("You must hold a collar key"));
|
source.sendFailure(Component.translatable("command.tiedup.key.must_hold_key"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -222,7 +223,7 @@ public class KeyCommand {
|
|||||||
tag.hasUUID(TAG_OWNER) &&
|
tag.hasUUID(TAG_OWNER) &&
|
||||||
!tag.getUUID(TAG_OWNER).equals(player.getUUID())
|
!tag.getUUID(TAG_OWNER).equals(player.getUUID())
|
||||||
) {
|
) {
|
||||||
source.sendFailure(Component.literal("You do not own this key"));
|
source.sendFailure(Component.translatable("command.tiedup.key.not_owner"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -231,9 +232,9 @@ public class KeyCommand {
|
|||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aKey is now " + (isPublic ? "public" : "private")
|
isPublic ? "command.tiedup.key.now_public" : "command.tiedup.key.now_private"
|
||||||
),
|
).withStyle(ChatFormatting.GREEN),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -252,40 +253,40 @@ public class KeyCommand {
|
|||||||
|
|
||||||
ItemStack key = getHeldKey(player);
|
ItemStack key = getHeldKey(player);
|
||||||
if (key.isEmpty()) {
|
if (key.isEmpty()) {
|
||||||
source.sendFailure(Component.literal("You must hold a collar key"));
|
source.sendFailure(Component.translatable("command.tiedup.key.must_hold_key"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
CompoundTag tag = key.getOrCreateTag();
|
CompoundTag tag = key.getOrCreateTag();
|
||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("§6=== Key Info ==="),
|
() -> Component.translatable("command.tiedup.key.info_header").withStyle(ChatFormatting.GOLD),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
String ownerName = tag.getString(TAG_OWNER_NAME);
|
String ownerName = tag.getString(TAG_OWNER_NAME);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§7Owner: §f" +
|
"command.tiedup.key.info_owner",
|
||||||
(ownerName.isEmpty() ? "Not claimed" : ownerName)
|
ownerName.isEmpty() ? "Not claimed" : ownerName
|
||||||
),
|
).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
String targetName = tag.getString(TAG_TARGET_NAME);
|
String targetName = tag.getString(TAG_TARGET_NAME);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§7Assigned to: §f" +
|
"command.tiedup.key.info_assigned",
|
||||||
(targetName.isEmpty() ? "Not assigned" : targetName)
|
targetName.isEmpty() ? "Not assigned" : targetName
|
||||||
),
|
).withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
boolean isPublic = tag.getBoolean(TAG_PUBLIC);
|
boolean isPublic = tag.getBoolean(TAG_PUBLIC);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("§7Public: §f" + (isPublic ? "Yes" : "No")),
|
() -> Component.translatable("command.tiedup.key.info_public", isPublic ? "Yes" : "No").withStyle(ChatFormatting.GRAY),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.tiedup.remake.items.base.KnifeVariant;
|
|||||||
import com.tiedup.remake.v2.bondage.datadriven.DataDrivenBondageItem;
|
import com.tiedup.remake.v2.bondage.datadriven.DataDrivenBondageItem;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.commands.CommandSourceStack;
|
import net.minecraft.commands.CommandSourceStack;
|
||||||
import net.minecraft.commands.Commands;
|
import net.minecraft.commands.Commands;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
@@ -147,9 +148,9 @@ public class KidnapSetCommand {
|
|||||||
int finalGiven = given;
|
int finalGiven = given;
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aGave kidnap set (" + finalGiven + " item stacks)"
|
"command.tiedup.kidnapset.gave", finalGiven
|
||||||
),
|
).withStyle(ChatFormatting.GREEN),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -205,13 +206,11 @@ public class KidnapSetCommand {
|
|||||||
int finalReloaded = reloaded;
|
int finalReloaded = reloaded;
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aReloaded " +
|
"command.tiedup.kidnapreload.reloaded",
|
||||||
(type.equals("all") ? "all data files" : type) +
|
type.equals("all") ? "all data files" : type,
|
||||||
" (" +
|
finalReloaded
|
||||||
finalReloaded +
|
).withStyle(ChatFormatting.GREEN),
|
||||||
" files)"
|
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import net.minecraft.resources.ResourceLocation;
|
|||||||
import com.tiedup.remake.v2.BodyRegionV2;
|
import com.tiedup.remake.v2.BodyRegionV2;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.commands.CommandSourceStack;
|
import net.minecraft.commands.CommandSourceStack;
|
||||||
import net.minecraft.commands.Commands;
|
import net.minecraft.commands.Commands;
|
||||||
import net.minecraft.commands.arguments.EntityArgument;
|
import net.minecraft.commands.arguments.EntityArgument;
|
||||||
@@ -199,7 +200,7 @@ public class NPCCommand {
|
|||||||
z = player.getZ();
|
z = player.getZ();
|
||||||
} else {
|
} else {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("Must specify a player or be a player")
|
Component.translatable("command.tiedup.error.must_be_player")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -219,15 +220,15 @@ public class NPCCommand {
|
|||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aSpawned Kidnapper at " + formatPos(x, y, z)
|
"command.tiedup.npc.spawned_kidnapper", formatPos(x, y, z)
|
||||||
),
|
).withStyle(ChatFormatting.GREEN),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
source.sendFailure(Component.literal("Failed to spawn Kidnapper"));
|
source.sendFailure(Component.translatable("command.tiedup.npc.spawn_failed_kidnapper"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -245,11 +246,7 @@ public class NPCCommand {
|
|||||||
);
|
);
|
||||||
if (variant == null) {
|
if (variant == null) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.npc.unknown_variant", name)
|
||||||
"Unknown elite variant: " +
|
|
||||||
name +
|
|
||||||
". Available: suki, carol, athena, evelyn"
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -266,7 +263,7 @@ public class NPCCommand {
|
|||||||
z = player.getZ();
|
z = player.getZ();
|
||||||
} else {
|
} else {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("Must specify a player or be a player")
|
Component.translatable("command.tiedup.error.must_be_player")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -289,19 +286,16 @@ public class NPCCommand {
|
|||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aSpawned Elite Kidnapper '" +
|
"command.tiedup.npc.spawned_elite", variant.defaultName(), formatPos(x, y, z)
|
||||||
variant.defaultName() +
|
).withStyle(ChatFormatting.GREEN),
|
||||||
"' at " +
|
|
||||||
formatPos(x, y, z)
|
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("Failed to spawn Elite Kidnapper")
|
Component.translatable("command.tiedup.npc.spawn_failed_elite")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -325,7 +319,7 @@ public class NPCCommand {
|
|||||||
z = player.getZ();
|
z = player.getZ();
|
||||||
} else {
|
} else {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("Must specify a player or be a player")
|
Component.translatable("command.tiedup.error.must_be_player")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -346,16 +340,16 @@ public class NPCCommand {
|
|||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aSpawned Archer Kidnapper at " + formatPos(x, y, z)
|
"command.tiedup.npc.spawned_archer", formatPos(x, y, z)
|
||||||
),
|
).withStyle(ChatFormatting.GREEN),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("Failed to spawn Archer Kidnapper")
|
Component.translatable("command.tiedup.npc.spawn_failed_archer")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -379,7 +373,7 @@ public class NPCCommand {
|
|||||||
z = player.getZ();
|
z = player.getZ();
|
||||||
} else {
|
} else {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("Must specify a player or be a player")
|
Component.translatable("command.tiedup.error.must_be_player")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -399,15 +393,15 @@ public class NPCCommand {
|
|||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aSpawned Damsel at " + formatPos(x, y, z)
|
"command.tiedup.npc.spawned_damsel", formatPos(x, y, z)
|
||||||
),
|
).withStyle(ChatFormatting.GREEN),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
source.sendFailure(Component.literal("Failed to spawn Damsel"));
|
source.sendFailure(Component.translatable("command.tiedup.npc.spawn_failed_damsel"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -441,9 +435,9 @@ public class NPCCommand {
|
|||||||
int finalKilled = killed;
|
int finalKilled = killed;
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aKilled " + finalKilled + " mod NPCs in radius " + radius
|
"command.tiedup.npc.killed", finalKilled, radius
|
||||||
),
|
).withStyle(ChatFormatting.GREEN),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -491,7 +485,7 @@ public class NPCCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal("No mod NPC found within 10 blocks")
|
Component.translatable("command.tiedup.npc.no_npc_nearby")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -499,7 +493,7 @@ public class NPCCommand {
|
|||||||
if (npc.isTiedUp()) {
|
if (npc.isTiedUp()) {
|
||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(Component.literal("NPC is already tied up"));
|
.sendFailure(Component.translatable("command.tiedup.npc.already_tied"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -510,7 +504,7 @@ public class NPCCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() -> Component.literal("§aTied up " + npc.getKidnappedName()),
|
() -> Component.translatable("command.tiedup.npc.tied", npc.getKidnappedName()).withStyle(ChatFormatting.GREEN),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -522,7 +516,7 @@ public class NPCCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal("No mod NPC found within 10 blocks")
|
Component.translatable("command.tiedup.npc.no_npc_nearby")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -530,7 +524,7 @@ public class NPCCommand {
|
|||||||
if (npc.isGagged()) {
|
if (npc.isGagged()) {
|
||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(Component.literal("NPC is already gagged"));
|
.sendFailure(Component.translatable("command.tiedup.npc.already_gagged"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -541,7 +535,7 @@ public class NPCCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() -> Component.literal("§aGagged " + npc.getKidnappedName()),
|
() -> Component.translatable("command.tiedup.npc.gagged", npc.getKidnappedName()).withStyle(ChatFormatting.GREEN),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -555,7 +549,7 @@ public class NPCCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal("No mod NPC found within 10 blocks")
|
Component.translatable("command.tiedup.npc.no_npc_nearby")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -563,7 +557,7 @@ public class NPCCommand {
|
|||||||
if (npc.isBlindfolded()) {
|
if (npc.isBlindfolded()) {
|
||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(Component.literal("NPC is already blindfolded"));
|
.sendFailure(Component.translatable("command.tiedup.npc.already_blindfolded"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -575,9 +569,8 @@ public class NPCCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.npc.blindfolded", npc.getKidnappedName()
|
||||||
"§aBlindfolded " + npc.getKidnappedName()
|
).withStyle(ChatFormatting.GREEN),
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -589,7 +582,7 @@ public class NPCCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal("No mod NPC found within 10 blocks")
|
Component.translatable("command.tiedup.npc.no_npc_nearby")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -597,7 +590,7 @@ public class NPCCommand {
|
|||||||
if (npc.hasCollar()) {
|
if (npc.hasCollar()) {
|
||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(Component.literal("NPC already has a collar"));
|
.sendFailure(Component.translatable("command.tiedup.npc.already_collared"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -608,7 +601,7 @@ public class NPCCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() -> Component.literal("§aCollared " + npc.getKidnappedName()),
|
() -> Component.translatable("command.tiedup.npc.collared", npc.getKidnappedName()).withStyle(ChatFormatting.GREEN),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -620,7 +613,7 @@ public class NPCCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal("No mod NPC found within 10 blocks")
|
Component.translatable("command.tiedup.npc.no_npc_nearby")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -629,7 +622,7 @@ public class NPCCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() -> Component.literal("§aUntied " + npc.getKidnappedName()),
|
() -> Component.translatable("command.tiedup.npc.untied", npc.getKidnappedName()).withStyle(ChatFormatting.GREEN),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -643,7 +636,7 @@ public class NPCCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal("No mod NPC found within 10 blocks")
|
Component.translatable("command.tiedup.npc.no_npc_nearby")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -667,9 +660,9 @@ public class NPCCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§aFully restrained " + npc.getKidnappedName()
|
"command.tiedup.npc.fully_restrained", npc.getKidnappedName()
|
||||||
),
|
).withStyle(ChatFormatting.GREEN),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -683,7 +676,7 @@ public class NPCCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal("No mod NPC found within 10 blocks")
|
Component.translatable("command.tiedup.npc.no_npc_nearby")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -692,68 +685,67 @@ public class NPCCommand {
|
|||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"§6=== NPC State: " + npc.getKidnappedName() + " ==="
|
"command.tiedup.npc.state_header", npc.getKidnappedName()
|
||||||
),
|
).withStyle(ChatFormatting.GOLD),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
if (npc instanceof EntityDamsel damsel) {
|
if (npc instanceof EntityDamsel damsel) {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal("§eVariant: §f" + damsel.getVariantId()),
|
Component.translatable("command.tiedup.npc.state_variant", damsel.getVariantId()).withStyle(ChatFormatting.YELLOW),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.npc.state_slim_arms",
|
||||||
"§eSlim Arms: " +
|
Component.translatable(damsel.hasSlimArms() ? "command.tiedup.yes" : "command.tiedup.no")
|
||||||
(damsel.hasSlimArms() ? "§aYes" : "§7No")
|
).withStyle(ChatFormatting.YELLOW),
|
||||||
),
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.npc.state_tied",
|
||||||
"§eTied Up: " + (npc.isTiedUp() ? "§aYes" : "§7No")
|
Component.translatable(npc.isTiedUp() ? "command.tiedup.yes" : "command.tiedup.no")
|
||||||
),
|
).withStyle(ChatFormatting.YELLOW),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.npc.state_gagged",
|
||||||
"§eGagged: " + (npc.isGagged() ? "§aYes" : "§7No")
|
Component.translatable(npc.isGagged() ? "command.tiedup.yes" : "command.tiedup.no")
|
||||||
),
|
).withStyle(ChatFormatting.YELLOW),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.npc.state_blindfolded",
|
||||||
"§eBlindfolded: " + (npc.isBlindfolded() ? "§aYes" : "§7No")
|
Component.translatable(npc.isBlindfolded() ? "command.tiedup.yes" : "command.tiedup.no")
|
||||||
),
|
).withStyle(ChatFormatting.YELLOW),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.npc.state_collar",
|
||||||
"§eHas Collar: " + (npc.hasCollar() ? "§aYes" : "§7No")
|
Component.translatable(npc.hasCollar() ? "command.tiedup.yes" : "command.tiedup.no")
|
||||||
),
|
).withStyle(ChatFormatting.YELLOW),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.npc.state_earplugs",
|
||||||
"§eHas Earplugs: " + (npc.hasEarplugs() ? "§aYes" : "§7No")
|
Component.translatable(npc.hasEarplugs() ? "command.tiedup.yes" : "command.tiedup.no")
|
||||||
),
|
).withStyle(ChatFormatting.YELLOW),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.npc.state_captive",
|
||||||
"§eIs Captive: " + (npc.isCaptive() ? "§aYes" : "§7No")
|
Component.translatable(npc.isCaptive() ? "command.tiedup.yes" : "command.tiedup.no")
|
||||||
),
|
).withStyle(ChatFormatting.YELLOW),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ public class SocialCommand {
|
|||||||
ServerPlayer target = EntityArgument.getPlayer(context, "player");
|
ServerPlayer target = EntityArgument.getPlayer(context, "player");
|
||||||
|
|
||||||
if (player.getUUID().equals(target.getUUID())) {
|
if (player.getUUID().equals(target.getUUID())) {
|
||||||
source.sendFailure(Component.literal("You cannot block yourself"));
|
source.sendFailure(Component.translatable("command.tiedup.social.cannot_block_self"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,9 +170,7 @@ public class SocialCommand {
|
|||||||
|
|
||||||
if (data.isBlocked(player.getUUID(), target.getUUID())) {
|
if (data.isBlocked(player.getUUID(), target.getUUID())) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.social.already_blocked", target.getName().getString())
|
||||||
target.getName().getString() + " is already blocked"
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -180,7 +178,7 @@ public class SocialCommand {
|
|||||||
data.addBlock(player.getUUID(), target.getUUID());
|
data.addBlock(player.getUUID(), target.getUUID());
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal("§aBlocked " + target.getName().getString()),
|
Component.translatable("command.tiedup.social.blocked", target.getName().getString()).withStyle(ChatFormatting.GREEN),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -208,9 +206,7 @@ public class SocialCommand {
|
|||||||
|
|
||||||
if (!data.isBlocked(player.getUUID(), target.getUUID())) {
|
if (!data.isBlocked(player.getUUID(), target.getUUID())) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.social.not_blocked", target.getName().getString())
|
||||||
target.getName().getString() + " is not blocked"
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -218,9 +214,7 @@ public class SocialCommand {
|
|||||||
data.removeBlock(player.getUUID(), target.getUUID());
|
data.removeBlock(player.getUUID(), target.getUUID());
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.social.unblocked", target.getName().getString()).withStyle(ChatFormatting.GREEN),
|
||||||
"§aUnblocked " + target.getName().getString()
|
|
||||||
),
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -245,19 +239,13 @@ public class SocialCommand {
|
|||||||
if (blocked) {
|
if (blocked) {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.social.has_blocked_you", target.getName().getString()).withStyle(ChatFormatting.RED),
|
||||||
"§c" + target.getName().getString() + " has blocked you"
|
|
||||||
),
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.social.has_not_blocked_you", target.getName().getString()).withStyle(ChatFormatting.GREEN),
|
||||||
"§a" +
|
|
||||||
target.getName().getString() +
|
|
||||||
" has not blocked you"
|
|
||||||
),
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -300,11 +288,7 @@ public class SocialCommand {
|
|||||||
if (lastUse != null && now - lastUse < NORP_COOLDOWN_MS) {
|
if (lastUse != null && now - lastUse < NORP_COOLDOWN_MS) {
|
||||||
long remaining = (NORP_COOLDOWN_MS - (now - lastUse)) / 1000;
|
long remaining = (NORP_COOLDOWN_MS - (now - lastUse)) / 1000;
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.social.norp_cooldown", remaining)
|
||||||
"Please wait " +
|
|
||||||
remaining +
|
|
||||||
" seconds before using /norp again"
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -315,7 +299,7 @@ public class SocialCommand {
|
|||||||
// Broadcast to all players
|
// Broadcast to all players
|
||||||
Component message = Component.literal("")
|
Component message = Component.literal("")
|
||||||
.append(
|
.append(
|
||||||
Component.literal("[NoRP] ").withStyle(
|
Component.translatable("command.tiedup.social.norp_prefix").withStyle(
|
||||||
ChatFormatting.RED,
|
ChatFormatting.RED,
|
||||||
ChatFormatting.BOLD
|
ChatFormatting.BOLD
|
||||||
)
|
)
|
||||||
@@ -326,8 +310,8 @@ public class SocialCommand {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
.append(
|
.append(
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
" has announced non-consent to current RP"
|
"command.tiedup.social.norp_announcement"
|
||||||
).withStyle(ChatFormatting.RED)
|
).withStyle(ChatFormatting.RED)
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -411,7 +395,7 @@ public class SocialCommand {
|
|||||||
SocialData data = SocialData.get(sender.serverLevel());
|
SocialData data = SocialData.get(sender.serverLevel());
|
||||||
if (data.isBlocked(target.getUUID(), sender.getUUID())) {
|
if (data.isBlocked(target.getUUID(), sender.getUUID())) {
|
||||||
source.sendFailure(
|
source.sendFailure(
|
||||||
Component.literal("This player has blocked you")
|
Component.translatable("command.tiedup.social.pm_blocked")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -419,8 +403,8 @@ public class SocialCommand {
|
|||||||
// Send to target (earplug-aware)
|
// Send to target (earplug-aware)
|
||||||
Component toTarget = Component.literal("")
|
Component toTarget = Component.literal("")
|
||||||
.append(
|
.append(
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"[PM from " + sender.getName().getString() + "] "
|
"command.tiedup.social.pm_from", sender.getName().getString()
|
||||||
).withStyle(ChatFormatting.LIGHT_PURPLE)
|
).withStyle(ChatFormatting.LIGHT_PURPLE)
|
||||||
)
|
)
|
||||||
.append(Component.literal(message).withStyle(ChatFormatting.WHITE));
|
.append(Component.literal(message).withStyle(ChatFormatting.WHITE));
|
||||||
@@ -429,8 +413,8 @@ public class SocialCommand {
|
|||||||
// Confirm to sender (always show - they're the one sending)
|
// Confirm to sender (always show - they're the one sending)
|
||||||
Component toSender = Component.literal("")
|
Component toSender = Component.literal("")
|
||||||
.append(
|
.append(
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"[PM to " + target.getName().getString() + "] "
|
"command.tiedup.social.pm_to", target.getName().getString()
|
||||||
).withStyle(ChatFormatting.GRAY)
|
).withStyle(ChatFormatting.GRAY)
|
||||||
)
|
)
|
||||||
.append(Component.literal(message).withStyle(ChatFormatting.WHITE));
|
.append(Component.literal(message).withStyle(ChatFormatting.WHITE));
|
||||||
@@ -458,15 +442,13 @@ public class SocialCommand {
|
|||||||
|
|
||||||
if (distance == 0) {
|
if (distance == 0) {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("§aTalk area disabled (global chat)"),
|
() -> Component.translatable("command.tiedup.social.talkarea_disabled").withStyle(ChatFormatting.GREEN),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.social.talkarea_set", distance).withStyle(ChatFormatting.GREEN),
|
||||||
"§aTalk area set to " + distance + " blocks"
|
|
||||||
),
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -490,12 +472,12 @@ public class SocialCommand {
|
|||||||
if (talkArea == 0) {
|
if (talkArea == 0) {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal("Talk area: §edisabled §7(global chat)"),
|
Component.translatable("command.tiedup.social.talkinfo_disabled").withStyle(ChatFormatting.YELLOW),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
source.sendSuccess(
|
source.sendSuccess(
|
||||||
() -> Component.literal("Talk area: §e" + talkArea + " blocks"),
|
() -> Component.translatable("command.tiedup.social.talkinfo_distance", talkArea).withStyle(ChatFormatting.YELLOW),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
|||||||
import com.tiedup.remake.commands.CommandHelper;
|
import com.tiedup.remake.commands.CommandHelper;
|
||||||
import com.tiedup.remake.prison.PrisonerManager;
|
import com.tiedup.remake.prison.PrisonerManager;
|
||||||
import com.tiedup.remake.prison.RansomRecord;
|
import com.tiedup.remake.prison.RansomRecord;
|
||||||
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.commands.CommandSourceStack;
|
import net.minecraft.commands.CommandSourceStack;
|
||||||
import net.minecraft.commands.Commands;
|
import net.minecraft.commands.Commands;
|
||||||
import net.minecraft.commands.arguments.EntityArgument;
|
import net.minecraft.commands.arguments.EntityArgument;
|
||||||
@@ -77,9 +78,8 @@ public class DebtSubCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
target.getName().getString() +
|
"command.tiedup.debt.no_record", target.getName().getString()
|
||||||
" has no debt record."
|
|
||||||
),
|
),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
@@ -94,16 +94,11 @@ public class DebtSubCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
target.getName().getString() +
|
"command.tiedup.debt.show",
|
||||||
" \u2014 Debt: " +
|
target.getName().getString(),
|
||||||
total +
|
total, paid, remaining
|
||||||
" | Paid: " +
|
).withStyle(ChatFormatting.YELLOW),
|
||||||
paid +
|
|
||||||
" | Remaining: " +
|
|
||||||
remaining +
|
|
||||||
" emeralds"
|
|
||||||
),
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -121,9 +116,7 @@ public class DebtSubCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.debt.no_record", target.getName().getString())
|
||||||
target.getName().getString() + " has no debt record."
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -133,13 +126,10 @@ public class DebtSubCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Set " +
|
"command.tiedup.debt.set",
|
||||||
target.getName().getString() +
|
target.getName().getString(), amount
|
||||||
"'s total debt to " +
|
).withStyle(ChatFormatting.GREEN),
|
||||||
amount +
|
|
||||||
" emeralds."
|
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -157,9 +147,7 @@ public class DebtSubCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.debt.no_record", target.getName().getString())
|
||||||
target.getName().getString() + " has no debt record."
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -169,14 +157,10 @@ public class DebtSubCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Added " +
|
"command.tiedup.debt.added",
|
||||||
amount +
|
amount, target.getName().getString(), ransom.getRemainingDebt()
|
||||||
" emeralds to " +
|
).withStyle(ChatFormatting.GREEN),
|
||||||
target.getName().getString() +
|
|
||||||
"'s debt. Remaining: " +
|
|
||||||
ransom.getRemainingDebt()
|
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -194,9 +178,7 @@ public class DebtSubCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal(
|
Component.translatable("command.tiedup.debt.no_record", target.getName().getString())
|
||||||
target.getName().getString() + " has no debt record."
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -207,15 +189,10 @@ public class DebtSubCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Removed " +
|
paid ? "command.tiedup.debt.removed_paid" : "command.tiedup.debt.removed",
|
||||||
amount +
|
amount, target.getName().getString(), ransom.getRemainingDebt()
|
||||||
" emeralds from " +
|
).withStyle(ChatFormatting.GREEN),
|
||||||
target.getName().getString() +
|
|
||||||
"'s debt. Remaining: " +
|
|
||||||
ransom.getRemainingDebt() +
|
|
||||||
(paid ? " (PAID OFF!)" : "")
|
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
|||||||
import com.tiedup.remake.cells.ConfiscatedInventoryRegistry;
|
import com.tiedup.remake.cells.ConfiscatedInventoryRegistry;
|
||||||
import com.tiedup.remake.commands.CommandHelper;
|
import com.tiedup.remake.commands.CommandHelper;
|
||||||
import com.tiedup.remake.core.SystemMessageManager;
|
import com.tiedup.remake.core.SystemMessageManager;
|
||||||
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.commands.CommandSourceStack;
|
import net.minecraft.commands.CommandSourceStack;
|
||||||
import net.minecraft.commands.Commands;
|
import net.minecraft.commands.Commands;
|
||||||
import net.minecraft.commands.arguments.EntityArgument;
|
import net.minecraft.commands.arguments.EntityArgument;
|
||||||
@@ -56,9 +57,8 @@ public class InventorySubCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
targetPlayer.getName().getString() +
|
"command.tiedup.inventory.no_confiscated", targetPlayer.getName().getString()
|
||||||
" has no confiscated inventory to restore"
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -71,10 +71,9 @@ public class InventorySubCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"\u00a7aRestored confiscated inventory to " +
|
"command.tiedup.inventory.restored", targetPlayer.getName().getString()
|
||||||
targetPlayer.getName().getString()
|
).withStyle(ChatFormatting.GREEN),
|
||||||
),
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
SystemMessageManager.sendToPlayer(
|
SystemMessageManager.sendToPlayer(
|
||||||
@@ -88,9 +87,8 @@ public class InventorySubCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Failed to restore inventory for " +
|
"command.tiedup.inventory.restore_failed", targetPlayer.getName().getString()
|
||||||
targetPlayer.getName().getString()
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ public class MasterTestSubCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal("Failed to create Master entity")
|
Component.translatable("command.tiedup.master.spawn_failed")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -108,10 +108,8 @@ public class MasterTestSubCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Spawned Master '" +
|
"command.tiedup.master.spawned", finalName
|
||||||
finalName +
|
|
||||||
"' \u2014 you are now their pet."
|
|
||||||
),
|
),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
@@ -133,7 +131,7 @@ public class MasterTestSubCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal("No Master NPC found within 20 blocks")
|
Component.translatable("command.tiedup.master.no_master_nearby")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -157,8 +155,8 @@ public class MasterTestSubCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Forced " + finalName + " into HUMAN_CHAIR state"
|
"command.tiedup.master.forced_state", finalName, "HUMAN_CHAIR"
|
||||||
),
|
),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
@@ -183,7 +181,7 @@ public class MasterTestSubCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal("Unknown MasterState: " + taskName)
|
Component.translatable("command.tiedup.master.unknown_state", taskName)
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -193,7 +191,7 @@ public class MasterTestSubCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendFailure(
|
.sendFailure(
|
||||||
Component.literal("No Master NPC found within 20 blocks")
|
Component.translatable("command.tiedup.master.no_master_nearby")
|
||||||
);
|
);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -217,12 +215,8 @@ public class MasterTestSubCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Forced " +
|
"command.tiedup.master.forced_state", finalName, targetState.name()
|
||||||
finalName +
|
|
||||||
" into " +
|
|
||||||
targetState.name() +
|
|
||||||
" state"
|
|
||||||
),
|
),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -87,8 +87,8 @@ public class TestAnimSubCommand {
|
|||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() ->
|
() ->
|
||||||
Component.literal(
|
Component.translatable(
|
||||||
"Playing animation '" + anim + "' on " + name
|
"command.tiedup.testanim.playing", anim, name
|
||||||
),
|
),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
@@ -116,7 +116,7 @@ public class TestAnimSubCommand {
|
|||||||
context
|
context
|
||||||
.getSource()
|
.getSource()
|
||||||
.sendSuccess(
|
.sendSuccess(
|
||||||
() -> Component.literal("Stopped animation on " + name),
|
() -> Component.translatable("command.tiedup.testanim.stopped", name),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -810,5 +810,157 @@
|
|||||||
"command.tiedup.accessory.fully_restrained": "%1$s has been fully restrained (%2$s items applied)",
|
"command.tiedup.accessory.fully_restrained": "%1$s has been fully restrained (%2$s items applied)",
|
||||||
"command.tiedup.accessory.adjust_invalid_type": "Invalid type. Use: gag, blindfold, or all",
|
"command.tiedup.accessory.adjust_invalid_type": "Invalid type. Use: gag, blindfold, or all",
|
||||||
"command.tiedup.accessory.nothing_to_adjust": "%1$s has no %2$s to adjust",
|
"command.tiedup.accessory.nothing_to_adjust": "%1$s has no %2$s to adjust",
|
||||||
"command.tiedup.accessory.adjusted": "Adjusted %1$s for %2$s to %3$s pixels"
|
"command.tiedup.accessory.adjusted": "Adjusted %1$s for %2$s to %3$s pixels",
|
||||||
|
|
||||||
|
"command.tiedup.error.must_be_player": "Must be a player",
|
||||||
|
"command.tiedup.yes": "Yes",
|
||||||
|
"command.tiedup.no": "No",
|
||||||
|
|
||||||
|
"command.tiedup.npc.spawned_kidnapper": "Spawned Kidnapper at %1$s",
|
||||||
|
"command.tiedup.npc.spawned_elite": "Spawned Elite Kidnapper '%1$s' at %2$s",
|
||||||
|
"command.tiedup.npc.spawned_archer": "Spawned Archer Kidnapper at %1$s",
|
||||||
|
"command.tiedup.npc.spawned_damsel": "Spawned Damsel at %1$s",
|
||||||
|
"command.tiedup.npc.spawn_failed_kidnapper": "Failed to spawn Kidnapper",
|
||||||
|
"command.tiedup.npc.spawn_failed_elite": "Failed to spawn Elite Kidnapper",
|
||||||
|
"command.tiedup.npc.spawn_failed_archer": "Failed to spawn Archer Kidnapper",
|
||||||
|
"command.tiedup.npc.spawn_failed_damsel": "Failed to spawn Damsel",
|
||||||
|
"command.tiedup.npc.unknown_variant": "Unknown elite variant: %1$s. Available: suki, carol, athena, evelyn",
|
||||||
|
"command.tiedup.npc.killed": "Killed %1$s mod NPCs in radius %2$s",
|
||||||
|
"command.tiedup.npc.no_npc_nearby": "No mod NPC found within 10 blocks",
|
||||||
|
"command.tiedup.npc.already_tied": "NPC is already tied up",
|
||||||
|
"command.tiedup.npc.tied": "Tied up %1$s",
|
||||||
|
"command.tiedup.npc.already_gagged": "NPC is already gagged",
|
||||||
|
"command.tiedup.npc.gagged": "Gagged %1$s",
|
||||||
|
"command.tiedup.npc.already_blindfolded": "NPC is already blindfolded",
|
||||||
|
"command.tiedup.npc.blindfolded": "Blindfolded %1$s",
|
||||||
|
"command.tiedup.npc.already_collared": "NPC already has a collar",
|
||||||
|
"command.tiedup.npc.collared": "Collared %1$s",
|
||||||
|
"command.tiedup.npc.untied": "Untied %1$s",
|
||||||
|
"command.tiedup.npc.fully_restrained": "Fully restrained %1$s",
|
||||||
|
"command.tiedup.npc.state_header": "=== NPC State: %1$s ===",
|
||||||
|
"command.tiedup.npc.state_variant": "Variant: %1$s",
|
||||||
|
"command.tiedup.npc.state_slim_arms": "Slim Arms: %1$s",
|
||||||
|
"command.tiedup.npc.state_tied": "Tied Up: %1$s",
|
||||||
|
"command.tiedup.npc.state_gagged": "Gagged: %1$s",
|
||||||
|
"command.tiedup.npc.state_blindfolded": "Blindfolded: %1$s",
|
||||||
|
"command.tiedup.npc.state_collar": "Has Collar: %1$s",
|
||||||
|
"command.tiedup.npc.state_earplugs": "Has Earplugs: %1$s",
|
||||||
|
"command.tiedup.npc.state_captive": "Is Captive: %1$s",
|
||||||
|
|
||||||
|
"command.tiedup.cell.no_selection": "No cell selected. Use the Admin Wand on a Cell Core first.",
|
||||||
|
"command.tiedup.cell.no_longer_exists": "Selected cell no longer exists",
|
||||||
|
"command.tiedup.cell.name_exists": "Cell name '%1$s' already exists",
|
||||||
|
"command.tiedup.cell.named": "Named cell '%1$s' and linked to you",
|
||||||
|
"command.tiedup.cell.none_registered": "No cells registered",
|
||||||
|
"command.tiedup.cell.list_header": "=== Cells (%1$s) ===",
|
||||||
|
"command.tiedup.cell.no_cells_for_owner": "%1$s has no cells",
|
||||||
|
"command.tiedup.cell.list_owner_header": "=== Cells owned by %1$s (%2$s) ===",
|
||||||
|
"command.tiedup.cell.not_found": "Cell '%1$s' not found",
|
||||||
|
"command.tiedup.cell.deleted": "Deleted cell '%1$s'",
|
||||||
|
"command.tiedup.cell.reset_spawns": "Reset %1$s spawn markers (found %2$s total spawn markers in %3$s block radius)",
|
||||||
|
"command.tiedup.cell.reset_spawns_hint": "You can now save the structure - NPCs will spawn when it's placed.",
|
||||||
|
"command.tiedup.cell.info_header": "=== Cell: %1$s ===",
|
||||||
|
"command.tiedup.cell.info_id": "ID: %1$s",
|
||||||
|
"command.tiedup.cell.info_state": "State: %1$s",
|
||||||
|
"command.tiedup.cell.info_core_pos": "Core Position: %1$s",
|
||||||
|
"command.tiedup.cell.info_spawn_point": "Spawn Point: %1$s",
|
||||||
|
"command.tiedup.cell.info_owner": "Owner: %1$s (%2$s)",
|
||||||
|
"command.tiedup.cell.info_owner_world": "Owner: (world-generated)",
|
||||||
|
"command.tiedup.cell.info_interior": "Interior blocks: %1$s",
|
||||||
|
"command.tiedup.cell.info_walls": "Wall blocks: %1$s",
|
||||||
|
"command.tiedup.cell.info_breaches": "Breaches: %1$s (%2$s%%)",
|
||||||
|
"command.tiedup.cell.info_beds": "Beds: %1$s",
|
||||||
|
"command.tiedup.cell.info_anchors": "Anchors: %1$s",
|
||||||
|
"command.tiedup.cell.info_doors": "Doors: %1$s",
|
||||||
|
"command.tiedup.cell.info_prisoners": "Prisoners: %1$s/4",
|
||||||
|
|
||||||
|
"command.tiedup.social.cannot_block_self": "You cannot block yourself",
|
||||||
|
"command.tiedup.social.already_blocked": "%1$s is already blocked",
|
||||||
|
"command.tiedup.social.blocked": "Blocked %1$s",
|
||||||
|
"command.tiedup.social.not_blocked": "%1$s is not blocked",
|
||||||
|
"command.tiedup.social.unblocked": "Unblocked %1$s",
|
||||||
|
"command.tiedup.social.has_blocked_you": "%1$s has blocked you",
|
||||||
|
"command.tiedup.social.has_not_blocked_you": "%1$s has not blocked you",
|
||||||
|
"command.tiedup.social.norp_cooldown": "Please wait %1$s seconds before using /norp again",
|
||||||
|
"command.tiedup.social.norp_prefix": "[NoRP] ",
|
||||||
|
"command.tiedup.social.norp_announcement": " has announced non-consent to current RP",
|
||||||
|
"command.tiedup.social.pm_blocked": "This player has blocked you",
|
||||||
|
"command.tiedup.social.pm_from": "[PM from %1$s] ",
|
||||||
|
"command.tiedup.social.pm_to": "[PM to %1$s] ",
|
||||||
|
"command.tiedup.social.talkarea_disabled": "Talk area disabled (global chat)",
|
||||||
|
"command.tiedup.social.talkarea_set": "Talk area set to %1$s blocks",
|
||||||
|
"command.tiedup.social.talkinfo_disabled": "Talk area: disabled (global chat)",
|
||||||
|
"command.tiedup.social.talkinfo_distance": "Talk area: %1$s blocks",
|
||||||
|
|
||||||
|
"command.tiedup.collar_cmd.no_collar": "%1$s does not have a collar",
|
||||||
|
"command.tiedup.collar_cmd.claimed": "Claimed %1$s's collar",
|
||||||
|
"command.tiedup.collar_cmd.claim_failed": "Failed to claim collar",
|
||||||
|
"command.tiedup.collar_cmd.unclaimed": "Removed your ownership from %1$s's collar",
|
||||||
|
"command.tiedup.collar_cmd.unclaim_failed": "Failed to unclaim collar",
|
||||||
|
"command.tiedup.collar_cmd.renamed": "Set collar nickname to '%1$s'",
|
||||||
|
"command.tiedup.collar_cmd.owner_added": "Added %1$s as owner of %2$s's collar",
|
||||||
|
"command.tiedup.collar_cmd.owner_removed": "Removed %1$s as owner of %2$s's collar",
|
||||||
|
"command.tiedup.collar_cmd.cell_not_found": "Cell '%1$s' not found",
|
||||||
|
"command.tiedup.collar_cmd.cell_assigned": "Assigned cell '%1$s' to %2$s's collar",
|
||||||
|
"command.tiedup.collar_cmd.no_cell_assigned": "No cell assigned to collar",
|
||||||
|
"command.tiedup.collar_cmd.cell_deleted": "Assigned cell no longer exists",
|
||||||
|
"command.tiedup.collar_cmd.teleported": "Teleported %1$s to cell at %2$s",
|
||||||
|
"command.tiedup.collar_cmd.info_header": "=== Collar Info for %1$s ===",
|
||||||
|
"command.tiedup.collar_cmd.info_nickname": "Nickname: %1$s",
|
||||||
|
"command.tiedup.collar_cmd.info_has_owner": "Has Owner: %1$s",
|
||||||
|
"command.tiedup.collar_cmd.info_cell": "Assigned Cell: %1$s @ %2$s",
|
||||||
|
"command.tiedup.collar_cmd.info_cell_deleted": "Assigned Cell: (deleted)",
|
||||||
|
"command.tiedup.collar_cmd.info_cell_none": "Assigned Cell: None",
|
||||||
|
"command.tiedup.collar_cmd.info_locked": "Locked: %1$s",
|
||||||
|
|
||||||
|
"command.tiedup.key.must_hold_key": "You must hold a collar key",
|
||||||
|
"command.tiedup.key.already_claimed": "This key is already claimed by someone else",
|
||||||
|
"command.tiedup.key.claimed": "You have claimed this key",
|
||||||
|
"command.tiedup.key.not_claimed": "This key is not claimed",
|
||||||
|
"command.tiedup.key.not_owner": "You do not own this key",
|
||||||
|
"command.tiedup.key.unclaimed": "You have unclaimed this key",
|
||||||
|
"command.tiedup.key.assigned": "Assigned key to %1$s",
|
||||||
|
"command.tiedup.key.now_public": "Key is now public",
|
||||||
|
"command.tiedup.key.now_private": "Key is now private",
|
||||||
|
"command.tiedup.key.info_header": "=== Key Info ===",
|
||||||
|
"command.tiedup.key.info_owner": "Owner: %1$s",
|
||||||
|
"command.tiedup.key.info_assigned": "Assigned to: %1$s",
|
||||||
|
"command.tiedup.key.info_public": "Public: %1$s",
|
||||||
|
|
||||||
|
"command.tiedup.bounty.cannot_self": "You cannot put a bounty on yourself!",
|
||||||
|
"command.tiedup.bounty.tied_up": "You cannot create bounties while tied up!",
|
||||||
|
"command.tiedup.bounty.max_reached": "Maximum number (%1$s) of active bounties reached!",
|
||||||
|
"command.tiedup.bounty.must_hold_item": "You must hold an item as the reward!",
|
||||||
|
"command.tiedup.bounty.created": "Bounty created on %1$s!",
|
||||||
|
"command.tiedup.bounty.broadcast": "[Bounty] %1$s has put a bounty on %2$s!",
|
||||||
|
|
||||||
|
"command.tiedup.kidnapset.gave": "Gave kidnap set (%1$s item stacks)",
|
||||||
|
"command.tiedup.kidnapreload.reloaded": "Reloaded %1$s (%2$s files)",
|
||||||
|
|
||||||
|
"command.tiedup.debug.prisoner_header": "=== Captivity Debug Info ===",
|
||||||
|
"command.tiedup.debug.error": "Error: %1$s",
|
||||||
|
"command.tiedup.debug.validate_checking": "Checking captivity system...",
|
||||||
|
"command.tiedup.debug.repair_simplified": "Repair functionality has been simplified with the new PrisonerManager system.",
|
||||||
|
"command.tiedup.debug.repair_auto": "The new system maintains consistency automatically.",
|
||||||
|
"command.tiedup.debug.camp_not_found": "No camp found with ID prefix: %1$s",
|
||||||
|
|
||||||
|
"command.tiedup.inventory.no_confiscated": "%1$s has no confiscated inventory to restore",
|
||||||
|
"command.tiedup.inventory.restored": "Restored confiscated inventory to %1$s",
|
||||||
|
"command.tiedup.inventory.restore_failed": "Failed to restore inventory for %1$s",
|
||||||
|
|
||||||
|
"command.tiedup.testanim.playing": "Playing animation '%1$s' on %2$s",
|
||||||
|
"command.tiedup.testanim.stopped": "Stopped animation on %1$s",
|
||||||
|
|
||||||
|
"command.tiedup.master.spawn_failed": "Failed to create Master entity",
|
||||||
|
"command.tiedup.master.spawned": "Spawned Master '%1$s' — you are now their pet.",
|
||||||
|
"command.tiedup.master.no_master_nearby": "No Master NPC found within 20 blocks",
|
||||||
|
"command.tiedup.master.forced_state": "Forced %1$s into %2$s state",
|
||||||
|
"command.tiedup.master.unknown_state": "Unknown MasterState: %1$s",
|
||||||
|
|
||||||
|
"command.tiedup.debt.no_record": "%1$s has no debt record.",
|
||||||
|
"command.tiedup.debt.show": "%1$s — Debt: %2$s | Paid: %3$s | Remaining: %4$s emeralds",
|
||||||
|
"command.tiedup.debt.set": "Set %1$s's total debt to %2$s emeralds.",
|
||||||
|
"command.tiedup.debt.added": "Added %1$s emeralds to %2$s's debt. Remaining: %3$s",
|
||||||
|
"command.tiedup.debt.removed": "Removed %1$s emeralds from %2$s's debt. Remaining: %3$s",
|
||||||
|
"command.tiedup.debt.removed_paid": "Removed %1$s emeralds from %2$s's debt. Remaining: %3$s (PAID OFF!)"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user