Chat Hidereplay does not update battles to be private

Teclis

is a Battle Simulator Administratoris a Community Leaderis a Community Contributor Alumnusis a Top Tiering Contributor Alumnusis a Smogon Media Contributor Alumnus
PS Admin
/hidereplay, when used before the battle's end, makes the room expire (or at least displayed as expired) when trying to rejoin it (instead of a simple modjoin).
  • I noticed this in a french room tour, when I hidereplayed the match t0. We played, I left at the end, and tried to rejoin one minute later to rewatch a couple turns sequences. However no matter whether I tried to rejoin it using the browser's back arrow or by clicking in the battle's link displayed in the chat, I got the "expired room" message.
  • Another player in the roomtour set /hidereplay after the end of the match a bit later, and there was no particular problem.
  • I tried to recreate the thing by challenging someone in random battle, hiding the replay t0, forfeiting, leaving the room and trying to join it back. It was once again marked as expired.
 
Last edited by a moderator:
I've encountered it several times in the Tournaments room and since I find the viewing pleasure of roomtours important, I decided to look into it more deeply. The issue comes from the /hideroom command: Using it in a battle will create a hidden link not associated with the original non-hidden link. It wasn't the case before and they are recognizable by their length. I saw Mia's message on PS! saying they could look into it, so if this can help. Apologies for the wording.

Challenge battle

https://replay.pokemonshowdown.com/gen8randombattle-1226045123

Code:
TypeError: Cannot read property 'away' of undefined
at child.comparator (https://play.pokemonshowdown.com/js/client-chat.js?3f363cff:1903:14)
at child.elemComparator (https://play.pokemonshowdown.com/js/client-chat.js?3f363cff:1885:16)
at child.add (https://play.pokemonshowdown.com/js/client-chat.js?3f363cff:1834:20)
at Battle.runMajor (https://play.pokemonshowdown.com/js/battle.js?1785fca3:3213:15)

Making a battle hidden (/modjoin +) and then making it public (/publicroom and /modjoin off) will cause the error to appear only for both players.

A spectator joining and leaving multiple times will trigger the error.
1605686807448.png

Room tournaments

I used my alts to test this: Kabilol and Kabilschooldude being the players and Kabilapok being the spectator.

(References)
Hidden battlelink: https://play.pokemonshowdown.com/battle-gen8ubers-1226016955-o67oy9yq7z4lner7h4eoppxstu4dpv4pw
Non-hidden battlelink: https://play.pokemonshowdown.com/battle-gen8ubers-1226016955

- When using /hideroom in a Roomtour battle, spectators can't access the battle by the two free options being the announcement of the battle < Tournament battle between Kabilol and Kabil'Schooldude started. > and the Roomtour board < Kabilol vs Kabil'Schooldude ("In-progress" in between). > Instead, an error message is shown saying the battle is inexistant and still gives the non-hidden link in the message < The room "battle-gen8ubers-1226016955" does not exist. The battle you're looking for has expired. Battles expire after 15 minutes of inactivity unless they're saved. In the future, remember to click "Save replay" to save a replay permanently. >

- The players can see the hidden battlelink after doing /hideroom.
1605686850611.png
The same applies doing /hidereplay. The spectator can't access an ended battle and only the non-hidden battlellink is shown in the error.

- Setting a Roombattle to modjoin (when it is allowed) will only give the spectator the message that the battle is inexistent. Not that it is Invite only. < The room "battle-gen8ubers-1226016955" does not exist. The battle you're looking for has expired. Battles expire after 15 minutes of inactivity unless they're saved. In the future, remember to click "Save replay" to save a replay permanently. > the link being transformed because of the modjoin.

- Using /publicroom after a /modjoin + will tell the spectator the battle is invite only < The room "battle-gen8ubers-1226016955" is invite-only, and you haven't been invited.>

- Refreshing an hidden battle as a player will give the error message that the battle is inexistent. Kabilol: < The room "battle-gen8ubers-1226016955" does not exist. The battle you're looking for has expired. Battles expire after 15 minutes of inactivity unless they're saved. In the future, remember to click "Save replay" to save a replay permanently. >

The player can only rejoin it by the roomtournament in Home.
1605686886413.png

-An invited spectator can't rejoin the battle if it has been set to > /hideroom by /modjoin > then /publicroom > then /hideroom. The non-hidden link is non existent < The room "battle-gen8ubers-1226016955-dyvl65si04qxc54930g7tsmogyf1ihppw" does not exist. The battle you're looking for has expired. Battles expire after 15 minutes of inactivity unless they're saved. In the future, remember to click "Save replay" to save a replay permanently. >

Inviting a spectator only by making the battle hidden using /hideroom will proceed normally. The invite being a hidden link to the spectator.

Making a battle public after it has been hidden using /hideroom will transform the link to a non hidden link.
 
Last edited by a moderator:

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top