Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions src/WorldEdit/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,11 +154,12 @@

## 更新日志

```
v2026.07.20
### v2026.08.08
- i18n预备

### v2026.07.20
- 适配 TShock 6.1.0 与 Terraria 1.4.5.6
- 完善 WorldEdit 指令、权限和配置文档
```

## 反馈

Expand Down
24 changes: 12 additions & 12 deletions src/WorldEdit/WorldEdit.Commands/Activate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public override void Execute()
}
}
}
emptyObjectTypes += ReportActivation("signs", activatedCount, failedCount);
emptyObjectTypes += ReportActivation(GetString("signs"), activatedCount, failedCount);
}

if (_action == 255 || _action == 1)
Expand All @@ -72,7 +72,7 @@ public override void Execute()
}
}
}
emptyObjectTypes += ReportActivation("chests", activatedCount, failedCount);
emptyObjectTypes += ReportActivation(GetString("chests"), activatedCount, failedCount);
}

if (_action == 255 || _action == 2)
Expand All @@ -97,7 +97,7 @@ public override void Execute()
}
}
}
emptyObjectTypes += ReportActivation("item frames", activatedCount, failedCount);
emptyObjectTypes += ReportActivation(GetString("item frames"), activatedCount, failedCount);
}

if (_action == 255 || _action == 3)
Expand All @@ -124,19 +124,19 @@ public override void Execute()
activatedCount++;
}
}
emptyObjectTypes += ReportActivation("logic sensors", activatedCount, failedCount);
emptyObjectTypes += ReportActivation(GetString("logic sensors"), activatedCount, failedCount);
}

emptyObjectTypes += ActivateTileEntities(4, 378, 36, TETrainingDummy.Find, TETrainingDummy.Place, "target dummies");
emptyObjectTypes += ActivateTileEntities(5, 471, 54, TEWeaponsRack.Find, TEWeaponsRack.Place, "weapon racks");
emptyObjectTypes += ActivateTileEntities(6, 597, 54, TETeleportationPylon.Find, TETeleportationPylon.Place, "pylons");
emptyObjectTypes += ActivateTileEntities(7, 470, 36, TEDisplayDoll.Find, TEDisplayDoll.Place, "mannequins");
emptyObjectTypes += ActivateTileEntities(8, 475, 54, TEHatRack.Find, TEHatRack.Place, "hat racks");
emptyObjectTypes += ActivateTileEntities(9, 520, null, TEFoodPlatter.Find, TEFoodPlatter.Place, "food plates");
emptyObjectTypes += ActivateTileEntities(4, 378, 36, TETrainingDummy.Find, TETrainingDummy.Place, GetString("target dummies"));
emptyObjectTypes += ActivateTileEntities(5, 471, 54, TEWeaponsRack.Find, TEWeaponsRack.Place, GetString("weapon racks"));
emptyObjectTypes += ActivateTileEntities(6, 597, 54, TETeleportationPylon.Find, TETeleportationPylon.Place, GetString("pylons"));
emptyObjectTypes += ActivateTileEntities(7, 470, 36, TEDisplayDoll.Find, TEDisplayDoll.Place, GetString("mannequins"));
emptyObjectTypes += ActivateTileEntities(8, 475, 54, TEHatRack.Find, TEHatRack.Place, GetString("hat racks"));
emptyObjectTypes += ActivateTileEntities(9, 520, null, TEFoodPlatter.Find, TEFoodPlatter.Place, GetString("food plates"));

if (emptyObjectTypes == 10)
{
plr.SendSuccessMessage("There are no objects to activate in this area.");
plr.SendSuccessMessage(GetString("There are no objects to activate in this area."));
}

ResetSection();
Expand Down Expand Up @@ -182,7 +182,7 @@ private int ReportActivation(string objectName, int activatedCount, int failedCo
return 1;
}

plr.SendSuccessMessage("Activated {0}. ({1}){2}", objectName, activatedCount, failedCount > 0 ? $" Failed to activate {objectName}. ({failedCount})" : string.Empty);
plr.SendSuccessMessage(GetString("Activated {0}. ({1}){2}"), objectName, activatedCount, failedCount > 0 ? GetString(" Failed to activate {0}. ({1})", objectName, failedCount) : string.Empty);
return 0;
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Actuator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,6 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("{0} actuators. ({1})", _remove ? "Removed" : "Set", changedActuatorCount);
plr.SendSuccessMessage(GetString("{0} actuators. ({1})"), _remove ? GetString("Removed") : GetString("Set"), changedActuatorCount);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Biome.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,6 @@ public override void Execute()
}
ResetSection();
}
plr.SendSuccessMessage("Converted biomes. ({0})", convertedTileCount);
plr.SendSuccessMessage(GetString("Converted biomes. ({0})"), convertedTileCount);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Copy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ public override void Execute()
{
string clipboardPath = Tools.GetClipboardPath(plr.Account.ID);
Tools.SaveWorldSection(x, y, x2, y2, save ?? clipboardPath);
plr.SendSuccessMessage("Copied selection to {0}.", (save == null) ? "clipboard" : "schematic");
plr.SendSuccessMessage(GetString("Copied selection to {0}."), save == null ? GetString("clipboard") : GetString("schematic"));
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Cut.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,6 @@ public override void Execute()
}
File.Copy(undoPath, clipboardPath);
ResetSection();
plr.SendSuccessMessage("Cut selection. ({0})", (x2 - x + 1) * (y2 - y + 1));
plr.SendSuccessMessage(GetString("Cut selection. ({0})"), (x2 - x + 1) * (y2 - y + 1));
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Drain.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Drained area. ({0})", drainedTileCount);
plr.SendSuccessMessage(GetString("Drained area. ({0})"), drainedTileCount);
}
}
24 changes: 12 additions & 12 deletions src/WorldEdit/WorldEdit.Commands/FixGhosts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,51 +124,51 @@ public override void Execute()
List<string> removedObjects = new List<string>();
if (removedSignCount > 0)
{
removedObjects.Add($"signs ({removedSignCount})");
removedObjects.Add(GetString("signs ({0})", removedSignCount));
}
if (removedItemFrameCount > 0)
{
removedObjects.Add($"item frames ({removedItemFrameCount})");
removedObjects.Add(GetString("item frames ({0})", removedItemFrameCount));
}
if (removedChestCount > 0)
{
removedObjects.Add($"chests ({removedChestCount})");
removedObjects.Add(GetString("chests ({0})", removedChestCount));
}
if (removedLogicSensorCount > 0)
{
removedObjects.Add($"logic sensors ({removedLogicSensorCount})");
removedObjects.Add(GetString("logic sensors ({0})", removedLogicSensorCount));
}
if (removedTrainingDummyCount > 0)
{
removedObjects.Add($"target dummies ({removedTrainingDummyCount})");
removedObjects.Add(GetString("target dummies ({0})", removedTrainingDummyCount));
}
if (removedWeaponRackCount > 0)
{
removedObjects.Add($"weapon racks ({removedWeaponRackCount})");
removedObjects.Add(GetString("weapon racks ({0})", removedWeaponRackCount));
}
if (removedPylonCount > 0)
{
removedObjects.Add($"pylons ({removedPylonCount})");
removedObjects.Add(GetString("pylons ({0})", removedPylonCount));
}
if (removedDisplayDollCount > 0)
{
removedObjects.Add($"mannequins ({removedDisplayDollCount})");
removedObjects.Add(GetString("mannequins ({0})", removedDisplayDollCount));
}
if (removedHatRackCount > 0)
{
removedObjects.Add($"hat racks ({removedHatRackCount})");
removedObjects.Add(GetString("hat racks ({0})", removedHatRackCount));
}
if (removedFoodPlatterCount > 0)
{
removedObjects.Add($"food plates ({removedFoodPlatterCount})");
removedObjects.Add(GetString("food plates ({0})", removedFoodPlatterCount));
}
if (removedObjects.Count > 0)
{
plr.SendSuccessMessage("Fixed ghost " + string.Join(", ", removedObjects) + ".");
plr.SendSuccessMessage(GetString("Fixed ghost {0}.", string.Join(", ", removedObjects)));
}
else
{
plr.SendSuccessMessage("There are no ghost objects in this area.");
plr.SendSuccessMessage(GetString("There are no ghost objects in this area."));
}
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/FixGrass.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,6 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Fixed grass. ({0})", fixedGrassCount);
plr.SendSuccessMessage(GetString("Fixed grass. ({0})"), fixedGrassCount);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/FixHalves.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Fixed half blocks. ({0})", fixedHalfBlockCount);
plr.SendSuccessMessage(GetString("Fixed half blocks. ({0})"), fixedHalfBlockCount);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/FixSlopes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Fixed slopes. ({0})", fixedSlopeCount);
plr.SendSuccessMessage(GetString("Fixed slopes. ({0})"), fixedSlopeCount);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Flip.cs
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,6 @@ public override void Execute()
}
}
}
plr.SendSuccessMessage("Flipped clipboard.");
plr.SendSuccessMessage(GetString("Flipped clipboard."));
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Flood.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Flooded area. ({0})", floodedTileCount);
plr.SendSuccessMessage(GetString("Flooded area. ({0})"), floodedTileCount);
}
}
6 changes: 3 additions & 3 deletions src/WorldEdit/WorldEdit.Commands/Inactive.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Made tiles inactive. ({0})", changedTileCount);
plr.SendSuccessMessage(GetString("Made tiles inactive. ({0})"), changedTileCount);
break;
}
case 1:
Expand All @@ -60,7 +60,7 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Set\ttiles' inactive\tstatus off.\t({0})", changedTileCount);
plr.SendSuccessMessage(GetString("Set\ttiles' inactive\tstatus off.\t({0})"), changedTileCount);
break;
}
case 2:
Expand All @@ -78,7 +78,7 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Reversed tiles'\tinactive status. ({0})", changedTileCount);
plr.SendSuccessMessage(GetString("Reversed tiles'\tinactive status. ({0})"), changedTileCount);
break;
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/WorldEdit/WorldEdit.Commands/KillEmpty.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ public override void Execute()
Tools.PrepareUndo(x, y, x2, y2, plr);
if (_action == 255 || _action == 0)
{
plr.SendSuccessMessage("Cleared {0} empty signs.", Tools.ClearSigns(x, y, x2, y2, emptyOnly: true));
plr.SendSuccessMessage(GetString("Cleared {0} empty signs."), Tools.ClearSigns(x, y, x2, y2, emptyOnly: true));
}
if (_action == 255 || _action == 1)
{
plr.SendSuccessMessage("Cleared {0} empty chests.", Tools.ClearChests(x, y, x2, y2, emptyOnly: true));
plr.SendSuccessMessage(GetString("Cleared {0} empty chests."), Tools.ClearChests(x, y, x2, y2, emptyOnly: true));
}
ResetSection();
}
Expand Down
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Move.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,6 @@ public override void Execute()
playerInfo.Y = destinationY;
playerInfo.X2 = destinationX2;
playerInfo.Y2 = destinationY2;
plr.SendInfoMessage("Moved tiles ({0}).", movedTileCount);
plr.SendInfoMessage(GetString("Moved tiles ({0})."), movedTileCount);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Mow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Mowed grass, thorns, and vines. ({0})", removedTileCount);
plr.SendSuccessMessage(GetString("Mowed grass, thorns, and vines. ({0})"), removedTileCount);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Outline.cs
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,6 @@ public override void Execute()
}

ResetSection();
plr.SendSuccessMessage("Set outline. ({0})", outlinedTileCount);
plr.SendSuccessMessage(GetString("Set outline. ({0})"), outlinedTileCount);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/OutlineWall.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,6 @@ public override void Execute()
}

ResetSection();
plr.SendSuccessMessage("Set wall outline. ({0})", outlinedWallCount);
plr.SendSuccessMessage(GetString("Set wall outline. ({0})"), outlinedWallCount);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Paint.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,6 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Painted tiles. ({0})", paintedTileCount);
plr.SendSuccessMessage(GetString("Painted tiles. ({0})"), paintedTileCount);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/PaintWall.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,6 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Painted walls. ({0})", paintedWallCount);
plr.SendSuccessMessage(GetString("Painted walls. ({0})"), paintedWallCount);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Paste.cs
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,6 @@ public override void Execute()
}
Tools.LoadWorldSection(worldSectionData, x, y, Tiles: false);
ResetSection();
plr.SendSuccessMessage("Pasted clipboard to selection.");
plr.SendSuccessMessage(GetString("Pasted clipboard to selection."));
}
}
6 changes: 3 additions & 3 deletions src/WorldEdit/WorldEdit.Commands/Redo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public override void Execute()
{
if (WorldEdit.Config.DisableUndoSystemForUnrealPlayers && (!plr.RealPlayer || accountID == 0))
{
plr.SendErrorMessage("Undo system is disabled for unreal players.");
plr.SendErrorMessage(GetString("Undo system is disabled for unreal players."));
return;
}
int completedStepCount = -1;
Expand All @@ -28,9 +28,9 @@ public override void Execute()
}
if (completedStepCount == 0)
{
plr.SendErrorMessage("Failed to redo any actions.");
plr.SendErrorMessage(GetString("Failed to redo any actions."));
return;
}
plr.SendSuccessMessage("Redid {0}'s last {1}action{2}.", (accountID == 0) ? "ServerConsole" : TShock.UserAccounts.GetUserAccountByID(accountID).Name, (completedStepCount == 1) ? "" : (completedStepCount + " "), (completedStepCount == 1) ? "" : "s");
plr.SendSuccessMessage(GetString("Redid {0}'s last {1}action{2}."), (accountID == 0) ? "ServerConsole" : TShock.UserAccounts.GetUserAccountByID(accountID).Name, (completedStepCount == 1) ? "" : (completedStepCount + " "), (completedStepCount == 1) ? "" : "s");
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Replace.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,6 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Replaced tiles. ({0})", replacedTileCount);
plr.SendSuccessMessage(GetString("Replaced tiles. ({0})"), replacedTileCount);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/ReplaceWall.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,6 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Replaced walls. ({0})", replacedWallCount);
plr.SendSuccessMessage(GetString("Replaced walls. ({0})"), replacedWallCount);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Rotate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,6 @@ public override void Execute()
}
}
writer?.Close();
plr.SendSuccessMessage("Rotated clipboard {0} degrees.", _degrees);
plr.SendSuccessMessage(GetString("Rotated clipboard {0} degrees."), _degrees);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/SPaste.cs
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,6 @@ public override void Execute()
}
Tools.LoadWorldSection(worldSectionData, x, y, Tiles: false);
ResetSection();
plr.SendSuccessMessage("Pasted clipboard to selection.");
plr.SendSuccessMessage(GetString("Pasted clipboard to selection."));
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Scale.cs
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,6 @@ public override void Execute()
}
}
}
plr.SendSuccessMessage("Clipboard {0}creased by {1} times.", _addition ? "in" : "de", _scale);
plr.SendSuccessMessage(GetString(_addition ? "Clipboard increased by {0} times." : "Clipboard decreased by {0} times."), _scale);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/Set.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Set tiles. ({0})", changedTileCount);
plr.SendSuccessMessage(GetString("Set tiles. ({0})"), changedTileCount);
}
}
2 changes: 1 addition & 1 deletion src/WorldEdit/WorldEdit.Commands/SetGrass.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,6 @@ public override void Execute()
}
}
ResetSection();
plr.SendSuccessMessage("Set {1} grass. ({0})", changedGrassCount, _grass);
plr.SendSuccessMessage(GetString("Set {0} grass. ({1})"), _grass, changedGrassCount);
}
}
Loading
Loading