pmariglia / showdown

A Pokemon Showdown Battle Bot written in Python
GNU General Public License v3.0
254 stars 176 forks source link

TypeError: 'NoneType' object is not subscriptable #166

Open Viitrexx opened 1 year ago

Viitrexx commented 1 year ago
2023-07-17 22:03:06 [DEBUG]    Logging in...
2023-07-17 22:03:06 [DEBUG]    Received message from websocket: |updateuser| Guest 1424577|0|102|{"blockChallenges":false,"blockPMs":false,"ignoreTickets":false,"hideBattlesFromTrainerCard":false,"blockInvites":false,"doNotDisturb":false,"blockFriendRequests":false,"allowFriendNotifications":false,"displayBattlesToFriends":false,"hideLogins":false,"hiddenNextBattle":false,"inviteOnlyNextBattle":false,"language":null}
2023-07-17 22:03:06 |formats|,1|S/V Singles|[Gen 9] Random Battle,f|[Gen 9] Unrated Random Battle,b|[Gen 9] Free-For-All Random Battle,7|[Gen 9] Random Battle (Blitz),f|[Gen 9] Multi Random Battle,5|[Gen 9] OU,e|[Gen 9] Ubers,e|[Gen 9] UU,e|[Gen 9] RU,e|[Gen 9] NU,e|[Gen 9] PU,e|[Gen 9] LC,e|[Gen 9] Monotype,e|[Gen 9] 1v1,e|[Gen 9] Anything Goes,e|[Gen 9] ZU,e|[Gen 9] LC UU,c|[Gen 9] CAP,e|[Gen 9] Free-For-All,6|[Gen 9] Battle Stadium Singles Regulation C,1c|[Gen 9] Battle Stadium Singles Regulation D,1e|[Gen 9] Freedom Cup,1e|[Gen 9] Custom Game,c|,1|S/V Doubles|[Gen 9] Random Doubles Battle,f|[Gen 9] Doubles OU,e|[Gen 9] Doubles Ubers,e|[Gen 9] Doubles UU,e|[Gen 9] Doubles LC,e|[Gen 9] 2v2 Doubles,e|[Gen 9] VGC 2023 Regulation C,1c|[Gen 9] VGC 2023 Regulation D,1e|[Gen 9] Doubles Custom Game,c|,1|National Dex|[Gen 9] National Dex,e|[Gen 9] National Dex Ubers,e|[Gen 9] National Dex UU,e|[Gen 9] National Dex RU,c|[Gen 9] National Dex Monotype,e|[Gen 9] National Dex AG,c|[Gen 9] National Dex Doubles,e|[Gen 9] National Dex BH,e|,1|Pet Mods|[Gen 8] JolteMons Random Battle,f|[Gen 6] NEXT OU,8|,1|Draft|[Gen 9] Paldea Dex Draft,c|[Gen 9] Tera Preview Paldea Dex Draft,c|[Gen 9] 6v6 Doubles Draft,c|[Gen 9] 4v4 Doubles Draft,1c|[Gen 9] NatDex Draft,c|[Gen 9] Tera Preview NatDex Draft,c|[Gen 9] NatDex 6v6 Doubles Draft,c|[Gen 9] NatDex 4v4 Doubles Draft,1c|[Gen 9] NatDex LC Draft,c|[Gen 8] Galar Dex Draft,c|[Gen 8] NatDex Draft,c|[Gen 8] NatDex 4v4 Doubles Draft,1c|[Gen 7] Draft,c|[Gen 6] Draft,c|,2|OM of the Month|[Gen 9] Force of the Fallen,e|[Gen 9] Inheritance,e|,2|Other Metagames|[Gen 9] Almost Any Ability,e|[Gen 9] Balanced Hackmons,e|[Gen 9] Mix and Mega,e|[Gen 9] Godly Gift,e|[Gen 9] STABmons,e|[Gen 9] NFE,e|,2|Challengeable OMs|[Gen 9] Camomons,c|[Gen 9] Convergence,c|[Gen 9] Cross Evolution,c|[Gen 9] Fortemons,c|[Gen 9] Full Potential,c|[Gen 9] Partners in Crime,c|[Gen 9] Pokebilities,c|[Gen 9] Pure Hackmons,c|[Gen 9] Revelationmons,c|[Gen 9] Shared Power,c|[Gen 9] Tera Donation,c|[Gen 9] The Card Game,c|[Gen 9] The Loser's Game,c|[Gen 9] Trademarked,c|,2|Retro Other Metagames|[Gen 6] Pure Hackmons,e|,3|Randomized Format Spotlight|[Gen 9] Random Roulette,f|,3|Randomized Metas|[Gen 9] Monotype Random Battle,f|[Gen 9] Random Battle Mayhem,f|[Gen 9] Computer-Generated Teams,f|[Gen 9] Hackmons Cup,f|[Gen 9] Doubles Hackmons Cup,d|[Gen 9] Broken Cup,d|[Gen 9] Challenge Cup 1v1,f|[Gen 9] Challenge Cup 2v2,f|[Gen 9] Challenge Cup 6v6,d|[Gen 8] Random Battle,f|[Gen 8] Random Doubles Battle,f|[Gen 8] Free-For-All Random Battle,7|[Gen 8] Multi Random Battle,5|[Gen 8] Battle Factory,f|[Gen 8] BSS Factory,1f|[Gen 8] Super Staff Bros 4,f|[Gen 8] Hackmons Cup,f|[Gen 8] CAP 1v1,d|[Gen 8 BDSP] Random Battle,d|[Gen 7] Random Battle,f|[Gen 7] Random Doubles Battle,9|[Gen 7] Battle Factory,f|[Gen 7] BSS Factory,1d|[Gen 7] Hackmons Cup,d|[Gen 7 Let's Go] Random Battle,d|[Gen 6] Random Battle,f|[Gen 6] Battle Factory,9|[Gen 5] Random Battle,f|[Gen 4] Random Battle,f|[Gen 3] Random Battle,f|[Gen 2] Random Battle,f|[Gen 1] Random Battle,f|[Gen 1] Challenge Cup,9|[Gen 1] Hackmons Cup,9|,3|Metronome Battle|[Gen 9] Metronome Battle,e|[Gen 8] Metronome Battle,c|,4|RoA Spotlight|[Gen 1] Stadium OU,e|[Gen 2] Ubers,e|[Gen 8] UU,e|,4|Past Gens OU|[Gen 8] OU,e|[Gen 7] OU,e|[Gen 6] OU,e|[Gen 5] OU,e|[Gen 4] OU,e|[Gen 3] OU,e|[Gen 2] OU,e|[Gen 1] OU,e|,4|Past Gens Doubles OU|[Gen 8] Doubles OU,e|[Gen 7] Doubles OU,e|[Gen 6] Doubles OU,e|[Gen 5] Doubles OU,c|[Gen 4] Doubles OU,e|[Gen 3] Doubles OU,c|,4|Sw/Sh Singles|[Gen 8] Ubers,c|[Gen 8] RU,c|[Gen 8] NU,c|[Gen 8] PU,c|[Gen 8] LC,c|[Gen 8] Monotype,c|[Gen 8] 1v1,c|[Gen 8] Anything Goes,c|[Gen 8] ZU,c|[Gen 8] CAP,c|[Gen 8] National Dex,c|[Gen 8] National Dex UU,c|[Gen 8] Battle Stadium Singles,1c|[Gen 8 BDSP] OU,c|[Gen 8] Custom Game,c|,5|Sw/Sh Doubles|[Gen 8] Doubles Ubers,c|[Gen 8] Doubles UU,c|[Gen 8] VGC 2022,1c|[Gen 8] VGC 2021,1c|[Gen 8] VGC 2020,1c|[Gen 8 BDSP] Doubles OU,c|[Gen 8 BDSP] Battle Festival Doubles,1c|[Gen 8] Doubles Custom Game,c|,5|US/UM Singles|[Gen 7] Ubers,c|[Gen 7] UU,c|[Gen 7] RU,c|[Gen 7] NU,c|[Gen 7] PU,c|[Gen 7] LC,c|[Gen 7] Monotype,c|[Gen 7] 1v1,c|[Gen 7] Anything Goes,c|[Gen 7] ZU,c|[Gen 7] CAP,c|[Gen 7] Battle Spot Singles,1c|[Gen 7 Let's Go] OU,1c|[Gen 7] Custom Game,c|,5|US/UM Doubles|[Gen 7] Doubles UU,c|[Gen 7] VGC 2019,1c|[Gen 7] VGC 2018,1c|[Gen 7] VGC 2017,1c|[Gen 7] Battle Spot Doubles,1c|[Gen 7 Let's Go] Doubles OU,c|[Gen 7] Doubles Custom Game,c|,6|OR/AS Singles|[Gen 6] Ubers,c|[Gen 6] UU,c|[Gen 6] RU,c|[Gen 6] NU,c|[Gen 6] PU,c|[Gen 6] LC,c|[Gen 6] Monotype,c|[Gen 6] 1v1,c|[Gen 6] Anything Goes,c|[Gen 6] ZU,c|[Gen 6] CAP,c|[Gen 6] Battle Spot Singles,1c|[Gen 6] Custom Game,c|,6|OR/AS Doubles/Triples|[Gen 6] VGC 2016,1c|[Gen 6] VGC 2015,1c|[Gen 6] VGC 2014,1c|[Gen 6] Battle Spot Doubles,1c|[Gen 6] Doubles Custom Game,c|[Gen 6] Battle Spot Triples,1c|[Gen 6] Triples Custom Game,c|,6|B2/W2 Singles|[Gen 5] Ubers,c|[Gen 5] UU,c|[Gen 5] RU,c|[Gen 5] NU,c|[Gen 5] PU,c|[Gen 5] LC,c|[Gen 5] Monotype,c|[Gen 5] 1v1,c|[Gen 5] ZU,c|[Gen 5] CAP,c|[Gen 5] GBU Singles,1c|[Gen 5] Custom Game,c|,6|B2/W2 Doubles|[Gen 5] VGC 2013,1c|[Gen 5] VGC 2012,1c|[Gen 5] VGC 2011,1c|[Gen 5] Doubles Custom Game,c|[Gen 5] Triples Custom Game,c|,7|DPP Singles|[Gen 4] Ubers,c|[Gen 4] UU,c|[Gen 4] NU,c|[Gen 4] PU,c|[Gen 4] LC,c|[Gen 4] Anything Goes,c|[Gen 4] 1v1,c|[Gen 4] ZU,c|[Gen 4] CAP,c|[Gen 4] Custom Game,c|,7|DPP Doubles|[Gen 4] VGC 2010,1c|[Gen 4] VGC 2009,1c|[Gen 4] Doubles Custom Game,c|,7|Past Generations|[Gen 3] Ubers,c|[Gen 3] UU,c|[Gen 3] NU,c|[Gen 3] PU,c|[Gen 3] LC,c|[Gen 3] 1v1,c|[Gen 3] Custom Game,c|[Gen 3] Doubles Custom Game,c|[Gen 2] UU,c|[Gen 2] NU,c|[Gen 2] 1v1,c|[Gen 2] Nintendo Cup 2000,c|[Gen 2] Stadium OU,c|[Gen 2] Custom Game,c|[Gen 1] Ubers,c|[Gen 1] UU,c|[Gen 1] NU,c|[Gen 1] PU,c|[Gen 1] 1v1,c|[Gen 1] Japanese OU,c|[Gen 1] Tradebacks OU,c|[Gen 1] Nintendo Cup 1997,c|[Gen 1] Custom Game,c
2023-07-17 22:03:06 [DEBUG]    Received message from websocket: |challstr|4|28ddbdbda35659add79db537cd35e846a5a01ccfbfab5017d2bf2251adb782d7bd91d4e3d022519c0bd0d8bb7762c63dd99015279d0009a2fac87633c8d262ece3d0dc0dccc16d909e3a1c7f5f2bed7ba755ec183a1d6893aaea1ae18ef716b4b202e11d52eff5e14ad15dd6b70157f1f51629497f281e6edd9ca4e243076892
2023-07-17 22:03:07 [DEBUG]    Successfully logged in
2023-07-17 22:03:07 [DEBUG]    Sending message to websocket: |/trn SMETStayInSchool,0,28ddbdbda35659add79db537cd35e846a5a01ccfbfab5017d2bf2251adb782d7bd91d4e3d022519c0bd0d8bb7762c63dd99015279d0009a2fac87633c8d262ece3d0dc0dccc16d909e3a1c7f5f2bed7ba755ec183a1d6893aaea1ae18ef716b4b202e11d52eff5e14ad15dd6b70157f1f51629497f281e6edd9ca4e243076892,smetstayinschool,4,1689624186,sim3.psim.us,2bdfeaadcc93bb9b1689624186,8b8c3b2a6d3b9dbe,;17501167331a20196999d6c1cbe6f1af3e85f1819a1014b928fd7e140cf55819430b974ba2f62935c38050d7a728365ad9fedb03610667feb506c5d5a8f91fd1004946b36fc33699644dea599ab87326858b89542fff6ee57099a711676075b6ed21ad928fefe45559a3521ec6d3ac5e7c493e2ba9013a1cfc310fbc983394a1722d94b878576fe8c8a44492e1f8de7089b88caa3e65235881995438abcccd5b35fea66d08720479c4793ae5e5b01e8827548d6dd6c6fbbd18b5a8faadfbef3c98636350b54a0f752449da555c55107804b17df6f963162b1593c0b8ffdb67356881a11ca3ece9490fd95933275de0ca85ba067fe5d5be2db6f641066f1fa9d88b603a2f21122f7d67949d30ce52a5683b28158bfa03e9521d056a7699977dba848dccca741eb7fde48d521b990fc17a9f0d0ec07dd5fb8346399a28cbd6722fca94681edcea6cfce0de19f0bba7cc019a7ebe342033e7528b5716e3b07f3023d212683b1ec1c290047ba273a5547fb52f807c9fb38ce7c4c2d1691882eaca1b064f9abbc9ef781b2b892b7fdca5d29c3a01b8cf314eed584ec35c66b96636a0759db162b267f0ad1bc94a1b584bf2ac99f6fda4ebb4df5c69739f8ad835adde7c2f1f7d7647e9e01ca6e0beeedc96ebe2fcbe4341fdc394c7b37326cd407a7cade8cee27b00a396f14fddf0c4ac4a819605416aaf1cf6e32370beac5709b491
2023-07-17 22:03:07 [DEBUG]    Sending message to websocket: |/avatar parasollady
2023-07-17 22:03:07 [DEBUG]    Challenging Play3rdStrike...
2023-07-17 22:03:07 [DEBUG]    Sending message to websocket: |/utm gigalith||sitrusberry|sandstream|metronome||1,,,,,|||||,,,,,
2023-07-17 22:03:07 [DEBUG]    Sending message to websocket: |/challenge Play3rdStrike,gen9customgame
2023-07-17 22:03:07 [DEBUG]    Received message from websocket: |updatesearch|{"searching":[],"games":null}
2023-07-17 22:03:07 [DEBUG]    Received message from websocket: |updateuser| SMETStayInSchool|1|parasollady|{"blockChallenges":false,"blockPMs":false,"ignoreTickets":false,"hideBattlesFromTrainerCard":false,"blockInvites":false,"doNotDisturb":false,"blockFriendRequests":false,"allowFriendNotifications":false,"displayBattlesToFriends":false,"hideLogins":false,"hiddenNextBattle":false,"inviteOnlyNextBattle":false,"language":null}
2023-07-17 22:03:07 [DEBUG]    Received message from websocket: |updatesearch|{"searching":[],"games":null}
2023-07-17 22:03:07 [DEBUG]    Received message from websocket: |pm| SMETStayInSchool|~|/text Avatar changed to:
2023-07-17 22:03:07 |pm| SMETStayInSchool|~|/raw <img src="https://play.pokemonshowdown.com/sprites/trainers/parasollady.png" alt="parasollady" width="80" height="80" class="pixelated" style="vertical-align: middle;" />
2023-07-17 22:03:08 [DEBUG]    Received message from websocket: |pm| SMETStayInSchool|!Play3rdStrike|/challenge gen9customgame|gen9customgame|||
2023-07-17 22:03:08 [DEBUG]    Received message from websocket: |pm| SMETStayInSchool|!Play3rdStrike|/log SMETStayInSchool wants to battle!
2023-07-17 22:03:08 [DEBUG]    Received message from websocket: |pm|!Play3rdStrike| SMETStayInSchool|/challenge
2023-07-17 22:03:08 [DEBUG]    Received message from websocket: |updatesearch|{"searching":[],"games":null}
2023-07-17 22:03:08 [DEBUG]    Received message from websocket: |updatesearch|{"searching":[],"games":{"battle-gen9customgame-1905749011":"[Gen 9] Custom Game Battle"}}
2023-07-17 22:03:08 [DEBUG]    Received message from websocket: |updatesearch|{"searching":[],"games":{"battle-gen9customgame-1905749011":"[Gen 9] Custom Game Battle"}}
2023-07-17 22:03:08 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:08 |init|battle
2023-07-17 22:03:08 |title|SMETStayInSchool vs. Play3rdStrike
2023-07-17 22:03:08 |j|☆SMETStayInSchool
2023-07-17 22:03:08 
2023-07-17 22:03:08 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:08 |request|
2023-07-17 22:03:08 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:08 |j|☆Play3rdStrike
2023-07-17 22:03:08 [DEBUG]    Received message from websocket: |pm|!Play3rdStrike| SMETStayInSchool|/nonotify Play3rdStrike accepted the challenge, starting &laquo;<a href="/battle-gen9customgame-1905749011">battle-gen9customgame-1905749011</a>&raquo;
2023-07-17 22:03:08 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:08 |t:|1689624188
2023-07-17 22:03:08 |gametype|singles
2023-07-17 22:03:08 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:08 |player|p1|SMETStayInSchool|parasollady|
2023-07-17 22:03:08 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:08 |request|{"teamPreview":true,"side":{"name":"SMETStayInSchool","id":"p1","pokemon":[{"ident":"p1: Gigalith","details":"Gigalith, F","condition":"311/311","active":true,"stats":{"atk":306,"def":296,"spa":156,"spd":196,"spe":86},"moves":["metronome"],"baseAbility":"sandstream","item":"sitrusberry","pokeball":"pokeball","ability":"sandstream","commanding":false,"reviving":false,"teraType":"Rock","terastallized":""}]},"rqid":2}
2023-07-17 22:03:08 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:08 |player|p2|Play3rdStrike|mrfuji-gen3|
2023-07-17 22:03:08 |teamsize|p1|1
2023-07-17 22:03:08 |teamsize|p2|1
2023-07-17 22:03:08 |gen|9
2023-07-17 22:03:08 |tier|[Gen 9] Custom Game
2023-07-17 22:03:08 |clearpoke
2023-07-17 22:03:08 |poke|p1|Gigalith, F|
2023-07-17 22:03:08 |poke|p2|Bewear, F|
2023-07-17 22:03:08 |teampreview
2023-07-17 22:03:08 [DEBUG]    Making HTTP request for ALL usage stats
2023-07-17 22:03:08 please wait...
2023-07-17 22:03:31 [DEBUG]    Sending message to websocket: battle-gen9customgame-1905749011|/team 1|2
2023-07-17 22:03:31 [DEBUG]    Sending message to websocket: battle-gen9customgame-1905749011|hf
2023-07-17 22:03:31 [DEBUG]    Sending message to websocket: battle-gen9customgame-1905749011|/timer on
2023-07-17 22:03:31 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:31 |c|☆Play3rdStrike|hf
2023-07-17 22:03:31 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:31 |request|{"active":[{"moves":[{"move":"Metronome","id":"metronome","pp":16,"maxpp":16,"target":"self","disabled":false}],"canTerastallize":"Rock"}],"side":{"name":"SMETStayInSchool","id":"p1","pokemon":[{"ident":"p1: Gigalith","details":"Gigalith, F","condition":"311/311","active":true,"stats":{"atk":306,"def":296,"spa":156,"spd":196,"spe":86},"moves":["metronome"],"baseAbility":"sandstream","item":"sitrusberry","pokeball":"pokeball","ability":"sandstream","commanding":false,"reviving":false,"teraType":"Rock","terastallized":""}]},"rqid":4}
2023-07-17 22:03:31 [DEBUG]    Received battle JSON from server: {'active': [{'moves': [{'move': 'Metronome', 'id': 'metronome', 'pp': 16, 'maxpp': 16, 'target': 'self', 'disabled': False}], 'canTerastallize': 'Rock'}], 'side': {'name': 'SMETStayInSchool', 'id': 'p1', 'pokemon': [{'ident': 'p1: Gigalith', 'details': 'Gigalith, F', 'condition': '311/311', 'active': True, 'stats': {'atk': 306, 'def': 296, 'spa': 156, 'spd': 196, 'spe': 86}, 'moves': ['metronome'], 'baseAbility': 'sandstream', 'item': 'sitrusberry', 'pokeball': 'pokeball', 'ability': 'sandstream', 'commanding': False, 'reviving': False, 'teraType': 'Rock', 'terastallized': ''}]}, 'rqid': 4}
2023-07-17 22:03:31 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:31 |
2023-07-17 22:03:31 |t:|1689624211
2023-07-17 22:03:31 |start
2023-07-17 22:03:31 |switch|p1a: Gigalith|Gigalith, F|311/311
2023-07-17 22:03:31 |switch|p2a: Bewear|Bewear, F|381/381
2023-07-17 22:03:31 |-weather|Sandstorm|[from] ability: Sand Stream|[of] p1a: Gigalith
2023-07-17 22:03:31 |turn|1
2023-07-17 22:03:31 [DEBUG]    Opponent has switched - clearing the last used move
2023-07-17 22:03:31 [DEBUG]    Weather sandstorm started
2023-07-17 22:03:31 [DEBUG]    Sending message to websocket: battle-gen9customgame-1905749011|/choose move metronome|4
2023-07-17 22:03:32 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:32 |inactive|Battle timer is ON: inactive players will automatically lose when time's up. (requested by Play3rdStrike)
2023-07-17 22:03:32 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:32 |inactive|Time left: 300 sec this turn | 300 sec total | 60 sec grace
2023-07-17 22:03:32 [DEBUG]    Time left: 300
2023-07-17 22:03:32 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:32 |c|☆SMETStayInSchool|hf
2023-07-17 22:03:32 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:32 |inactive|SMETStayInSchool also wants the timer to be on.
2023-07-17 22:03:33 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:33 |request|{"active":[{"moves":[{"move":"Metronome","id":"metronome","pp":15,"maxpp":16,"target":"self","disabled":false}],"canTerastallize":"Rock"}],"side":{"name":"SMETStayInSchool","id":"p1","pokemon":[{"ident":"p1: Gigalith","details":"Gigalith, F","condition":"248/311","active":true,"stats":{"atk":306,"def":296,"spa":156,"spd":196,"spe":86},"moves":["metronome"],"baseAbility":"sandstream","item":"sitrusberry","pokeball":"pokeball","ability":"sandstream","commanding":false,"reviving":false,"teraType":"Rock","terastallized":""}]},"rqid":6}
2023-07-17 22:03:33 [DEBUG]    Received battle JSON from server: {'active': [{'moves': [{'move': 'Metronome', 'id': 'metronome', 'pp': 15, 'maxpp': 16, 'target': 'self', 'disabled': False}], 'canTerastallize': 'Rock'}], 'side': {'name': 'SMETStayInSchool', 'id': 'p1', 'pokemon': [{'ident': 'p1: Gigalith', 'details': 'Gigalith, F', 'condition': '248/311', 'active': True, 'stats': {'atk': 306, 'def': 296, 'spa': 156, 'spd': 196, 'spe': 86}, 'moves': ['metronome'], 'baseAbility': 'sandstream', 'item': 'sitrusberry', 'pokeball': 'pokeball', 'ability': 'sandstream', 'commanding': False, 'reviving': False, 'teraType': 'Rock', 'terastallized': ''}]}, 'rqid': 6}
2023-07-17 22:03:33 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:33 |
2023-07-17 22:03:33 |t:|1689624213
2023-07-17 22:03:33 |move|p2a: Bewear|Metronome|p2a: Bewear
2023-07-17 22:03:33 |move|p2a: Bewear|Brave Bird|p1a: Gigalith|[from]move: Metronome
2023-07-17 22:03:33 |-resisted|p1a: Gigalith
2023-07-17 22:03:33 |-damage|p1a: Gigalith|248/311
2023-07-17 22:03:33 |-damage|p2a: Bewear|360/381|[from] Recoil
2023-07-17 22:03:33 |move|p1a: Gigalith|Metronome|p1a: Gigalith
2023-07-17 22:03:33 |move|p1a: Gigalith|Seed Bomb|p2a: Bewear|[from]move: Metronome
2023-07-17 22:03:33 |-crit|p2a: Bewear
2023-07-17 22:03:33 |-damage|p2a: Bewear|205/381
2023-07-17 22:03:33 |
2023-07-17 22:03:33 |-weather|Sandstorm|[upkeep]
2023-07-17 22:03:33 |-damage|p2a: Bewear|182/381|[from] Sandstorm
2023-07-17 22:03:33 |debug|natural status immunity
2023-07-17 22:03:33 |debug|weather immunity
2023-07-17 22:03:44 Traceback (most recent call last):
2023-07-17 22:03:44   File "run.py", line 105, in <module>
2023-07-17 22:03:44     asyncio.run(showdown())
2023-07-17 22:03:44   File "/usr/local/lib/python3.8/asyncio/runners.py", line 44, in run
2023-07-17 22:03:44     return loop.run_until_complete(main)
2023-07-17 22:03:44   File "/usr/local/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
2023-07-17 22:03:44     return future.result()
2023-07-17 22:03:44   File "run.py", line 89, in showdown
2023-07-17 22:03:44     winner = await pokemon_battle(ps_websocket_client, ShowdownConfig.pokemon_mode)
2023-07-17 22:03:44   File "/showdown/showdown/run_battle.py", line 194, in pokemon_battle
2023-07-17 22:03:44     action_required = await async_update_battle(battle, msg)
2023-07-17 22:03:44   File "/showdown/showdown/battle_modifier.py", line 1255, in async_update_battle
2023-07-17 22:03:44     return update_battle(battle, msg)
2023-07-17 22:03:44   File "/showdown/showdown/battle_modifier.py", line 1239, in update_battle
2023-07-17 22:03:44     check_choice_band_or_specs(battle, damage_dealt)
2023-07-17 22:03:44   File "/showdown/showdown/battle_modifier.py", line 1023, in check_choice_band_or_specs
2023-07-17 22:03:44     damage = calculate_damage(state, constants.OPPONENT, damage_dealt.move, battle.user.last_used_move.move, calc_type='max')[0]
2023-07-17 22:03:44 TypeError: 'NoneType' object is not subscriptable
2023-07-17 22:03:33 |upkeep
2023-07-17 22:03:33 |turn|2
2023-07-17 22:03:33 [DEBUG]    bewear used a status-move. Setting can_have_assultvest to False
2023-07-17 22:03:33 [DEBUG]    Setting bewear's last used move: metronome
2023-07-17 22:03:33 [DEBUG]    bewear did 20.26% damage to gigalith with bravebird
2023-07-17 22:03:33 [WARNING]  No sets for bewear, trying to find most likely attributes
2023-07-17 22:03:33 [WARNING]  bewear not in the sets lookup, using random battle abilities
2023-07-17 22:03:33 [WARNING]  bewear not in the sets lookup, using random battle items
2023-07-17 22:03:33 [WARNING]  bewear not in the sets lookup
2023-07-17 22:03:33 [WARNING]  bewear not in the sets lookup
2023-07-17 22:03:33 [DEBUG]    bewear did not do enough damage to have choiceband
2023-07-17 22:03:33 [DEBUG]    gigalith already has the move metronome. Decrementing the PP by 1
2023-07-17 22:03:33 [DEBUG]    gigalith used a status-move. Setting can_have_assultvest to False
2023-07-17 22:03:33 [DEBUG]    Setting gigalith's last used move: metronome
2023-07-17 22:03:33 [DEBUG]    Weather sandstorm started
2023-07-17 22:03:33 [DEBUG]    Sending message to websocket: battle-gen9customgame-1905749011|/choose move metronome|6
2023-07-17 22:03:33 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:33 |inactive|Time left: 300 sec this turn | 300 sec total
2023-07-17 22:03:33 [DEBUG]    Time left: 300
2023-07-17 22:03:34 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:34 |request|{"active":[{"moves":[{"move":"Metronome","id":"metronome","pp":14,"maxpp":16,"target":"self","disabled":false}],"canTerastallize":"Rock"}],"side":{"name":"SMETStayInSchool","id":"p1","pokemon":[{"ident":"p1: Gigalith","details":"Gigalith, F","condition":"182/311","active":true,"stats":{"atk":306,"def":296,"spa":156,"spd":196,"spe":86},"moves":["metronome"],"baseAbility":"sandstream","item":"sitrusberry","pokeball":"pokeball","ability":"sandstream","commanding":false,"reviving":false,"teraType":"Rock","terastallized":""}]},"rqid":8}
2023-07-17 22:03:34 [DEBUG]    Received battle JSON from server: {'active': [{'moves': [{'move': 'Metronome', 'id': 'metronome', 'pp': 14, 'maxpp': 16, 'target': 'self', 'disabled': False}], 'canTerastallize': 'Rock'}], 'side': {'name': 'SMETStayInSchool', 'id': 'p1', 'pokemon': [{'ident': 'p1: Gigalith', 'details': 'Gigalith, F', 'condition': '182/311', 'active': True, 'stats': {'atk': 306, 'def': 296, 'spa': 156, 'spd': 196, 'spe': 86}, 'moves': ['metronome'], 'baseAbility': 'sandstream', 'item': 'sitrusberry', 'pokeball': 'pokeball', 'ability': 'sandstream', 'commanding': False, 'reviving': False, 'teraType': 'Rock', 'terastallized': ''}]}, 'rqid': 8}
2023-07-17 22:03:34 [DEBUG]    Received message from websocket: >battle-gen9customgame-1905749011
2023-07-17 22:03:34 |
2023-07-17 22:03:34 |t:|1689624213
2023-07-17 22:03:34 |move|p2a: Bewear|Metronome|p2a: Bewear
2023-07-17 22:03:34 |move|p2a: Bewear|Endeavor|p1a: Gigalith|[from]move: Metronome
2023-07-17 22:03:34 |-damage|p1a: Gigalith|182/311
2023-07-17 22:03:34 |move|p1a: Gigalith|Metronome|p1a: Gigalith
2023-07-17 22:03:34 |move|p1a: Gigalith|Water Gun|p2a: Bewear|[from]move: Metronome
2023-07-17 22:03:34 |-damage|p2a: Bewear|147/381
2023-07-17 22:03:34 |
2023-07-17 22:03:34 |-weather|Sandstorm|[upkeep]
2023-07-17 22:03:34 |-damage|p2a: Bewear|124/381|[from] Sandstorm
2023-07-17 22:03:34 |debug|natural status immunity
2023-07-17 22:03:34 |debug|weather immunity
2023-07-17 22:03:34 |upkeep
2023-07-17 22:03:34 |turn|3
2023-07-17 22:03:34 [DEBUG]    bewear already has the move metronome. Decrementing the PP by 1
2023-07-17 22:03:34 [DEBUG]    bewear used a status-move. Setting can_have_assultvest to False
2023-07-17 22:03:34 [DEBUG]    Setting bewear's last used move: metronome
2023-07-17 22:03:34 [DEBUG]    bewear did 21.22% damage to gigalith with endeavor
2023-07-17 22:03:34 [WARNING]  No sets for bewear, trying to find most likely attributes
2023-07-17 22:03:34 [WARNING]  bewear not in the sets lookup, using random battle abilities
2023-07-17 22:03:34 [WARNING]  bewear not in the sets lookup, using random battle items
2023-07-17 22:03:34 [WARNING]  bewear not in the sets lookup
2023-07-17 22:03:34 [WARNING]  bewear not in the sets lookup
2023-07-17 22:03:44 [ERROR]    Traceback (most recent call last):
2023-07-17 22:03:44   File "run.py", line 105, in <module>
2023-07-17 22:03:44     asyncio.run(showdown())
2023-07-17 22:03:44   File "/usr/local/lib/python3.8/asyncio/runners.py", line 44, in run
2023-07-17 22:03:44     return loop.run_until_complete(main)
2023-07-17 22:03:44   File "/usr/local/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
2023-07-17 22:03:44     return future.result()
2023-07-17 22:03:44   File "run.py", line 89, in showdown
2023-07-17 22:03:44     winner = await pokemon_battle(ps_websocket_client, ShowdownConfig.pokemon_mode)
2023-07-17 22:03:44   File "/showdown/showdown/run_battle.py", line 194, in pokemon_battle
2023-07-17 22:03:44     action_required = await async_update_battle(battle, msg)
2023-07-17 22:03:44   File "/showdown/showdown/battle_modifier.py", line 1255, in async_update_battle
2023-07-17 22:03:44     return update_battle(battle, msg)
2023-07-17 22:03:44   File "/showdown/showdown/battle_modifier.py", line 1239, in update_battle
2023-07-17 22:03:44     check_choice_band_or_specs(battle, damage_dealt)
2023-07-17 22:03:44   File "/showdown/showdown/battle_modifier.py", line 1023, in check_choice_band_or_specs
2023-07-17 22:03:44     damage = calculate_damage(state, constants.OPPONENT, damage_dealt.move, battle.user.last_used_move.move, calc_type='max')[0]
2023-07-17 22:03:44 TypeError: 'NoneType' object is not subscriptable
2023-07-17 22:03:44 
Viitrexx commented 1 year ago

First error did not crash the Docker instance, but the second error did.

pmariglia commented 1 year ago

This stands out to me:

2023-07-17 22:03:34 [DEBUG]    Setting bewear's last used move: metronome
2023-07-17 22:03:34 [DEBUG]    bewear did 21.22% damage to gigalith with endeavor

I think there are some shenanigans happening during the item inferral function: The bot might be getting confused about whether bewear used metronome or endeavor.

Viitrexx commented 1 year ago

I got another one, Metronome Endeavor again...

2023-07-24 21:23:22 [DEBUG]    Logging in...
2023-07-24 21:23:22 [DEBUG]    Received message from websocket: |updateuser| Guest 1406238|0|266|{"blockChallenges":false,"blockPMs":false,"ignoreTickets":false,"hideBattlesFromTrainerCard":false,"blockInvites":false,"doNotDisturb":false,"blockFriendRequests":false,"allowFriendNotifications":false,"displayBattlesToFriends":false,"hideLogins":false,"hiddenNextBattle":false,"inviteOnlyNextBattle":false,"language":null}
2023-07-24 21:23:22 |formats|,1|S/V Singles|[Gen 9] Random Battle,f|[Gen 9] Unrated Random Battle,b|[Gen 9] Free-For-All Random Battle,7|[Gen 9] Random Battle (Blitz),f|[Gen 9] Multi Random Battle,5|[Gen 9] OU,e|[Gen 9] Ubers,e|[Gen 9] UU,e|[Gen 9] RU,e|[Gen 9] NU,e|[Gen 9] PU,e|[Gen 9] LC,e|[Gen 9] Monotype,e|[Gen 9] 1v1,e|[Gen 9] Anything Goes,e|[Gen 9] ZU,e|[Gen 9] LC UU,c|[Gen 9] CAP,e|[Gen 9] Free-For-All,6|[Gen 9] Battle Stadium Singles Regulation C,1c|[Gen 9] Battle Stadium Singles Regulation D,1e|[Gen 9] Freedom Cup,1e|[Gen 9] Custom Game,c|,1|S/V Doubles|[Gen 9] Random Doubles Battle,f|[Gen 9] Doubles OU,e|[Gen 9] Doubles Ubers,e|[Gen 9] Doubles UU,e|[Gen 9] Doubles LC,e|[Gen 9] 2v2 Doubles,e|[Gen 9] VGC 2023 Regulation C,1c|[Gen 9] VGC 2023 Regulation D,1e|[Gen 9] Doubles Custom Game,c|,1|National Dex|[Gen 9] National Dex,e|[Gen 9] National Dex Ubers,e|[Gen 9] National Dex UU,e|[Gen 9] National Dex RU,c|[Gen 9] National Dex Monotype,e|[Gen 9] National Dex AG,c|[Gen 9] National Dex Doubles,e|[Gen 9] National Dex BH,e|,1|Pet Mods|[Gen 8] JolteMons Random Battle,f|[Gen 6] NEXT OU,8|,1|Draft|[Gen 9] Paldea Dex Draft,c|[Gen 9] Tera Preview Paldea Dex Draft,c|[Gen 9] 6v6 Doubles Draft,c|[Gen 9] 4v4 Doubles Draft,1c|[Gen 9] NatDex Draft,c|[Gen 9] Tera Preview NatDex Draft,c|[Gen 9] NatDex 6v6 Doubles Draft,c|[Gen 9] NatDex 4v4 Doubles Draft,1c|[Gen 9] NatDex LC Draft,c|[Gen 8] Galar Dex Draft,c|[Gen 8] NatDex Draft,c|[Gen 8] NatDex 4v4 Doubles Draft,1c|[Gen 7] Draft,c|[Gen 6] Draft,c|,2|OM of the Month|[Gen 9] Force of the Fallen,e|[Gen 9] Inheritance,e|,2|Other Metagames|[Gen 9] Almost Any Ability,e|[Gen 9] Balanced Hackmons,e|[Gen 9] Mix and Mega,e|[Gen 9] Godly Gift,e|[Gen 9] STABmons,e|[Gen 9] NFE,e|,2|Challengeable OMs|[Gen 9] Camomons,c|[Gen 9] Convergence,c|[Gen 9] Cross Evolution,c|[Gen 9] Fortemons,c|[Gen 9] Full Potential,c|[Gen 9] Partners in Crime,c|[Gen 9] Pokebilities,c|[Gen 9] Pure Hackmons,c|[Gen 9] Revelationmons,c|[Gen 9] Shared Power,c|[Gen 9] Tera Donation,c|[Gen 9] The Card Game,c|[Gen 9] The Loser's Game,c|[Gen 9] Trademarked,c|,2|Retro Other Metagames|[Gen 6] Pure Hackmons,e|,3|Randomized Format Spotlight|[Gen 9] Random Roulette,f|,3|Randomized Metas|[Gen 9] Monotype Random Battle,f|[Gen 9] Random Battle Mayhem,f|[Gen 9] Computer-Generated Teams,f|[Gen 9] Hackmons Cup,f|[Gen 9] Doubles Hackmons Cup,d|[Gen 9] Broken Cup,d|[Gen 9] Challenge Cup 1v1,f|[Gen 9] Challenge Cup 2v2,f|[Gen 9] Challenge Cup 6v6,d|[Gen 8] Random Battle,f|[Gen 8] Random Doubles Battle,f|[Gen 8] Free-For-All Random Battle,7|[Gen 8] Multi Random Battle,5|[Gen 8] Battle Factory,f|[Gen 8] BSS Factory,1f|[Gen 8] Super Staff Bros 4,f|[Gen 8] Hackmons Cup,f|[Gen 8] CAP 1v1,d|[Gen 8 BDSP] Random Battle,d|[Gen 7] Random Battle,f|[Gen 7] Random Doubles Battle,9|[Gen 7] Battle Factory,f|[Gen 7] BSS Factory,1d|[Gen 7] Hackmons Cup,d|[Gen 7 Let's Go] Random Battle,d|[Gen 6] Random Battle,f|[Gen 6] Battle Factory,9|[Gen 5] Random Battle,f|[Gen 4] Random Battle,f|[Gen 3] Random Battle,f|[Gen 2] Random Battle,f|[Gen 1] Random Battle,f|[Gen 1] Challenge Cup,9|[Gen 1] Hackmons Cup,9|,3|Metronome Battle|[Gen 9] Metronome Battle,e|[Gen 8] Metronome Battle,c|,4|RoA Spotlight|[Gen 1] Stadium OU,e|[Gen 2] Ubers,e|[Gen 8] UU,e|,4|Past Gens OU|[Gen 8] OU,e|[Gen 7] OU,e|[Gen 6] OU,e|[Gen 5] OU,e|[Gen 4] OU,e|[Gen 3] OU,e|[Gen 2] OU,e|[Gen 1] OU,e|,4|Past Gens Doubles OU|[Gen 8] Doubles OU,e|[Gen 7] Doubles OU,e|[Gen 6] Doubles OU,e|[Gen 5] Doubles OU,c|[Gen 4] Doubles OU,e|[Gen 3] Doubles OU,c|,4|Sw/Sh Singles|[Gen 8] Ubers,c|[Gen 8] RU,c|[Gen 8] NU,c|[Gen 8] PU,c|[Gen 8] LC,c|[Gen 8] Monotype,c|[Gen 8] 1v1,c|[Gen 8] Anything Goes,c|[Gen 8] ZU,c|[Gen 8] CAP,c|[Gen 8] National Dex,c|[Gen 8] National Dex UU,c|[Gen 8] Battle Stadium Singles,1c|[Gen 8 BDSP] OU,c|[Gen 8] Custom Game,c|,5|Sw/Sh Doubles|[Gen 8] Doubles Ubers,c|[Gen 8] Doubles UU,c|[Gen 8] VGC 2022,1c|[Gen 8] VGC 2021,1c|[Gen 8] VGC 2020,1c|[Gen 8 BDSP] Doubles OU,c|[Gen 8 BDSP] Battle Festival Doubles,1c|[Gen 8] Doubles Custom Game,c|,5|US/UM Singles|[Gen 7] Ubers,c|[Gen 7] UU,c|[Gen 7] RU,c|[Gen 7] NU,c|[Gen 7] PU,c|[Gen 7] LC,c|[Gen 7] Monotype,c|[Gen 7] 1v1,c|[Gen 7] Anything Goes,c|[Gen 7] ZU,c|[Gen 7] CAP,c|[Gen 7] Battle Spot Singles,1c|[Gen 7 Let's Go] OU,1c|[Gen 7] Custom Game,c|,5|US/UM Doubles|[Gen 7] Doubles UU,c|[Gen 7] VGC 2019,1c|[Gen 7] VGC 2018,1c|[Gen 7] VGC 2017,1c|[Gen 7] Battle Spot Doubles,1c|[Gen 7 Let's Go] Doubles OU,c|[Gen 7] Doubles Custom Game,c|,6|OR/AS Singles|[Gen 6] Ubers,c|[Gen 6] UU,c|[Gen 6] RU,c|[Gen 6] NU,c|[Gen 6] PU,c|[Gen 6] LC,c|[Gen 6] Monotype,c|[Gen 6] 1v1,c|[Gen 6] Anything Goes,c|[Gen 6] ZU,c|[Gen 6] CAP,c|[Gen 6] Battle Spot Singles,1c|[Gen 6] Custom Game,c|,6|OR/AS Doubles/Triples|[Gen 6] VGC 2016,1c|[Gen 6] VGC 2015,1c|[Gen 6] VGC 2014,1c|[Gen 6] Battle Spot Doubles,1c|[Gen 6] Doubles Custom Game,c|[Gen 6] Battle Spot Triples,1c|[Gen 6] Triples Custom Game,c|,6|B2/W2 Singles|[Gen 5] Ubers,c|[Gen 5] UU,c|[Gen 5] RU,c|[Gen 5] NU,c|[Gen 5] PU,c|[Gen 5] LC,c|[Gen 5] Monotype,c|[Gen 5] 1v1,c|[Gen 5] ZU,c|[Gen 5] CAP,c|[Gen 5] GBU Singles,1c|[Gen 5] Custom Game,c|,6|B2/W2 Doubles|[Gen 5] VGC 2013,1c|[Gen 5] VGC 2012,1c|[Gen 5] VGC 2011,1c|[Gen 5] Doubles Custom Game,c|[Gen 5] Triples Custom Game,c|,7|DPP Singles|[Gen 4] Ubers,c|[Gen 4] UU,c|[Gen 4] NU,c|[Gen 4] PU,c|[Gen 4] LC,c|[Gen 4] Anything Goes,c|[Gen 4] 1v1,c|[Gen 4] ZU,c|[Gen 4] CAP,c|[Gen 4] Custom Game,c|,7|DPP Doubles|[Gen 4] VGC 2010,1c|[Gen 4] VGC 2009,1c|[Gen 4] Doubles Custom Game,c|,7|Past Generations|[Gen 3] Ubers,c|[Gen 3] UU,c|[Gen 3] NU,c|[Gen 3] PU,c|[Gen 3] LC,c|[Gen 3] 1v1,c|[Gen 3] Custom Game,c|[Gen 3] Doubles Custom Game,c|[Gen 2] UU,c|[Gen 2] NU,c|[Gen 2] 1v1,c|[Gen 2] Nintendo Cup 2000,c|[Gen 2] Stadium OU,c|[Gen 2] Custom Game,c|[Gen 1] Ubers,c|[Gen 1] UU,c|[Gen 1] NU,c|[Gen 1] PU,c|[Gen 1] 1v1,c|[Gen 1] Japanese OU,c|[Gen 1] Tradebacks OU,c|[Gen 1] Nintendo Cup 1997,c|[Gen 1] Custom Game,c
2023-07-24 21:23:22 [DEBUG]    Received message from websocket: |challstr|4|6d512e64ed1c65065831e15d196d67585e31c33948e41be1ff0ba569e872fd40832c1b49f7f100c7363f0320246538b54492e47d8dbdd8b497ce8e37eafff2438c9dd8afdf63acb6cda53d0c4e6c312f3a82c9c0fff634b58d8f195321f40d4757caf7af80e3e417a228bba0bc00cff84f9368f712f2b1a4a5f5ff4f7f184d52
2023-07-24 21:23:23 [DEBUG]    Successfully logged in
2023-07-24 21:23:23 [DEBUG]    Sending message to websocket: |/trn Play3rdStrike,0,6d512e64ed1c65065831e15d196d67585e31c33948e41be1ff0ba569e872fd40832c1b49f7f100c7363f0320246538b54492e47d8dbdd8b497ce8e37eafff2438c9dd8afdf63acb6cda53d0c4e6c312f3a82c9c0fff634b58d8f195321f40d4757caf7af80e3e417a228bba0bc00cff84f9368f712f2b1a4a5f5ff4f7f184d52,play3rdstrike,2,1690226602,sim3.psim.us,22f42b2bd9371dd81690226602,8b8c3b2a6d3b9dbe,;c1006f3f03fb5a27c78c8340e774d5cc063c5f5701e6ce9ce223cc5b583a3d1cdc55450876d9f37b1cdd7b3a5838d33321d15ae8b6844346b5ef07cd062bfe09bc24e3f06cd65a241a32c45bf8b5f5ae15ba530a89c62ad3a1dd2a878765194da19195cd71c2b895f5b1739a53072b2b3186618651ec4a36977c387ad928e378e6ae1d87fe0d5922468bfc44585896d80ce5a3befaf7179cbedc2a47e3334087291adc58f334928afc6bd2550687df1c99124739b044044e26093b9c303cddc806bbb25ff0169a2008099b3a6a90524969793c3aeb1ce604c314f35df843d0aec90aed1cd381420ecbef725706e0de7e06bc375f29afe7f4a77743cdff133b8c52127f0f767ddb832e5a883a8424c6d211636fda366dc03f657ee5aadf06dcec382dadcb086b4e437365d97f2d26aa56d101405b9d2f9f817fa1dc0e06a1b3f6644f63c2952535aa3f0ed6fe85f04812a61f2f55909bed45215167742cba73826f3d827fa6a340ead253cc758b9af573d9362a38bf9b21c538b4717bdd55943156734964d0d687b254e02899a2bf6030c761be655cfa676f6360015dc45706bac681bdc0c2135c2380f25a51b8260705524baea0bee158134750d501a860761235da50a95bdd01662e4747478b45834dfb8bb3a34084fcaf4616bcf1b5c7b657bc87f5fa8b18a4377650f20fcd5413323fcd12f78fe706ca3021792876c93403
2023-07-24 21:23:23 [DEBUG]    Sending message to websocket: |/avatar mai
2023-07-24 21:23:23 [DEBUG]    Waiting for a gen9customgame challenge
2023-07-24 21:23:23 [DEBUG]    Sending message to websocket: |/utm porygonz|porygonz|choicespecs|download|metronome||1,,,,,|||||,,,,,
2023-07-24 21:23:23 [DEBUG]    Received message from websocket: |updatesearch|{"searching":[],"games":null}
2023-07-24 21:23:23 [DEBUG]    Received message from websocket: |updateuser| Play3rdStrike|1|mai|{"blockChallenges":false,"blockPMs":false,"ignoreTickets":false,"hideBattlesFromTrainerCard":false,"blockInvites":false,"doNotDisturb":false,"blockFriendRequests":false,"allowFriendNotifications":false,"displayBattlesToFriends":false,"hideLogins":false,"hiddenNextBattle":false,"inviteOnlyNextBattle":false,"language":null}
2023-07-24 21:23:23 [DEBUG]    Received message from websocket: |updatesearch|{"searching":[],"games":null}
2023-07-24 21:23:23 [DEBUG]    Received message from websocket: |pm|!Play3rdStrike|~|/text Avatar changed to:
2023-07-24 21:23:23 |pm|!Play3rdStrike|~|/raw <img src="https://play.pokemonshowdown.com/sprites/trainers/mai.png" alt="mai" width="80" height="80" class="pixelated" style="vertical-align: middle;" />
2023-07-24 21:23:23 [DEBUG]    Received message from websocket: |pm|!Play3rdStrike|~|/raw (Artist: <a href="https://twitter.com/Brumirage">Brumirage</a>)
2023-07-24 21:23:35 [DEBUG]    Received message from websocket: |pm| SMETStayInSchool|!Play3rdStrike|/challenge gen9customgame|gen9customgame|||
2023-07-24 21:23:35 [DEBUG]    Sending message to websocket: |/accept SMETStayInSchool
2023-07-24 21:23:35 [DEBUG]    Received message from websocket: |pm| SMETStayInSchool|!Play3rdStrike|/log SMETStayInSchool wants to battle!
2023-07-24 21:23:35 [DEBUG]    Received message from websocket: |pm|!Play3rdStrike| SMETStayInSchool|/challenge
2023-07-24 21:23:35 [DEBUG]    Received message from websocket: |updatesearch|{"searching":[],"games":null}
2023-07-24 21:23:35 [DEBUG]    Received message from websocket: |updatesearch|{"searching":[],"games":{"battle-gen9customgame-1910009315":"[Gen 9] Custom Game Battle"}}
2023-07-24 21:23:35 [DEBUG]    Received message from websocket: |updatesearch|{"searching":[],"games":{"battle-gen9customgame-1910009315":"[Gen 9] Custom Game Battle"}}
2023-07-24 21:23:35 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:35 |init|battle
2023-07-24 21:23:35 |title|SMETStayInSchool vs. Play3rdStrike
2023-07-24 21:23:35 |j|☆SMETStayInSchool
2023-07-24 21:23:35 |j|☆Play3rdStrike
2023-07-24 21:23:35 
2023-07-24 21:23:35 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:24:06 Traceback (most recent call last):
2023-07-24 21:24:06   File "run.py", line 105, in <module>
2023-07-24 21:24:06     asyncio.run(showdown())
2023-07-24 21:24:06   File "/usr/local/lib/python3.8/asyncio/runners.py", line 44, in run
2023-07-24 21:24:06     return loop.run_until_complete(main)
2023-07-24 21:24:06   File "/usr/local/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
2023-07-24 21:24:06     return future.result()
2023-07-24 21:24:06   File "run.py", line 89, in showdown
2023-07-24 21:24:06     winner = await pokemon_battle(ps_websocket_client, ShowdownConfig.pokemon_mode)
2023-07-24 21:24:06   File "/showdown/showdown/run_battle.py", line 194, in pokemon_battle
2023-07-24 21:24:06     action_required = await async_update_battle(battle, msg)
2023-07-24 21:24:06   File "/showdown/showdown/battle_modifier.py", line 1255, in async_update_battle
2023-07-24 21:24:06     return update_battle(battle, msg)
2023-07-24 21:24:06   File "/showdown/showdown/battle_modifier.py", line 1239, in update_battle
2023-07-24 21:24:06     check_choice_band_or_specs(battle, damage_dealt)
2023-07-24 21:24:06   File "/showdown/showdown/battle_modifier.py", line 1023, in check_choice_band_or_specs
2023-07-24 21:24:06     damage = calculate_damage(state, constants.OPPONENT, damage_dealt.move, battle.user.last_used_move.move, calc_type='max')[0]
2023-07-24 21:24:06 TypeError: 'NoneType' object is not subscriptable
2023-07-24 21:23:35 |request|
2023-07-24 21:23:35 [DEBUG]    Received message from websocket: |pm|!Play3rdStrike| SMETStayInSchool|/nonotify Play3rdStrike accepted the challenge, starting &laquo;<a href="/battle-gen9customgame-1910009315">battle-gen9customgame-1910009315</a>&raquo;
2023-07-24 21:23:35 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:35 |t:|1690226615
2023-07-24 21:23:35 |gametype|singles
2023-07-24 21:23:35 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:35 |player|p1|SMETStayInSchool|barry|
2023-07-24 21:23:35 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:35 |request|{"teamPreview":true,"side":{"name":"Play3rdStrike","id":"p2","pokemon":[{"ident":"p2: porygonz","details":"Porygon-Z","condition":"311/311","active":true,"stats":{"atk":196,"def":176,"spa":306,"spd":186,"spe":216},"moves":["metronome"],"baseAbility":"download","item":"choicespecs","pokeball":"pokeball","ability":"download","commanding":false,"reviving":false,"teraType":"Normal","terastallized":""}]},"rqid":3}
2023-07-24 21:23:35 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:35 |player|p2|Play3rdStrike|mai|
2023-07-24 21:23:35 |teamsize|p1|1
2023-07-24 21:23:35 |teamsize|p2|1
2023-07-24 21:23:35 |gen|9
2023-07-24 21:23:35 |tier|[Gen 9] Custom Game
2023-07-24 21:23:35 |clearpoke
2023-07-24 21:23:35 |poke|p1|Glimmora, F|
2023-07-24 21:23:35 |poke|p2|Porygon-Z|
2023-07-24 21:23:35 |teampreview
2023-07-24 21:23:35 [DEBUG]    Making HTTP request for ALL usage stats
2023-07-24 21:23:35 please wait...
2023-07-24 21:23:38 [DEBUG]    Adding glimmora to sets lookup for this battle
2023-07-24 21:23:46 [DEBUG]    Adding glimmora to sets lookup for this battle
2023-07-24 21:23:53 [DEBUG]    Sending message to websocket: battle-gen9customgame-1910009315|/team 1|3
2023-07-24 21:23:53 [DEBUG]    Sending message to websocket: battle-gen9customgame-1910009315|hf
2023-07-24 21:23:53 [DEBUG]    Sending message to websocket: battle-gen9customgame-1910009315|/timer on
2023-07-24 21:23:53 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:53 |c|☆SMETStayInSchool|hf
2023-07-24 21:23:53 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:53 |inactive|Battle timer is ON: inactive players will automatically lose when time's up. (requested by SMETStayInSchool)
2023-07-24 21:23:53 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:53 |inactive|Time left: 300 sec this turn | 300 sec total | 60 sec grace
2023-07-24 21:23:53 [DEBUG]    Time left: 300
2023-07-24 21:23:53 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:53 |request|{"active":[{"moves":[{"move":"Metronome","id":"metronome","pp":16,"maxpp":16,"target":"self","disabled":false}],"canTerastallize":"Normal"}],"side":{"name":"Play3rdStrike","id":"p2","pokemon":[{"ident":"p2: porygonz","details":"Porygon-Z","condition":"311/311","active":true,"stats":{"atk":196,"def":176,"spa":306,"spd":186,"spe":216},"moves":["metronome"],"baseAbility":"download","item":"choicespecs","pokeball":"pokeball","ability":"download","commanding":false,"reviving":false,"teraType":"Normal","terastallized":""}]},"rqid":5}
2023-07-24 21:23:53 [DEBUG]    Received battle JSON from server: {'active': [{'moves': [{'move': 'Metronome', 'id': 'metronome', 'pp': 16, 'maxpp': 16, 'target': 'self', 'disabled': False}], 'canTerastallize': 'Normal'}], 'side': {'name': 'Play3rdStrike', 'id': 'p2', 'pokemon': [{'ident': 'p2: porygonz', 'details': 'Porygon-Z', 'condition': '311/311', 'active': True, 'stats': {'atk': 196, 'def': 176, 'spa': 306, 'spd': 186, 'spe': 216}, 'moves': ['metronome'], 'baseAbility': 'download', 'item': 'choicespecs', 'pokeball': 'pokeball', 'ability': 'download', 'commanding': False, 'reviving': False, 'teraType': 'Normal', 'terastallized': ''}]}, 'rqid': 5}
2023-07-24 21:23:53 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:53 |
2023-07-24 21:23:53 |t:|1690226632
2023-07-24 21:23:53 |start
2023-07-24 21:23:53 |switch|p1a: Glimmora|Glimmora, F|307/307
2023-07-24 21:23:53 |switch|p2a: porygonz|Porygon-Z|311/311
2023-07-24 21:23:53 |-ability|p2a: porygonz|Download|boost
2023-07-24 21:23:53 |-boost|p2a: porygonz|spa|1
2023-07-24 21:23:53 |turn|1
2023-07-24 21:23:53 [DEBUG]    Opponent has switched - clearing the last used move
2023-07-24 21:23:53 [DEBUG]    Setting porygonz's ability to download
2023-07-24 21:23:53 [DEBUG]    Sending message to websocket: battle-gen9customgame-1910009315|/choose move metronome|5
2023-07-24 21:23:53 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:53 |inactive|Time left: 300 sec this turn | 300 sec total
2023-07-24 21:23:53 [DEBUG]    Time left: 300
2023-07-24 21:23:54 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:54 |c|☆Play3rdStrike|hf
2023-07-24 21:23:54 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:54 |inactive|Play3rdStrike also wants the timer to be on.
2023-07-24 21:23:55 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:55 |request|{"active":[{"moves":[{"move":"Metronome","id":"metronome","pp":15,"maxpp":16,"target":"self","disabled":false}],"canTerastallize":"Normal"}],"side":{"name":"Play3rdStrike","id":"p2","pokemon":[{"ident":"p2: porygonz","details":"Porygon-Z","condition":"292/311","active":true,"stats":{"atk":196,"def":176,"spa":306,"spd":186,"spe":216},"moves":["metronome"],"baseAbility":"download","item":"choicespecs","pokeball":"pokeball","ability":"download","commanding":false,"reviving":false,"teraType":"Normal","terastallized":""}]},"rqid":7}
2023-07-24 21:23:55 [DEBUG]    Received battle JSON from server: {'active': [{'moves': [{'move': 'Metronome', 'id': 'metronome', 'pp': 15, 'maxpp': 16, 'target': 'self', 'disabled': False}], 'canTerastallize': 'Normal'}], 'side': {'name': 'Play3rdStrike', 'id': 'p2', 'pokemon': [{'ident': 'p2: porygonz', 'details': 'Porygon-Z', 'condition': '292/311', 'active': True, 'stats': {'atk': 196, 'def': 176, 'spa': 306, 'spd': 186, 'spe': 216}, 'moves': ['metronome'], 'baseAbility': 'download', 'item': 'choicespecs', 'pokeball': 'pokeball', 'ability': 'download', 'commanding': False, 'reviving': False, 'teraType': 'Normal', 'terastallized': ''}]}, 'rqid': 7}
2023-07-24 21:23:55 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:55 |
2023-07-24 21:23:55 |t:|1690226634
2023-07-24 21:23:55 |move|p2a: porygonz|Metronome|p2a: porygonz
2023-07-24 21:23:55 |move|p2a: porygonz|Swallow||[from]move: Metronome|[still]
2023-07-24 21:23:55 |-fail|p2a: porygonz
2023-07-24 21:23:55 |move|p1a: Glimmora|Metronome|p1a: Glimmora
2023-07-24 21:23:55 |move|p1a: Glimmora|Gyro Ball|p2a: porygonz|[from]move: Metronome
2023-07-24 21:23:55 |debug|BP: 26
2023-07-24 21:23:55 |-damage|p2a: porygonz|292/311
2023-07-24 21:23:55 |
2023-07-24 21:23:55 |upkeep
2023-07-24 21:23:55 |turn|2
2023-07-24 21:23:55 [DEBUG]    porygonz already has the move metronome. Decrementing the PP by 1
2023-07-24 21:23:55 [DEBUG]    porygonz used a status-move. Setting can_have_assultvest to False
2023-07-24 21:23:55 [DEBUG]    Setting porygonz's last used move: metronome
2023-07-24 21:23:55 [DEBUG]    porygonz used a status-move. Setting can_have_assultvest to False
2023-07-24 21:23:55 [DEBUG]    Setting porygonz's last used move: swallow
2023-07-24 21:23:55 [DEBUG]    glimmora used a status-move. Setting can_have_assultvest to False
2023-07-24 21:23:55 [DEBUG]    Setting glimmora's last used move: metronome
2023-07-24 21:23:55 [DEBUG]    glimmora did 6.11% damage to porygonz with gyroball
2023-07-24 21:23:55 [DEBUG]    Sending message to websocket: battle-gen9customgame-1910009315|/choose move metronome|7
2023-07-24 21:23:55 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:55 |inactive|Time left: 300 sec this turn | 300 sec total
2023-07-24 21:23:55 [DEBUG]    Time left: 300
2023-07-24 21:23:56 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:56 |request|{"active":[{"moves":[{"move":"Metronome","id":"metronome","pp":14,"maxpp":16,"target":"self","disabled":false}],"canTerastallize":"Normal"}],"side":{"name":"Play3rdStrike","id":"p2","pokemon":[{"ident":"p2: porygonz","details":"Porygon-Z","condition":"252/311","active":true,"stats":{"atk":196,"def":176,"spa":306,"spd":186,"spe":216},"moves":["metronome"],"baseAbility":"download","item":"choicespecs","pokeball":"pokeball","ability":"download","commanding":false,"reviving":false,"teraType":"Normal","terastallized":""}]},"rqid":9}
2023-07-24 21:23:56 [DEBUG]    Received battle JSON from server: {'active': [{'moves': [{'move': 'Metronome', 'id': 'metronome', 'pp': 14, 'maxpp': 16, 'target': 'self', 'disabled': False}], 'canTerastallize': 'Normal'}], 'side': {'name': 'Play3rdStrike', 'id': 'p2', 'pokemon': [{'ident': 'p2: porygonz', 'details': 'Porygon-Z', 'condition': '252/311', 'active': True, 'stats': {'atk': 196, 'def': 176, 'spa': 306, 'spd': 186, 'spe': 216}, 'moves': ['metronome'], 'baseAbility': 'download', 'item': 'choicespecs', 'pokeball': 'pokeball', 'ability': 'download', 'commanding': False, 'reviving': False, 'teraType': 'Normal', 'terastallized': ''}]}, 'rqid': 9}
2023-07-24 21:23:56 [DEBUG]    Received message from websocket: >battle-gen9customgame-1910009315
2023-07-24 21:23:56 |
2023-07-24 21:23:56 |t:|1690226635
2023-07-24 21:23:56 |move|p2a: porygonz|Metronome|p2a: porygonz
2023-07-24 21:23:56 |move|p2a: porygonz|Thunder Punch|p1a: Glimmora|[from]move: Metronome
2023-07-24 21:23:56 |-damage|p1a: Glimmora|252/307
2023-07-24 21:23:56 |move|p1a: Glimmora|Metronome|p1a: Glimmora
2023-07-24 21:23:56 |move|p1a: Glimmora|Endeavor|p2a: porygonz|[from]move: Metronome
2023-07-24 21:23:56 |-damage|p2a: porygonz|252/311
2023-07-24 21:23:56 |
2023-07-24 21:23:56 |upkeep
2023-07-24 21:23:56 |turn|3
2023-07-24 21:23:56 [DEBUG]    porygonz already has the move metronome. Decrementing the PP by 1
2023-07-24 21:23:56 [DEBUG]    porygonz used a status-move. Setting can_have_assultvest to False
2023-07-24 21:23:56 [DEBUG]    Setting porygonz's last used move: metronome
2023-07-24 21:23:56 [DEBUG]    glimmora already has the move metronome. Decrementing the PP by 1
2023-07-24 21:23:56 [DEBUG]    glimmora used a status-move. Setting can_have_assultvest to False
2023-07-24 21:23:56 [DEBUG]    Setting glimmora's last used move: metronome
2023-07-24 21:23:56 [DEBUG]    glimmora did 12.86% damage to porygonz with endeavor
2023-07-24 21:23:56 [DEBUG]    Possible set for opponent's glimmora:timid 0,0,4,252,0,252 unknown_item toxicdebris [metronome, mortalspin, stealthrock, earthpower]
2023-07-24 21:23:56 [DEBUG]    Possible set for opponent's glimmora:naive 0,4,0,252,0,252 unknown_item toxicdebris [metronome, mortalspin, stealthrock, earthpower]
2023-07-24 21:24:06 [ERROR]    Traceback (most recent call last):
2023-07-24 21:24:06   File "run.py", line 105, in <module>
2023-07-24 21:24:06     asyncio.run(showdown())
2023-07-24 21:24:06   File "/usr/local/lib/python3.8/asyncio/runners.py", line 44, in run
2023-07-24 21:24:06     return loop.run_until_complete(main)
2023-07-24 21:24:06   File "/usr/local/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
2023-07-24 21:24:06     return future.result()
2023-07-24 21:24:06   File "run.py", line 89, in showdown
2023-07-24 21:24:06     winner = await pokemon_battle(ps_websocket_client, ShowdownConfig.pokemon_mode)
2023-07-24 21:24:06   File "/showdown/showdown/run_battle.py", line 194, in pokemon_battle
2023-07-24 21:24:06     action_required = await async_update_battle(battle, msg)
2023-07-24 21:24:06   File "/showdown/showdown/battle_modifier.py", line 1255, in async_update_battle
2023-07-24 21:24:06     return update_battle(battle, msg)
2023-07-24 21:24:06   File "/showdown/showdown/battle_modifier.py", line 1239, in update_battle
2023-07-24 21:24:06     check_choice_band_or_specs(battle, damage_dealt)
2023-07-24 21:24:06   File "/showdown/showdown/battle_modifier.py", line 1023, in check_choice_band_or_specs
2023-07-24 21:24:06     damage = calculate_damage(state, constants.OPPONENT, damage_dealt.move, battle.user.last_used_move.move, calc_type='max')[0]
2023-07-24 21:24:06 TypeError: 'NoneType' object is not subscriptable
2023-07-24 21:24:06