Merge pull request #2548 from 0x3fcf1bbd/general-devel

Add lanterns night event to `/worldevent`
This commit is contained in:
Lucas Nicodemus 2022-01-25 22:26:53 -08:00 committed by GitHub
commit 401e738950
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 3 deletions

View file

@ -14,9 +14,8 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin
## Upcoming changes
* Added hook `GetDataHandlers.OnReleaseNpc` to handling ReleaseNPC packet and a bouncer to stops unregistered and logged out players on SSC servers from releasing critters NPC. The bouncer has additional filter to stops players who tried to release different critter using crafted packet, e.g. using bunny item to release golden bunny. (@tru321)
* Added filter in `GetDataHandlers.HandleCatchNpc` that stops unregistered and logged out players on SSC servers to catch critters. (@tru321)
## Upcoming changes
* Fixed rejection check inside of `HandlePaintTile` to account for the Paint Sprayer (or Architect Gizmo Pack) being inside your inventory, rather than on an accessory slot. (@drunderscore)
* Added the lanterns night event to the `/worldevent` command. (@0x3fcf1bbd)
## TShock 4.5.12
* Fixed the ability to spawn Zenith projectile with non-original items. (@AgaSpace)

View file

@ -2060,7 +2060,8 @@ namespace TShockAPI
"eclipse",
"invasion",
"sandstorm",
"rain"
"rain",
"lanternsnight"
};
static readonly List<string> _validInvasions = new List<string>()
{
@ -2159,6 +2160,16 @@ namespace TShockAPI
Rain(args);
return;
case "lanternsnight":
case "lanterns":
if (!args.Player.HasPermission(Permissions.managelanternsnightevent))
{
FailedPermissionCheck();
return;
}
LanternsNight(args);
return;
default:
args.Player.SendErrorMessage("Invalid event type! Valid event types: {0}", String.Join(", ", _validEvents));
return;
@ -2374,6 +2385,20 @@ namespace TShockAPI
}
}
private static void LanternsNight(CommandArgs args)
{
LanternNight.ToggleManualLanterns();
string msg = $" st{(LanternNight.LanternsUp ? "art" : "opp")}ed a lantern night.";
if (args.Silent)
{
args.Player.SendInfoMessage("You" + msg);
}
else
{
TSPlayer.All.SendInfoMessage(args.Player.Name + msg);
}
}
private static void ClearAnglerQuests(CommandArgs args)
{
if (args.Parameters.Count > 0)

View file

@ -307,6 +307,9 @@ namespace TShockAPI
[Description("User can use the 'rain' subcommand of the 'worldevent' command")]
public static readonly string managerainevent = "tshock.world.events.rain";
[Description("User can use the 'lanternsnight' subcommand of the 'worldevent' command")]
public static readonly string managelanternsnightevent = "tshock.world.events.lanternsnight";
[Description("User can change expert state.")]
public static readonly string toggleexpert = "tshock.world.toggleexpert";