steam-condenser 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +9 -9
- data/README.md +1 -0
- data/Rakefile +2 -2
- data/lib/steam-condenser/version.rb +1 -1
- data/lib/steam/community/alien_swarm/alien_swarm_stats.rb +1 -0
- data/lib/steam/community/cacheable.rb +1 -1
- data/lib/steam/community/css/css_stats.rb +1 -0
- data/lib/steam/community/defense_grid/defense_grid_stats.rb +1 -0
- data/lib/steam/community/dods/dods_stats.rb +1 -0
- data/lib/steam/community/dota2/dota2_beta_inventory.rb +4 -1
- data/lib/steam/community/dota2/dota2_inventory.rb +4 -1
- data/lib/steam/community/game_inventory.rb +68 -63
- data/lib/steam/community/game_item.rb +65 -22
- data/lib/steam/community/game_item_schema.rb +131 -0
- data/lib/steam/community/game_stats.rb +1 -1
- data/lib/steam/community/l4d/l4d2_stats.rb +3 -1
- data/lib/steam/community/l4d/l4d_stats.rb +3 -1
- data/lib/steam/community/portal2/portal2_inventory.rb +4 -1
- data/lib/steam/community/portal2/portal2_item.rb +8 -0
- data/lib/steam/community/portal2/portal2_stats.rb +1 -0
- data/lib/steam/community/steam_game.rb +15 -2
- data/lib/steam/community/steam_id.rb +39 -42
- data/lib/steam/community/tf2/tf2_beta_inventory.rb +4 -1
- data/lib/steam/community/tf2/tf2_inventory.rb +4 -1
- data/lib/steam/community/tf2/tf2_item.rb +8 -0
- data/lib/steam/community/tf2/tf2_stats.rb +1 -0
- data/lib/steam/community/web_api.rb +2 -1
- data/lib/steam/packets/c2m_checkmd5_packet.rb +1 -0
- data/lib/steam/packets/s2m_heartbeat2_packet.rb +1 -0
- data/lib/steam/servers/master_server.rb +6 -1
- data/lib/steam/servers/server.rb +12 -1
- data/lib/steam/servers/source_server.rb +12 -2
- data/lib/steam/sockets/master_server_socket.rb +5 -1
- data/lib/steam/sockets/rcon_socket.rb +9 -2
- data/lib/steam/sockets/steam_socket.rb +5 -1
- data/steam-condenser.gemspec +3 -3
- data/test/helper.rb +2 -2
- data/test/steam/{communtiy → community}/test_cacheable.rb +0 -0
- data/{pkg/steam-condenser-1.2.0/test/steam/communtiy → test/steam/community}/test_steam_group.rb +0 -0
- data/{pkg/steam-condenser-1.2.0/test/steam/communtiy → test/steam/community}/test_steam_id.rb +22 -0
- data/{pkg/steam-condenser-1.2.0/test/steam/communtiy → test/steam/community}/test_web_api.rb +0 -0
- data/test/steam/servers/test_source_server.rb +10 -2
- data/test/steam/sockets/test_rcon_socket.rb +3 -3
- metadata +112 -474
- data/doc/A2M_GET_SERVERS_BATCH2_Packet.html +0 -426
- data/doc/A2S_INFO_Packet.html +0 -260
- data/doc/A2S_PLAYER_Packet.html +0 -295
- data/doc/A2S_RULES_Packet.html +0 -296
- data/doc/A2S_SERVERQUERY_GETCHALLENGE_Packet.html +0 -261
- data/doc/AbstractL4DStats.html +0 -978
- data/doc/AbstractL4DWeapon.html +0 -734
- data/doc/Achievement.html +0 -660
- data/doc/AlienSwarmMission.html +0 -1557
- data/doc/AlienSwarmStats.html +0 -965
- data/doc/AlienSwarmWeapon.html +0 -640
- data/doc/AppNews.html +0 -1442
- data/doc/C2M_CHECKMD5_Packet.html +0 -341
- data/doc/CSSMap.html +0 -806
- data/doc/CSSStats.html +0 -825
- data/doc/CSSWeapon.html +0 -889
- data/doc/Cacheable.html +0 -913
- data/doc/Cacheable/ClassMethods.html +0 -696
- data/doc/DefenseGridStats.html +0 -2559
- data/doc/DoDSClass.html +0 -1264
- data/doc/DoDSStats.html +0 -486
- data/doc/DoDSWeapon.html +0 -806
- data/doc/Dota2BetaInventory.html +0 -339
- data/doc/Dota2Inventory.html +0 -339
- data/doc/Dota2Item.html +0 -388
- data/doc/Dota2Stats.html +0 -366
- data/doc/GameAchievement.html +0 -1257
- data/doc/GameClass.html +0 -321
- data/doc/GameInventory.html +0 -1363
- data/doc/GameItem.html +0 -1339
- data/doc/GameLeaderboard.html +0 -1609
- data/doc/GameLeaderboardEntry.html +0 -629
- data/doc/GameSchema.html +0 -568
- data/doc/GameServer.html +0 -2405
- data/doc/GameStats.html +0 -1461
- data/doc/GameWeapon.html +0 -590
- data/doc/GoldSrcServer.html +0 -740
- data/doc/GoldSrcSocket.html +0 -850
- data/doc/ItemSchema.html +0 -780
- data/doc/L4D2Map.html +0 -739
- data/doc/L4D2Stats.html +0 -930
- data/doc/L4D2Weapon.html +0 -486
- data/doc/L4DExplosive.html +0 -374
- data/doc/L4DMap.html +0 -776
- data/doc/L4DStats.html +0 -530
- data/doc/L4DWeapon.html +0 -296
- data/doc/M2A_SERVER_BATCH_Packet.html +0 -430
- data/doc/M2C_ISVALIDMD5_Packet.html +0 -383
- data/doc/M2S_REQUESTRESTART_Packet.html +0 -382
- data/doc/MasterServer.html +0 -1070
- data/doc/MasterServerSocket.html +0 -293
- data/doc/Module.html +0 -194
- data/doc/PacketFormatError.html +0 -257
- data/doc/Portal2Inventory.html +0 -339
- data/doc/Portal2Item.html +0 -499
- data/doc/Portal2Stats.html +0 -368
- data/doc/RCONAuthRequest.html +0 -318
- data/doc/RCONAuthResponse.html +0 -305
- data/doc/RCONBanError.html +0 -247
- data/doc/RCONExecRequest.html +0 -318
- data/doc/RCONExecResponse.html +0 -407
- data/doc/RCONGoldSrcRequest.html +0 -363
- data/doc/RCONGoldSrcResponse.html +0 -367
- data/doc/RCONNoAuthError.html +0 -247
- data/doc/RCONPacket.html +0 -548
- data/doc/RCONPacketFactory.html +0 -300
- data/doc/RCONSocket.html +0 -669
- data/doc/RCONTerminator.html +0 -304
- data/doc/RequestWithChallenge.html +0 -233
- data/doc/S2A_INFO2_Packet.html +0 -371
- data/doc/S2A_INFO_BasePacket.html +0 -357
- data/doc/S2A_INFO_DETAILED_Packet.html +0 -370
- data/doc/S2A_LOGSTRING_Packet.html +0 -373
- data/doc/S2A_PLAYER_Packet.html +0 -417
- data/doc/S2A_RULES_Packet.html +0 -411
- data/doc/S2C_CHALLENGE_Packet.html +0 -370
- data/doc/S2M_HEARTBEAT2_Packet.html +0 -444
- data/doc/Server.html +0 -781
- data/doc/SourceServer.html +0 -776
- data/doc/SourceSocket.html +0 -366
- data/doc/StatsAttribute.html +0 -514
- data/doc/SteamCondenser.html +0 -155
- data/doc/SteamCondenser/A2M_GET_SERVERS_BATCH2_Packet.html +0 -413
- data/doc/SteamCondenser/A2S_INFO_Packet.html +0 -249
- data/doc/SteamCondenser/A2S_PLAYER_Packet.html +0 -281
- data/doc/SteamCondenser/A2S_RULES_Packet.html +0 -282
- data/doc/SteamCondenser/A2S_SERVERQUERY_GETCHALLENGE_Packet.html +0 -250
- data/doc/SteamCondenser/AbstractL4DStats.html +0 -954
- data/doc/SteamCondenser/AbstractL4DWeapon.html +0 -703
- data/doc/SteamCondenser/AlienSwarmMission.html +0 -1494
- data/doc/SteamCondenser/AlienSwarmStats.html +0 -938
- data/doc/SteamCondenser/AlienSwarmWeapon.html +0 -614
- data/doc/SteamCondenser/AppNews.html +0 -1387
- data/doc/SteamCondenser/C2M_CHECKMD5_Packet.html +0 -327
- data/doc/SteamCondenser/CSSMap.html +0 -774
- data/doc/SteamCondenser/CSSStats.html +0 -799
- data/doc/SteamCondenser/CSSWeapon.html +0 -855
- data/doc/SteamCondenser/Cacheable.html +0 -698
- data/doc/SteamCondenser/Cacheable/ClassMethods.html +0 -531
- data/doc/SteamCondenser/Community.html +0 -134
- data/doc/SteamCondenser/DefenseGridStats.html +0 -2455
- data/doc/SteamCondenser/DoDSClass.html +0 -1209
- data/doc/SteamCondenser/DoDSStats.html +0 -470
- data/doc/SteamCondenser/DoDSWeapon.html +0 -774
- data/doc/SteamCondenser/Error.html +0 -156
- data/doc/SteamCondenser/Error/PacketFormat.html +0 -246
- data/doc/SteamCondenser/Error/RCONBan.html +0 -237
- data/doc/SteamCondenser/Error/RCONNoAuth.html +0 -236
- data/doc/SteamCondenser/Error/Timeout.html +0 -238
- data/doc/SteamCondenser/Error/WebApi.html +0 -339
- data/doc/SteamCondenser/GameAchievement.html +0 -1210
- data/doc/SteamCondenser/GameClass.html +0 -306
- data/doc/SteamCondenser/GameInventory.html +0 -1236
- data/doc/SteamCondenser/GameItem.html +0 -1282
- data/doc/SteamCondenser/GameLeaderboard.html +0 -1562
- data/doc/SteamCondenser/GameLeaderboardEntry.html +0 -604
- data/doc/SteamCondenser/GameServer.html +0 -2337
- data/doc/SteamCondenser/GameStats.html +0 -1416
- data/doc/SteamCondenser/GameWeapon.html +0 -566
- data/doc/SteamCondenser/GoldSrcServer.html +0 -716
- data/doc/SteamCondenser/GoldSrcSocket.html +0 -831
- data/doc/SteamCondenser/L4D2Map.html +0 -713
- data/doc/SteamCondenser/L4D2Stats.html +0 -906
- data/doc/SteamCondenser/L4D2Weapon.html +0 -466
- data/doc/SteamCondenser/L4DExplosive.html +0 -362
- data/doc/SteamCondenser/L4DMap.html +0 -746
- data/doc/SteamCondenser/L4DStats.html +0 -513
- data/doc/SteamCondenser/L4DWeapon.html +0 -284
- data/doc/SteamCondenser/M2A_SERVER_BATCH_Packet.html +0 -415
- data/doc/SteamCondenser/M2C_ISVALIDMD5_Packet.html +0 -368
- data/doc/SteamCondenser/M2S_REQUESTRESTART_Packet.html +0 -367
- data/doc/SteamCondenser/MasterServer.html +0 -1046
- data/doc/SteamCondenser/MasterServerSocket.html +0 -282
- data/doc/SteamCondenser/Portal2Inventory.html +0 -217
- data/doc/SteamCondenser/Portal2Item.html +0 -483
- data/doc/SteamCondenser/Portal2Stats.html +0 -353
- data/doc/SteamCondenser/RCONAuthRequest.html +0 -306
- data/doc/SteamCondenser/RCONAuthResponse.html +0 -293
- data/doc/SteamCondenser/RCONExecRequest.html +0 -306
- data/doc/SteamCondenser/RCONExecResponse.html +0 -392
- data/doc/SteamCondenser/RCONGoldSrcRequest.html +0 -349
- data/doc/SteamCondenser/RCONGoldSrcResponse.html +0 -354
- data/doc/SteamCondenser/RCONPacket.html +0 -530
- data/doc/SteamCondenser/RCONPacketFactory.html +0 -293
- data/doc/SteamCondenser/RCONSocket.html +0 -649
- data/doc/SteamCondenser/RCONTerminator.html +0 -292
- data/doc/SteamCondenser/RequestWithChallenge.html +0 -223
- data/doc/SteamCondenser/S2A_INFO2_Packet.html +0 -359
- data/doc/SteamCondenser/S2A_INFO_BasePacket.html +0 -342
- data/doc/SteamCondenser/S2A_INFO_DETAILED_Packet.html +0 -358
- data/doc/SteamCondenser/S2A_LOGSTRING_Packet.html +0 -358
- data/doc/SteamCondenser/S2A_PLAYER_Packet.html +0 -402
- data/doc/SteamCondenser/S2A_RULES_Packet.html +0 -396
- data/doc/SteamCondenser/S2C_CHALLENGE_Packet.html +0 -356
- data/doc/SteamCondenser/S2M_HEARTBEAT2_Packet.html +0 -430
- data/doc/SteamCondenser/Server.html +0 -754
- data/doc/SteamCondenser/Servers.html +0 -133
- data/doc/SteamCondenser/SourceServer.html +0 -752
- data/doc/SteamCondenser/SourceSocket.html +0 -355
- data/doc/SteamCondenser/SteamGame.html +0 -1802
- data/doc/SteamCondenser/SteamGroup.html +0 -969
- data/doc/SteamCondenser/SteamId.html +0 -4242
- data/doc/SteamCondenser/SteamPacket.html +0 -456
- data/doc/SteamCondenser/SteamPacketFactory.html +0 -521
- data/doc/SteamCondenser/SteamPlayer.html +0 -1696
- data/doc/SteamCondenser/SteamSocket.html +0 -679
- data/doc/SteamCondenser/TF2BetaInventory.html +0 -198
- data/doc/SteamCondenser/TF2Class.html +0 -1145
- data/doc/SteamCondenser/TF2ClassFactory.html +0 -263
- data/doc/SteamCondenser/TF2Engineer.html +0 -534
- data/doc/SteamCondenser/TF2GoldenWrench.html +0 -731
- data/doc/SteamCondenser/TF2Inventory.html +0 -217
- data/doc/SteamCondenser/TF2Item.html +0 -482
- data/doc/SteamCondenser/TF2Medic.html +0 -445
- data/doc/SteamCondenser/TF2Sniper.html +0 -357
- data/doc/SteamCondenser/TF2Spy.html +0 -531
- data/doc/SteamCondenser/TF2Stats.html +0 -670
- data/doc/SteamCondenser/TimeoutError.html +0 -249
- data/doc/SteamCondenser/WebApi.html +0 -999
- data/doc/SteamCondenser/XMLData.html +0 -171
- data/doc/SteamCondenserError.html +0 -153
- data/doc/SteamGame.html +0 -1859
- data/doc/SteamGroup.html +0 -1012
- data/doc/SteamId.html +0 -4369
- data/doc/SteamPacket.html +0 -469
- data/doc/SteamPacketFactory.html +0 -545
- data/doc/SteamPlayer.html +0 -1766
- data/doc/SteamSocket.html +0 -699
- data/doc/StringIO.html +0 -947
- data/doc/TF2BetaInventory.html +0 -315
- data/doc/TF2Class.html +0 -1194
- data/doc/TF2ClassFactory.html +0 -273
- data/doc/TF2Engineer.html +0 -558
- data/doc/TF2GoldenWrench.html +0 -760
- data/doc/TF2Inventory.html +0 -339
- data/doc/TF2Item.html +0 -499
- data/doc/TF2Medic.html +0 -465
- data/doc/TF2Sniper.html +0 -373
- data/doc/TF2Spy.html +0 -555
- data/doc/TF2Stats.html +0 -696
- data/doc/WebApi.html +0 -1021
- data/doc/WebApiError.html +0 -347
- data/doc/XMLData.html +0 -253
- data/doc/_index.html +0 -717
- data/doc/class_list.html +0 -53
- data/doc/css/common.css +0 -1
- data/doc/css/full_list.css +0 -57
- data/doc/css/style.css +0 -328
- data/doc/file.LICENSE.html +0 -100
- data/doc/file.README.html +0 -136
- data/doc/file_list.html +0 -58
- data/doc/frames.html +0 -28
- data/doc/index.html +0 -136
- data/doc/js/app.js +0 -214
- data/doc/js/full_list.js +0 -173
- data/doc/js/jquery.js +0 -4
- data/doc/method_list.html +0 -3988
- data/doc/methods_list.html +0 -3900
- data/doc/top-level-namespace.html +0 -114
- data/pkg/steam-condenser-1.2.0.gem +0 -0
- data/pkg/steam-condenser-1.2.0/Gemfile +0 -3
- data/pkg/steam-condenser-1.2.0/Gemfile.lock +0 -30
- data/pkg/steam-condenser-1.2.0/LICENSE +0 -25
- data/pkg/steam-condenser-1.2.0/README.md +0 -47
- data/pkg/steam-condenser-1.2.0/Rakefile +0 -46
- data/pkg/steam-condenser-1.2.0/lib/core_ext/stringio.rb +0 -91
- data/pkg/steam-condenser-1.2.0/lib/errors/packet_format_error.rb +0 -21
- data/pkg/steam-condenser-1.2.0/lib/errors/rcon_ban_error.rb +0 -22
- data/pkg/steam-condenser-1.2.0/lib/errors/rcon_no_auth_error.rb +0 -21
- data/pkg/steam-condenser-1.2.0/lib/errors/steam_condenser_error.rb +0 -11
- data/pkg/steam-condenser-1.2.0/lib/errors/timeout_error.rb +0 -28
- data/pkg/steam-condenser-1.2.0/lib/errors/web_api_error.rb +0 -57
- data/pkg/steam-condenser-1.2.0/lib/steam-condenser.rb +0 -18
- data/pkg/steam-condenser-1.2.0/lib/steam-condenser/community.rb +0 -24
- data/pkg/steam-condenser-1.2.0/lib/steam-condenser/servers.rb +0 -24
- data/pkg/steam-condenser-1.2.0/lib/steam-condenser/version.rb +0 -11
- data/pkg/steam-condenser-1.2.0/lib/steam/community/alien_swarm/alien_swarm_mission.rb +0 -119
- data/pkg/steam-condenser-1.2.0/lib/steam/community/alien_swarm/alien_swarm_stats.rb +0 -179
- data/pkg/steam-condenser-1.2.0/lib/steam/community/alien_swarm/alien_swarm_weapon.rb +0 -49
- data/pkg/steam-condenser-1.2.0/lib/steam/community/app_news.rb +0 -133
- data/pkg/steam-condenser-1.2.0/lib/steam/community/cacheable.rb +0 -137
- data/pkg/steam-condenser-1.2.0/lib/steam/community/css/css_map.rb +0 -61
- data/pkg/steam-condenser-1.2.0/lib/steam/community/css/css_stats.rb +0 -136
- data/pkg/steam-condenser-1.2.0/lib/steam/community/css/css_weapon.rb +0 -69
- data/pkg/steam-condenser-1.2.0/lib/steam/community/defense_grid/defense_grid_stats.rb +0 -237
- data/pkg/steam-condenser-1.2.0/lib/steam/community/dods/dods_class.rb +0 -90
- data/pkg/steam-condenser-1.2.0/lib/steam/community/dods/dods_stats.rb +0 -61
- data/pkg/steam-condenser-1.2.0/lib/steam/community/dods/dods_weapon.rb +0 -67
- data/pkg/steam-condenser-1.2.0/lib/steam/community/game_achievement.rb +0 -109
- data/pkg/steam-condenser-1.2.0/lib/steam/community/game_class.rb +0 -22
- data/pkg/steam-condenser-1.2.0/lib/steam/community/game_inventory.rb +0 -152
- data/pkg/steam-condenser-1.2.0/lib/steam/community/game_item.rb +0 -99
- data/pkg/steam-condenser-1.2.0/lib/steam/community/game_leaderboard.rb +0 -201
- data/pkg/steam-condenser-1.2.0/lib/steam/community/game_leaderboard_entry.rb +0 -43
- data/pkg/steam-condenser-1.2.0/lib/steam/community/game_stats.rb +0 -175
- data/pkg/steam-condenser-1.2.0/lib/steam/community/game_weapon.rb +0 -41
- data/pkg/steam-condenser-1.2.0/lib/steam/community/l4d/abstract_l4d_stats.rb +0 -173
- data/pkg/steam-condenser-1.2.0/lib/steam/community/l4d/abstract_l4d_weapon.rb +0 -56
- data/pkg/steam-condenser-1.2.0/lib/steam/community/l4d/l4d2_map.rb +0 -90
- data/pkg/steam-condenser-1.2.0/lib/steam/community/l4d/l4d2_stats.rb +0 -165
- data/pkg/steam-condenser-1.2.0/lib/steam/community/l4d/l4d2_weapon.rb +0 -38
- data/pkg/steam-condenser-1.2.0/lib/steam/community/l4d/l4d_explosive.rb +0 -34
- data/pkg/steam-condenser-1.2.0/lib/steam/community/l4d/l4d_map.rb +0 -65
- data/pkg/steam-condenser-1.2.0/lib/steam/community/l4d/l4d_stats.rb +0 -71
- data/pkg/steam-condenser-1.2.0/lib/steam/community/l4d/l4d_weapon.rb +0 -26
- data/pkg/steam-condenser-1.2.0/lib/steam/community/portal2/portal2_inventory.rb +0 -25
- data/pkg/steam-condenser-1.2.0/lib/steam/community/portal2/portal2_item.rb +0 -47
- data/pkg/steam-condenser-1.2.0/lib/steam/community/portal2/portal2_stats.rb +0 -32
- data/pkg/steam-condenser-1.2.0/lib/steam/community/steam_game.rb +0 -182
- data/pkg/steam-condenser-1.2.0/lib/steam/community/steam_group.rb +0 -135
- data/pkg/steam-condenser-1.2.0/lib/steam/community/steam_id.rb +0 -513
- data/pkg/steam-condenser-1.2.0/lib/steam/community/tf2/tf2_beta_inventory.rb +0 -22
- data/pkg/steam-condenser-1.2.0/lib/steam/community/tf2/tf2_class.rb +0 -92
- data/pkg/steam-condenser-1.2.0/lib/steam/community/tf2/tf2_class_factory.rb +0 -40
- data/pkg/steam-condenser-1.2.0/lib/steam/community/tf2/tf2_engineer.rb +0 -43
- data/pkg/steam-condenser-1.2.0/lib/steam/community/tf2/tf2_golden_wrench.rb +0 -70
- data/pkg/steam-condenser-1.2.0/lib/steam/community/tf2/tf2_inventory.rb +0 -25
- data/pkg/steam-condenser-1.2.0/lib/steam/community/tf2/tf2_item.rb +0 -47
- data/pkg/steam-condenser-1.2.0/lib/steam/community/tf2/tf2_medic.rb +0 -35
- data/pkg/steam-condenser-1.2.0/lib/steam/community/tf2/tf2_sniper.rb +0 -28
- data/pkg/steam-condenser-1.2.0/lib/steam/community/tf2/tf2_spy.rb +0 -41
- data/pkg/steam-condenser-1.2.0/lib/steam/community/tf2/tf2_stats.rb +0 -76
- data/pkg/steam-condenser-1.2.0/lib/steam/community/web_api.rb +0 -129
- data/pkg/steam-condenser-1.2.0/lib/steam/community/xml_data.rb +0 -17
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/a2m_get_servers_batch2_packet.rb +0 -59
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/a2s_info_packet.rb +0 -24
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/a2s_player_packet.rb +0 -31
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/a2s_rules_packet.rb +0 -32
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/a2s_serverquery_getchallenge_packet.rb +0 -25
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/c2m_checkmd5_packet.rb +0 -30
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/m2a_server_batch_packet.rb +0 -52
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/m2c_isvalidmd5_packet.rb +0 -34
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/m2s_requestrestart_packet.rb +0 -34
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/rcon/rcon_auth_request.rb +0 -28
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/rcon/rcon_auth_response.rb +0 -30
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/rcon/rcon_exec_request.rb +0 -28
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/rcon/rcon_exec_response.rb +0 -37
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/rcon/rcon_goldsrc_request.rb +0 -35
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/rcon/rcon_goldsrc_response.rb +0 -34
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/rcon/rcon_packet.rb +0 -57
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/rcon/rcon_packet_factory.rb +0 -43
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/rcon/rcon_terminator.rb +0 -29
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/request_with_challenge.rb +0 -19
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/s2a_info2_packet.rb +0 -62
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/s2a_info_base_packet.rb +0 -35
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/s2a_info_detailed_packet.rb +0 -61
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/s2a_logstring_packet.rb +0 -30
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/s2a_player_packet.rb +0 -44
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/s2a_rules_packet.rb +0 -48
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/s2c_challenge_packet.rb +0 -35
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/s2m_heartbeat2_packet.rb +0 -71
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/steam_packet.rb +0 -52
- data/pkg/steam-condenser-1.2.0/lib/steam/packets/steam_packet_factory.rb +0 -108
- data/pkg/steam-condenser-1.2.0/lib/steam/servers/game_server.rb +0 -392
- data/pkg/steam-condenser-1.2.0/lib/steam/servers/goldsrc_server.rb +0 -74
- data/pkg/steam-condenser-1.2.0/lib/steam/servers/master_server.rb +0 -182
- data/pkg/steam-condenser-1.2.0/lib/steam/servers/server.rb +0 -104
- data/pkg/steam-condenser-1.2.0/lib/steam/servers/source_server.rb +0 -98
- data/pkg/steam-condenser-1.2.0/lib/steam/sockets/goldsrc_socket.rb +0 -142
- data/pkg/steam-condenser-1.2.0/lib/steam/sockets/master_server_socket.rb +0 -30
- data/pkg/steam-condenser-1.2.0/lib/steam/sockets/rcon_socket.rb +0 -94
- data/pkg/steam-condenser-1.2.0/lib/steam/sockets/source_socket.rb +0 -78
- data/pkg/steam-condenser-1.2.0/lib/steam/sockets/steam_socket.rb +0 -86
- data/pkg/steam-condenser-1.2.0/lib/steam/steam_player.rb +0 -143
- data/pkg/steam-condenser-1.2.0/steam-condenser.gemspec +0 -25
- data/pkg/steam-condenser-1.2.0/test/core_ext/test_stringio.rb +0 -59
- data/pkg/steam-condenser-1.2.0/test/fixtures/invalid.xml +0 -2
- data/pkg/steam-condenser-1.2.0/test/fixtures/sonofthor.xml +0 -882
- data/pkg/steam-condenser-1.2.0/test/fixtures/status_goldsrc +0 -3
- data/pkg/steam-condenser-1.2.0/test/fixtures/status_source +0 -3
- data/pkg/steam-condenser-1.2.0/test/fixtures/valve-members.xml +0 -231
- data/pkg/steam-condenser-1.2.0/test/helper.rb +0 -45
- data/pkg/steam-condenser-1.2.0/test/steam/packets/test_steam_packet.rb +0 -37
- data/pkg/steam-condenser-1.2.0/test/steam/servers/test_game_server.rb +0 -296
- data/pkg/steam-condenser-1.2.0/test/steam/servers/test_goldsrc_server.rb +0 -59
- data/pkg/steam-condenser-1.2.0/test/steam/servers/test_master_server.rb +0 -131
- data/pkg/steam-condenser-1.2.0/test/steam/servers/test_server.rb +0 -72
- data/pkg/steam-condenser-1.2.0/test/steam/servers/test_source_server.rb +0 -126
- data/pkg/steam-condenser-1.2.0/test/steam/sockets/test_goldsrc_socket.rb +0 -127
- data/pkg/steam-condenser-1.2.0/test/steam/sockets/test_master_server_socket.rb +0 -42
- data/pkg/steam-condenser-1.2.0/test/steam/sockets/test_rcon_socket.rb +0 -109
- data/pkg/steam-condenser-1.2.0/test/steam/sockets/test_source_socket.rb +0 -77
- data/pkg/steam-condenser-1.2.0/test/steam/sockets/test_steam_socket.rb +0 -97
- data/test/steam/communtiy/test_steam_group.rb +0 -83
- data/test/steam/communtiy/test_steam_id.rb +0 -111
- data/test/steam/communtiy/test_web_api.rb +0 -98
data/Gemfile.lock
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
steam-condenser (1.
|
|
4
|
+
steam-condenser (1.3.0)
|
|
5
5
|
bzip2-ruby (~> 0.2.7)
|
|
6
|
-
multi_json (~> 1.
|
|
6
|
+
multi_json (~> 1.5.0)
|
|
7
7
|
multi_xml (~> 0.5.1)
|
|
8
8
|
|
|
9
9
|
GEM
|
|
@@ -11,20 +11,20 @@ GEM
|
|
|
11
11
|
specs:
|
|
12
12
|
bzip2-ruby (0.2.7)
|
|
13
13
|
metaclass (0.0.1)
|
|
14
|
-
mocha (0.
|
|
14
|
+
mocha (0.13.1)
|
|
15
15
|
metaclass (~> 0.0.1)
|
|
16
|
-
multi_json (1.
|
|
16
|
+
multi_json (1.5.0)
|
|
17
17
|
multi_xml (0.5.1)
|
|
18
|
-
rake (0.
|
|
19
|
-
shoulda-context (1.0.
|
|
20
|
-
yard (0.8.
|
|
18
|
+
rake (10.0.3)
|
|
19
|
+
shoulda-context (1.0.2)
|
|
20
|
+
yard (0.8.3)
|
|
21
21
|
|
|
22
22
|
PLATFORMS
|
|
23
23
|
ruby
|
|
24
24
|
|
|
25
25
|
DEPENDENCIES
|
|
26
|
-
mocha (~> 0.
|
|
27
|
-
rake (~> 0.
|
|
26
|
+
mocha (~> 0.13.0)
|
|
27
|
+
rake (~> 10.0.1)
|
|
28
28
|
shoulda-context (~> 1.0.0)
|
|
29
29
|
steam-condenser!
|
|
30
30
|
yard (~> 0.8.0)
|
data/README.md
CHANGED
data/Rakefile
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# This code is free software; you can redistribute it and/or modify it under
|
|
4
4
|
# the terms of the new BSD License.
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2008-
|
|
6
|
+
# Copyright (c) 2008-2012, Sebastian Staudt
|
|
7
7
|
|
|
8
8
|
require 'rake/testtask'
|
|
9
9
|
require 'rubygems/package_task'
|
|
@@ -27,7 +27,7 @@ begin
|
|
|
27
27
|
# Create a rake task +:doc+ to build the documentation using YARD
|
|
28
28
|
YARD::Rake::YardocTask.new do |yardoc|
|
|
29
29
|
yardoc.name = 'doc'
|
|
30
|
-
yardoc.files = [ 'lib/**/*.rb', 'LICENSE', 'README.md' ]
|
|
30
|
+
yardoc.files = [ 'lib/steam/community/cacheable.rb', 'lib/**/*.rb', 'LICENSE', 'README.md' ]
|
|
31
31
|
yardoc.options = [ '--private', '--title', 'Metior — API Documentation' ]
|
|
32
32
|
end
|
|
33
33
|
rescue LoadError
|
|
@@ -11,6 +11,9 @@ require 'steam/community/game_inventory'
|
|
|
11
11
|
# @author Sebastian Staudt
|
|
12
12
|
class Dota2BetaInventory < GameInventory
|
|
13
13
|
|
|
14
|
+
# The Steam application ID of the DotA 2 beta
|
|
15
|
+
APP_ID = 205790
|
|
16
|
+
|
|
14
17
|
# Creates a new inventory object for the given SteamID64 in the DotA 2 beta
|
|
15
18
|
# (App ID 205790)
|
|
16
19
|
#
|
|
@@ -18,7 +21,7 @@ class Dota2BetaInventory < GameInventory
|
|
|
18
21
|
# inventory for
|
|
19
22
|
# @macro cacheable
|
|
20
23
|
def initialize(steam_id64)
|
|
21
|
-
super
|
|
24
|
+
super APP_ID, steam_id64
|
|
22
25
|
end
|
|
23
26
|
|
|
24
27
|
# The class representing DotA 2 items
|
|
@@ -11,6 +11,9 @@ require 'steam/community/game_inventory'
|
|
|
11
11
|
# @author Sebastian Staudt
|
|
12
12
|
class Dota2Inventory < GameInventory
|
|
13
13
|
|
|
14
|
+
# The Steam application ID of DotA 2
|
|
15
|
+
APP_ID = 570
|
|
16
|
+
|
|
14
17
|
# Creates a new inventory object for the given SteamID64 in DotA 2
|
|
15
18
|
# (App ID 570)
|
|
16
19
|
#
|
|
@@ -18,7 +21,7 @@ class Dota2Inventory < GameInventory
|
|
|
18
21
|
# inventory for
|
|
19
22
|
# @macro cacheable
|
|
20
23
|
def initialize(steam_id64)
|
|
21
|
-
super
|
|
24
|
+
super APP_ID, steam_id64
|
|
22
25
|
end
|
|
23
26
|
|
|
24
27
|
# The class representing DotA 2 items
|
|
@@ -5,8 +5,19 @@
|
|
|
5
5
|
|
|
6
6
|
require 'steam/community/cacheable'
|
|
7
7
|
require 'steam/community/game_item'
|
|
8
|
+
require 'steam/community/game_item_schema'
|
|
9
|
+
require 'steam/community/steam_id'
|
|
8
10
|
require 'steam/community/web_api'
|
|
9
11
|
|
|
12
|
+
class GameInventory
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
require 'steam/community/dota2/dota2_beta_inventory'
|
|
16
|
+
require 'steam/community/dota2/dota2_inventory'
|
|
17
|
+
require 'steam/community/portal2/portal2_inventory'
|
|
18
|
+
require 'steam/community/tf2/tf2_beta_inventory'
|
|
19
|
+
require 'steam/community/tf2/tf2_inventory'
|
|
20
|
+
|
|
10
21
|
# Provides basic functionality to represent an inventory of player in a game
|
|
11
22
|
#
|
|
12
23
|
# @author Sebastian Staudt
|
|
@@ -30,13 +41,47 @@ class GameInventory
|
|
|
30
41
|
# @return [SteamId] The Steam ID of the owner of this inventory
|
|
31
42
|
attr_reader :user
|
|
32
43
|
|
|
33
|
-
@@
|
|
44
|
+
@@item_class = GameItem
|
|
34
45
|
|
|
35
|
-
@@
|
|
46
|
+
@@schema_language = 'en'
|
|
47
|
+
|
|
48
|
+
# This is a wrapper around all subclasses of `GameInventory` so that an
|
|
49
|
+
# instance of correct subclass is returned for a given application ID. If
|
|
50
|
+
# there's no specific subclass for an application ID exists, a generic
|
|
51
|
+
# instance of `GameInventory` is created.
|
|
52
|
+
#
|
|
53
|
+
# @param [Fixnum] app_id The application ID of the game
|
|
54
|
+
# @param [Fixnum] steam_id The 64bit Steam ID or vanity URL of the user
|
|
55
|
+
# @return [GameInventory] The inventory for the given user and game
|
|
56
|
+
# @raise [SteamCondenserException] if creating the inventory fails
|
|
57
|
+
# @macro cacheable
|
|
58
|
+
def self.new(app_id, steam_id, *args)
|
|
59
|
+
args = args.unshift steam_id
|
|
60
|
+
if self != GameInventory
|
|
61
|
+
args = args.unshift app_id
|
|
62
|
+
app_id = self::APP_ID
|
|
63
|
+
end
|
|
36
64
|
|
|
37
|
-
|
|
65
|
+
cacheable_new = Cacheable::ClassMethods.instance_method :new
|
|
66
|
+
|
|
67
|
+
case app_id
|
|
68
|
+
when Dota2BetaInventory::APP_ID
|
|
69
|
+
cacheable_new = cacheable_new.bind Dota2BetaInventory
|
|
70
|
+
when Dota2Inventory::APP_ID
|
|
71
|
+
cacheable_new = cacheable_new.bind Dota2Inventory
|
|
72
|
+
when Portal2Inventory::APP_ID
|
|
73
|
+
cacheable_new = cacheable_new.bind Portal2Inventory
|
|
74
|
+
when TF2BetaInventory::APP_ID
|
|
75
|
+
cacheable_new = cacheable_new.bind TF2BetaInventory
|
|
76
|
+
when TF2Inventory::APP_ID
|
|
77
|
+
cacheable_new = cacheable_new.bind TF2Inventory
|
|
78
|
+
else
|
|
79
|
+
cacheable_new = cacheable_new.bind GameInventory
|
|
80
|
+
return cacheable_new.call app_id, *args
|
|
81
|
+
end
|
|
38
82
|
|
|
39
|
-
|
|
83
|
+
cacheable_new.call *args
|
|
84
|
+
end
|
|
40
85
|
|
|
41
86
|
# Sets the language the schema should be fetched in (default is: `'en'`)
|
|
42
87
|
#
|
|
@@ -54,7 +99,13 @@ class GameInventory
|
|
|
54
99
|
# inventory for
|
|
55
100
|
# @macro cacheable
|
|
56
101
|
def initialize(app_id, steam_id64)
|
|
102
|
+
unless steam_id64.is_a? Fixnum
|
|
103
|
+
steam_id64 = SteamId.resolve_vanity_url steam_id64.to_s
|
|
104
|
+
raise SteamCondenserError.new 'User not found' if steam_id64.nil?
|
|
105
|
+
end
|
|
106
|
+
|
|
57
107
|
@app_id = app_id
|
|
108
|
+
@items = []
|
|
58
109
|
@steam_id64 = steam_id64
|
|
59
110
|
@user = SteamId.new steam_id64, false
|
|
60
111
|
end
|
|
@@ -67,22 +118,10 @@ class GameInventory
|
|
|
67
118
|
@items[index - 1]
|
|
68
119
|
end
|
|
69
120
|
|
|
70
|
-
#
|
|
71
|
-
#
|
|
72
|
-
# The schemas are fetched first if not done already
|
|
73
|
-
#
|
|
74
|
-
# @return [Hash<String, Hash<String, Object>>] The attribute schema for the
|
|
75
|
-
# game this inventory belongs to
|
|
76
|
-
# @see #update_schema
|
|
77
|
-
def attribute_schema
|
|
78
|
-
update_schema unless @@attribute_schema.key? app_id
|
|
79
|
-
|
|
80
|
-
@@attribute_schema[app_id]
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
# Updates the contents of the inventory using Steam Web API
|
|
121
|
+
# Updates the contents of the inventory using the Steam Web API
|
|
84
122
|
def fetch
|
|
85
|
-
|
|
123
|
+
params = { :SteamID => @user.steam_id64 }
|
|
124
|
+
result = WebApi.json! "IEconItems_#@app_id", 'GetPlayerItems', 1, params
|
|
86
125
|
item_class = self.class.send :class_variable_get, :@@item_class
|
|
87
126
|
|
|
88
127
|
@items = []
|
|
@@ -94,29 +133,20 @@ class GameInventory
|
|
|
94
133
|
end
|
|
95
134
|
end
|
|
96
135
|
|
|
97
|
-
# Returns
|
|
98
|
-
#
|
|
99
|
-
# The schemas are fetched first if not done already
|
|
136
|
+
# Returns a short, human-readable string representation of this inventory
|
|
100
137
|
#
|
|
101
|
-
# @return [
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
update_schema unless @@item_schema.key? app_id
|
|
106
|
-
|
|
107
|
-
@@item_schema[app_id]
|
|
138
|
+
# @return [String] A string representation of this inventory
|
|
139
|
+
def inspect
|
|
140
|
+
"#<#{self.class}:#@app_id #@steam_id64 (#{size} items) - " +
|
|
141
|
+
"#{fetch_time || 'not fetched'}>"
|
|
108
142
|
end
|
|
109
143
|
|
|
110
|
-
# Returns the
|
|
144
|
+
# Returns the item schema for this inventory
|
|
111
145
|
#
|
|
112
|
-
# The
|
|
113
|
-
#
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
def qualities
|
|
117
|
-
update_schema unless @@qualities.key? app_id
|
|
118
|
-
|
|
119
|
-
@@qualities[app_id]
|
|
146
|
+
# @return [GameItemSchema] The item schema for the game this inventory
|
|
147
|
+
# belongs to
|
|
148
|
+
def item_schema
|
|
149
|
+
@item_schema ||= GameItemSchema.new app_id, @@schema_language
|
|
120
150
|
end
|
|
121
151
|
|
|
122
152
|
# Returns the number of items in the user's inventory
|
|
@@ -126,29 +156,4 @@ class GameInventory
|
|
|
126
156
|
@items.size
|
|
127
157
|
end
|
|
128
158
|
|
|
129
|
-
protected
|
|
130
|
-
|
|
131
|
-
# Updates the item schema (this includes attributes and qualities) using the
|
|
132
|
-
# `GetSchema` method of interface `IEconItems_[AppID]`
|
|
133
|
-
def update_schema
|
|
134
|
-
params = {}
|
|
135
|
-
params[:language] = @@schema_language unless @@schema_language.nil?
|
|
136
|
-
result = WebApi.json!("IEconItems_#{app_id}", 'GetSchema', 1, params)
|
|
137
|
-
|
|
138
|
-
@@attribute_schema[app_id] = {}
|
|
139
|
-
result[:attributes].each do |attribute_data|
|
|
140
|
-
@@attribute_schema[app_id][attribute_data[:name]] = attribute_data
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
@@item_schema[app_id] = []
|
|
144
|
-
result[:items].each do |item_data|
|
|
145
|
-
@@item_schema[app_id][item_data[:defindex]] = item_data
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
@@qualities[app_id] = []
|
|
149
|
-
result[:qualities].each do |quality, id|
|
|
150
|
-
@@qualities[app_id][id] = quality
|
|
151
|
-
end
|
|
152
|
-
end
|
|
153
|
-
|
|
154
159
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# This code is free software; you can redistribute it and/or modify it under
|
|
2
2
|
# the terms of the new BSD License.
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2011, Sebastian Staudt
|
|
4
|
+
# Copyright (c) 2011-2012, Sebastian Staudt
|
|
5
5
|
|
|
6
6
|
require 'steam/community/web_api'
|
|
7
7
|
|
|
@@ -13,7 +13,7 @@ module GameItem
|
|
|
13
13
|
|
|
14
14
|
# Return the attributes of this item
|
|
15
15
|
#
|
|
16
|
-
# @return [Hash<Symbol, Object
|
|
16
|
+
# @return [Hash<Symbol, Object>, nil] The attributes of this item
|
|
17
17
|
attr_reader :attributes
|
|
18
18
|
|
|
19
19
|
# Returns the position of this item in the player's inventory
|
|
@@ -21,11 +21,6 @@ module GameItem
|
|
|
21
21
|
# @return [Fixnum] The position of this item in the player's inventory
|
|
22
22
|
attr_reader :backpack_position
|
|
23
23
|
|
|
24
|
-
# Returns the class of this item
|
|
25
|
-
#
|
|
26
|
-
# @return [String] The class of this item
|
|
27
|
-
attr_reader :class
|
|
28
|
-
|
|
29
24
|
# Returns the number of items the player owns of this item
|
|
30
25
|
#
|
|
31
26
|
# @return [Fixnum] The quanitity of this item
|
|
@@ -41,6 +36,21 @@ module GameItem
|
|
|
41
36
|
# @return [Fixnum] The ID of this item
|
|
42
37
|
attr_reader :id
|
|
43
38
|
|
|
39
|
+
# Returns the inventory this items belongs to
|
|
40
|
+
#
|
|
41
|
+
# @return [GameInventory] The inventory this item belongs to
|
|
42
|
+
attr_reader :inventory
|
|
43
|
+
|
|
44
|
+
# Returns the class of this item
|
|
45
|
+
#
|
|
46
|
+
# @return [String] The class of this item
|
|
47
|
+
attr_reader :item_class
|
|
48
|
+
|
|
49
|
+
# Returns the item set this item belongs to
|
|
50
|
+
#
|
|
51
|
+
# @return [Hash<Symbol, Object>, nil] The set this item belongs to
|
|
52
|
+
attr_reader :item_set
|
|
53
|
+
|
|
44
54
|
# Returns the level of this item
|
|
45
55
|
#
|
|
46
56
|
# @return [Fixnum] The level of this item
|
|
@@ -51,17 +61,21 @@ module GameItem
|
|
|
51
61
|
# @return [String] The level of this item
|
|
52
62
|
attr_reader :name
|
|
53
63
|
|
|
64
|
+
# Returns the origin of this item
|
|
65
|
+
#
|
|
66
|
+
# @return [String] The origin of this item
|
|
67
|
+
attr_reader :origin
|
|
68
|
+
|
|
69
|
+
# Returns the original ID of this item
|
|
70
|
+
#
|
|
71
|
+
# @return [Fixnum] The original ID of this item
|
|
72
|
+
attr_reader :original_id
|
|
73
|
+
|
|
54
74
|
# Returns the quality of this item
|
|
55
75
|
#
|
|
56
76
|
# @return [String] The quality of this item
|
|
57
77
|
attr_reader :quality
|
|
58
78
|
|
|
59
|
-
# Returns the slot where this item can be equipped in or `nil` if this item
|
|
60
|
-
# cannot be equipped
|
|
61
|
-
#
|
|
62
|
-
# @return [String] The slot where this item can be equipped in
|
|
63
|
-
attr_reader :slot
|
|
64
|
-
|
|
65
79
|
# Returns the type of this item
|
|
66
80
|
#
|
|
67
81
|
# @return [String] The type of this item
|
|
@@ -72,23 +86,52 @@ module GameItem
|
|
|
72
86
|
# @param [GameInventory] inventory The inventory this item is contained in
|
|
73
87
|
# @param [Hash<Symbol, Object>] item_data The data representing this item
|
|
74
88
|
def initialize(inventory, item_data)
|
|
89
|
+
@inventory = inventory
|
|
90
|
+
|
|
75
91
|
@defindex = item_data[:defindex]
|
|
76
92
|
@backpack_position = item_data[:inventory] & 0xffff
|
|
77
|
-
@class = inventory.item_schema[@defindex][:item_class]
|
|
78
93
|
@count = item_data[:quantity]
|
|
94
|
+
@craftable = !!item_data[:flag_cannot_craft]
|
|
79
95
|
@id = item_data[:id]
|
|
96
|
+
@item_class = schema_data[:item_class]
|
|
97
|
+
@item_set = inventory.item_schema.item_sets[schema_data[:item_set]]
|
|
80
98
|
@level = item_data[:level]
|
|
81
|
-
@name =
|
|
82
|
-
@
|
|
83
|
-
@
|
|
84
|
-
@
|
|
85
|
-
@
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
99
|
+
@name = schema_data[:item_name]
|
|
100
|
+
@origin = inventory.item_schema.origins[item_data[:origin]]
|
|
101
|
+
@original_id = item_data[:original_id]
|
|
102
|
+
@quality = inventory.item_schema.qualities[item_data[:quality]]
|
|
103
|
+
@tradeable = !!item_data[:flag_cannot_trade]
|
|
104
|
+
@type = schema_data[:item_type_name]
|
|
105
|
+
|
|
106
|
+
attributes_data = schema_data[:attributes] || []
|
|
107
|
+
attributes_data += item_data[:attributes] if item_data.key? :attributes
|
|
108
|
+
|
|
109
|
+
@attributes = []
|
|
110
|
+
attributes_data.each do |attribute_data|
|
|
111
|
+
attribute_key = attribute_data[:defindex]
|
|
112
|
+
attribute_key = attribute_data[:name] if attribute_key.nil?
|
|
113
|
+
|
|
114
|
+
unless attribute_key.nil?
|
|
115
|
+
schema_attribute_data = inventory.item_schema.attributes[attribute_key]
|
|
116
|
+
@attributes << attribute_data.merge(schema_attribute_data)
|
|
117
|
+
end
|
|
89
118
|
end
|
|
90
119
|
end
|
|
91
120
|
|
|
121
|
+
# Returns whether this item is craftable
|
|
122
|
+
#
|
|
123
|
+
# @return [Boolean] `true` if this item is craftable
|
|
124
|
+
def craftable?
|
|
125
|
+
@craftable
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# Returns the data for this item that's defined in the item schema
|
|
129
|
+
#
|
|
130
|
+
# @return [Hash<Symbol, Object>] The schema data for this item
|
|
131
|
+
def schema_data
|
|
132
|
+
inventory.item_schema.items[@defindex]
|
|
133
|
+
end
|
|
134
|
+
|
|
92
135
|
# Returns whether this item is tradeable
|
|
93
136
|
#
|
|
94
137
|
# @return [Boolean] `true` if this item is tradeable
|