Fix firework command failing without color
After updates to the firework command, a guard was lost, allowing the switch statement that selected the color to execute on a parameter that was empty. A guard was added to prevent falling into the switch statement without enough arguments to match a color. The default type of firework was manually set to a red firework. Fixes #2507
This commit is contained in:
parent
a01b48ead5
commit
e303071dce
2 changed files with 41 additions and 37 deletions
|
|
@ -14,6 +14,7 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin
|
|||
|
||||
## Upcoming changes
|
||||
* Removed `TShockAPI/DB/DBTools.cs`. This appears to have been dead code and not used by anything. (@hakusaro, @DeathCradle)
|
||||
* Fixed the `/firework` command not sending fireworks when specified without a firework color. The firework command now correctly sends red fireworks to a target if a color is not specified. (@hakusaro, @Kojirremer)
|
||||
|
||||
## TShock 4.5.7
|
||||
* Fixed the `/respawn` command to permit respawning players from the console. (@hakusaro, @Kojirremer)
|
||||
|
|
|
|||
|
|
@ -5546,44 +5546,47 @@ namespace TShockAPI
|
|||
user.SendMultipleMatchError(players.Select(p => p.Name));
|
||||
else
|
||||
{
|
||||
int type = 0;
|
||||
switch (args.Parameters[1].ToLower())
|
||||
int type = ProjectileID.RocketFireworkRed;
|
||||
if (args.Parameters.Count > 1)
|
||||
{
|
||||
case "red":
|
||||
case "r":
|
||||
type = ProjectileID.RocketFireworkRed;
|
||||
break;
|
||||
case "green":
|
||||
case "g":
|
||||
type = ProjectileID.RocketFireworkGreen;
|
||||
break;
|
||||
case "blue":
|
||||
case "b":
|
||||
type = ProjectileID.RocketFireworkBlue;
|
||||
break;
|
||||
case "yellow":
|
||||
case "y":
|
||||
type = ProjectileID.RocketFireworkYellow;
|
||||
break;
|
||||
case "r2":
|
||||
case "star":
|
||||
type = ProjectileID.RocketFireworksBoxRed;
|
||||
break;
|
||||
case "g2":
|
||||
case "spiral":
|
||||
type = ProjectileID.RocketFireworksBoxGreen;
|
||||
break;
|
||||
case "b2":
|
||||
case "rings":
|
||||
type = ProjectileID.RocketFireworksBoxBlue;
|
||||
break;
|
||||
case "y2":
|
||||
case "flower":
|
||||
type = ProjectileID.RocketFireworksBoxYellow;
|
||||
break;
|
||||
default:
|
||||
type = ProjectileID.RocketFireworkRed;
|
||||
break;
|
||||
switch (args.Parameters[1].ToLower())
|
||||
{
|
||||
case "red":
|
||||
case "r":
|
||||
type = ProjectileID.RocketFireworkRed;
|
||||
break;
|
||||
case "green":
|
||||
case "g":
|
||||
type = ProjectileID.RocketFireworkGreen;
|
||||
break;
|
||||
case "blue":
|
||||
case "b":
|
||||
type = ProjectileID.RocketFireworkBlue;
|
||||
break;
|
||||
case "yellow":
|
||||
case "y":
|
||||
type = ProjectileID.RocketFireworkYellow;
|
||||
break;
|
||||
case "r2":
|
||||
case "star":
|
||||
type = ProjectileID.RocketFireworksBoxRed;
|
||||
break;
|
||||
case "g2":
|
||||
case "spiral":
|
||||
type = ProjectileID.RocketFireworksBoxGreen;
|
||||
break;
|
||||
case "b2":
|
||||
case "rings":
|
||||
type = ProjectileID.RocketFireworksBoxBlue;
|
||||
break;
|
||||
case "y2":
|
||||
case "flower":
|
||||
type = ProjectileID.RocketFireworksBoxYellow;
|
||||
break;
|
||||
default:
|
||||
type = ProjectileID.RocketFireworkRed;
|
||||
break;
|
||||
}
|
||||
}
|
||||
var target = players[0];
|
||||
int p = Projectile.NewProjectile(Projectile.GetNoneSource(), target.TPlayer.position.X, target.TPlayer.position.Y - 64f, 0f, -8f, type, 0, 0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue