Updated

J.R. Smith is somewhere celebrating with his shirt off right now.

The flashy shooter has re-signed with the Cleveland Cavaliers, he announced on LeBron James' "Uninterrupted" platform. Then, in true J.R. Smith fashion, he happily blurted out he's having another baby.

The new contract is four years and $57 million, according to multiple reports.

This comes just a couple weeks after James called out the Cavs for failing to sign Smith before the start of training camp.

"Negotiations are always two sides, but J.R. did his part," James said, via Ohio.com. "He showed up every day. Worked his ass off every day. Became a two-way player, a model citizen in Cleveland and he's a fan favorite. Obviously we all know that. ... He's a big piece of our team and they just need to get it done.

"I hate coming into another season -- two years in a row -- with one of my big guns not here. So for a leader of a team and for me personally, I just hate to deal with this [expletive] again. It's just too big of a piece to our team to have to deal with in another training camp. Hopefully things get resolved fast, because you know how big and important he is to our team."

Smith was a key member of the Cavs team that came back from a 3-1 deficit to beat the Golden State Warriors in the Finals last summer. The 31-year-old averaged 12.4 points and shot 40 percent on 3-pointers in 77 games, then he made two huge 3-pointers early in the second half of Game 7 as the Cavs completed an historic comeback.

The previous offseason, James pushed the Cavs to re-sign Tristan Thompson after the young forward helped them reach the Finals.

The Cavaliers open their season Oct. 25 against the New York Knicks.

The Associated Press contributed to this report.