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
|
## Upcoming changes
|
||||||
* Removed `TShockAPI/DB/DBTools.cs`. This appears to have been dead code and not used by anything. (@hakusaro, @DeathCradle)
|
* 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
|
## TShock 4.5.7
|
||||||
* Fixed the `/respawn` command to permit respawning players from the console. (@hakusaro, @Kojirremer)
|
* 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));
|
user.SendMultipleMatchError(players.Select(p => p.Name));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int type = 0;
|
int type = ProjectileID.RocketFireworkRed;
|
||||||
switch (args.Parameters[1].ToLower())
|
if (args.Parameters.Count > 1)
|
||||||
{
|
{
|
||||||
case "red":
|
switch (args.Parameters[1].ToLower())
|
||||||
case "r":
|
{
|
||||||
type = ProjectileID.RocketFireworkRed;
|
case "red":
|
||||||
break;
|
case "r":
|
||||||
case "green":
|
type = ProjectileID.RocketFireworkRed;
|
||||||
case "g":
|
break;
|
||||||
type = ProjectileID.RocketFireworkGreen;
|
case "green":
|
||||||
break;
|
case "g":
|
||||||
case "blue":
|
type = ProjectileID.RocketFireworkGreen;
|
||||||
case "b":
|
break;
|
||||||
type = ProjectileID.RocketFireworkBlue;
|
case "blue":
|
||||||
break;
|
case "b":
|
||||||
case "yellow":
|
type = ProjectileID.RocketFireworkBlue;
|
||||||
case "y":
|
break;
|
||||||
type = ProjectileID.RocketFireworkYellow;
|
case "yellow":
|
||||||
break;
|
case "y":
|
||||||
case "r2":
|
type = ProjectileID.RocketFireworkYellow;
|
||||||
case "star":
|
break;
|
||||||
type = ProjectileID.RocketFireworksBoxRed;
|
case "r2":
|
||||||
break;
|
case "star":
|
||||||
case "g2":
|
type = ProjectileID.RocketFireworksBoxRed;
|
||||||
case "spiral":
|
break;
|
||||||
type = ProjectileID.RocketFireworksBoxGreen;
|
case "g2":
|
||||||
break;
|
case "spiral":
|
||||||
case "b2":
|
type = ProjectileID.RocketFireworksBoxGreen;
|
||||||
case "rings":
|
break;
|
||||||
type = ProjectileID.RocketFireworksBoxBlue;
|
case "b2":
|
||||||
break;
|
case "rings":
|
||||||
case "y2":
|
type = ProjectileID.RocketFireworksBoxBlue;
|
||||||
case "flower":
|
break;
|
||||||
type = ProjectileID.RocketFireworksBoxYellow;
|
case "y2":
|
||||||
break;
|
case "flower":
|
||||||
default:
|
type = ProjectileID.RocketFireworksBoxYellow;
|
||||||
type = ProjectileID.RocketFireworkRed;
|
break;
|
||||||
break;
|
default:
|
||||||
|
type = ProjectileID.RocketFireworkRed;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var target = players[0];
|
var target = players[0];
|
||||||
int p = Projectile.NewProjectile(Projectile.GetNoneSource(), target.TPlayer.position.X, target.TPlayer.position.Y - 64f, 0f, -8f, type, 0, 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