In the beginning, guys wanted to play in the All-Star Game just because they had pride. They knew that the NHL was the greatest hockey league in the planet, and being an All-Star meant that you were one of the best players in the world. There was a great amount of honor and privilege in being named an All-Star, and players wanted to put on a performance for the hosting city's crowd.
Then the players started to get a little greedy. It took prize money and the MVP being given a car in order to get players to at least give a shit about the All-Star weekend. If players aren't given the opportunity to make a shit ton of extra money, they're going to fake an injury right before the All-Star break in order to get out of that shit. Even getting them to the game sometimes isn't enough of a guarantee that they'll actually try to play hockey out there. They'll coast around and treat it like a beer league game.
But finally, Gary Bettman and the league have cracked the code. You want players to show up to All-Star Weekend and you want them to actually perform out there? Go to the nearest gentlemen's club in the city hosting the game and work out a deal to get free lap dances for the boys. You won't get anyone finding an excuse to bail on the game again.
Sidenote: We need to find out the final tally of beer league heroes who show up to this joint pretending to be an NHL All-Star just to see if they can sneak one in. Going to be a ton of "I mean technically I'm not playing in the All-Star Game but a buddy of mine used to play against McDavid all the time when they were in peewee".