in one of the last updates the gatherer text for Nature's Cloak changed due to their new handling of landwalk reminder text. I'm not sure if the new text is working as intended:
Green creatures you control gain forestwalk until end of turn. Forestwalk (...)
This looks like the sorcery itself has forestwalk?!
Do you think, this could be changed in the json file or do you want to keep the gatherer text?
It is kinda crappy, the way it is worded. It's been better in the past. However this is the official Oracle text, and is how Wizards (as of right now) is planning on printing cards in the future. Therefore I'll be keeping it the same as the gatherer text.
in one of the last updates the gatherer text for Nature's Cloak changed due to their new handling of landwalk reminder text. I'm not sure if the new text is working as intended:
Green creatures you control gain forestwalk until end of turn. Forestwalk (...)
This looks like the sorcery itself has forestwalk?!
Do you think, this could be changed in the json file or do you want to keep the gatherer text?
It is kinda crappy, the way it is worded. It's been better in the past. However this is the official Oracle text, and is how Wizards (as of right now) is planning on printing cards in the future. Therefore I'll be keeping it the same as the gatherer text.
It is the new Oracle text for this card yes but I think it is an error in this card's Oracle text change from DTK to ORI. Other non creature cards do not have this "Landwalk" before the reminder text.
Is there any chance we could get a set defined for the cards contained in Magic Duels: Origins? It consists of roughly 80% of the Origins cards plus other older cards. There are already requests for independent deck building apps for this game since the built-in deck-builder is fairly limited on filter capability.
It also brings up a new card characteristic that might need to be defined (maybe it is there already): The number of copies of a particular card that can be put in a deck as limited by rarity. Namely: common-4, uncommon-3, rare-2, mythic/planeswalker-1.
Is there any chance we could get a set defined for the cards contained in Magic Duels: Origins? It consists of roughly 80% of the Origins cards plus other older cards. There are already requests for independent deck building apps for this game since the built-in deck-builder is fairly limited on filter capability.
It also brings up a new card characteristic that might need to be defined (maybe it is there already): The number of copies of a particular card that can be put in a deck as limited by rarity. Namely: common-4, uncommon-3, rare-2, mythic/planeswalker-1.
Booster is 6 cards: 3 common, 2 uncommon, 1 Mythic/Rare
I've added it to the list of things to look into doing. Right at this moment I'm pretty swamped with some other work on a different project so I'm not exactly sure when I'll get around to adding this info. Thanks for the info on booster makeup, etc, that will be useful when the time comes.
In the mean time, since the cards are just reprints of existing cards, it should be pretty easy for someone who needs this to just scrape or even manually type in the list of cards into their code and import the existing cards already found in mtgjson.
in one of the last updates the gatherer text for Nature's Cloak changed due to their new handling of landwalk reminder text. I'm not sure if the new text is working as intended:
Green creatures you control gain forestwalk until end of turn. Forestwalk (...)
This looks like the sorcery itself has forestwalk?!
Do you think, this could be changed in the json file or do you want to keep the gatherer text?
It is kinda crappy, the way it is worded. It's been better in the past. However this is the official Oracle text, and is how Wizards (as of right now) is planning on printing cards in the future. Therefore I'll be keeping it the same as the gatherer text.
It is the new Oracle text for this card yes but I think it is an error in this card's Oracle text change from DTK to ORI. Other non creature cards do not have this "Landwalk" before the reminder text.
Ahh, you are correct. They don't seem to have done that weird wording in any other cards. It does indeed look like a Gatherer bug (big surprise). I've updated MTGJSON. Thanks for the additional info.
Is there any chance we could get a set defined for the cards contained in Magic Duels: Origins? It consists of roughly 80% of the Origins cards plus other older cards. There are already requests for independent deck building apps for this game since the built-in deck-builder is fairly limited on filter capability.
It also brings up a new card characteristic that might need to be defined (maybe it is there already): The number of copies of a particular card that can be put in a deck as limited by rarity. Namely: common-4, uncommon-3, rare-2, mythic/planeswalker-1.
Booster is 6 cards: 3 common, 2 uncommon, 1 Mythic/Rare
I've added it to the list of things to look into doing. Right at this moment I'm pretty swamped with some other work on a different project so I'm not exactly sure when I'll get around to adding this info. Thanks for the info on booster makeup, etc, that will be useful when the time comes.
In the mean time, since the cards are just reprints of existing cards, it should be pretty easy for someone who needs this to just scrape or even manually type in the list of cards into their code and import the existing cards already found in mtgjson.
Thanks for putting it on the to-do list. What about card copies restriction in a deck? Do we need a new attribute for this information?
Before I go into detail, has anybody tried and managed to import and represent all Cards and Sets in java?
I have but using Jackson instead of GSON.
File allsetsJson = ...;
List<MtgSet> sets = new ArrayList<>();
try (InputStream input = Files.newInputStream(allsetsJson) {
JsonParser parser = objectMapper.getFactory().createParser(input);
parser.nextValue(); // advance into top level object
while (parser.nextValue() != null) {
sets.add(parser.readValueAs(MtgSet.class));
}
}
This uses a combination of Jackson databinding and streaming to read each set. The MtgSet object has a few fields that I'm interested in (name, gathererCode, etc.) and a List of Cards. The Card object also has fields that I'm interested in. Jackson will deserialize the JSON object into the appropriate type almost like magic.
Note that I'm adding these deserialized MtgSet objects to a list instead of immediately processing each MtgSet. For memory sake you'll probably want to pass each MtgSet object along in your ingestion pipeline immediately after deserializing it to avoid having 10,000+ objects in memory at once.
Sembiance, as always, thanks for all your hard work on this project. i found a number of additional issues.
1. as mentioned above, ORI does not yet contain any of the starter cards (Aegis Angel, Divine Verdict, etc.).
2. in ORI boosters, the land slot can instead be a checklist card. i believe this should be indicated in the 'boosters' field as [... ['land','checklist'], 'marketing']
3. the languagesPrinted field for M14 lists 'Portuguese', whereas every other set refers to the language as 'Portuguese (Brazil)'
4. MM2 and ORI should have the magicCardsInfoCode field set (which should be 'mm2' and 'ori')
5. there are three sets from magiccards.info that don't appear in your data set -- 8eb,9eb, and uhaa. the first two i believe are just starter sets, which you include under 8ED and 9ED with the 'starter' field set to True. uhaa appear to be alternate art unhinged cards, which i believe are not currently included.
6. the magicRaritiesCodes field is sometimes a list and sometimes a string. it would be easier to work with if it were always a list (sometimes containing only one element)
7. the magicRaritiesCodes field should be set for two additional sets. pALP -- ['44-rarities-apac-lands']. pELP -- ['46-rarities-euro-lands']
8. although many card names have non-basic-ascii characters, the only set name like this is conspiracy (which uses '\xe2\x80\x94' for a dash). it seems like it would be more consistent to either use a normal ascii dash for CNS or to use the same UTF8 code in other set names with dashes.
9. as a result of the Will-o'-the-Wisp name fix, the printings and printingCodes in LEA,LEB,etc. need to be updated to include CED/CEI.
12. on mtgjson.com you state "I order the cards first by 'name', then by 'imageName' and finally by 'number'". since set,name,imageName are enough to uniquely identify each card, number is never actually needed as a tie breaker.
14. the number field for the starter cards in 8ED and 9ED should start with S. e.g. Eager Cadet is "S1", not "1".
15. though they are not indicated on gatherer, the BTD cards do have collector numbers printed on them. http://magiccards.info/bd/en.html
16. conversely, the CED/CEI cards do not have collector numbers printed on them, but they do have the number field populated. they appear to be purely alphabetical, which is how they are listed on magiccards.info, but are not "real" collector numbers. the same is true of some of the promos -- pDRC, pLGM, pPOD, etc.
17. i think it might make sense to split VAN into two sets, the 32 physical vanguard cards printed in 1997-1998, and the avatar cards which are online only.
What about card copies restriction in a deck? Do we need a new attribute for this information?
When the time comes that I add the Duels sets (Github Issue #53) it probably does make sense to add the card copies restriction info too (Github Issue #54)
2. in ORI boosters, the land slot can instead be a checklist card. i believe this should be indicated in the 'boosters' field as [... ['land','checklist'], 'marketing']
5. there are three sets from magiccards.info that don't appear in your data set -- 8eb,9eb, and uhaa. the first two i believe are just starter sets, which you include under 8ED and 9ED with the 'starter' field set to True. uhaa appear to be alternate art unhinged cards, which i believe are not currently included.
Yes, that is the way the 8EB and 9EB set cards are handled.
As for UHAA, these appear to be 'alternate art' foil versions of cards that were rarely included in the booster packs of unhinged. From what I read here the only difference between the original cards and these foils is that the foiling shows secret words, symbols or other art highlights. Since they were included in the boosters themselves, it ideally belongs in the set itself. For 'alterante art' cards in most sets I include a 'variations' array with the multiverseid of the other variations. This won't work here since Gatherer doesn't have the alternate art versions. I have GitHub Issue #39 open to add foil information per card. This is probably the best way to handle the unhinged alternate art cards, add another card with a 'foilOnly' flag set (or something similar). I've added this set info to that GitHub issue for further tracking there.
6. the magicRaritiesCodes field is sometimes a list and sometimes a string. it would be easier to work with if it were always a list (sometimes containing only one element)
8. although many card names have non-basic-ascii characters, the only set name like this is conspiracy (which uses '\xe2\x80\x94' for a dash). it seems like it would be more consistent to either use a normal ascii dash for CNS or to use the same UTF8 code in other set names with dashes.
I agree it would be more consistent, but Wizards uses this weird dash for the Conspiracy set not only on Gatherer but also on their wizards.com blog posts. This seems to be a very intentional move by Wizards and thus to me seems like it's the official version of the name. Due to this I plan on keeping it the way it is for the time being.
12. on mtgjson.com you state "I order the cards first by 'name', then by 'imageName' and finally by 'number'". since set,name,imageName are enough to uniquely identify each card, number is never actually needed as a tie breaker.
According to magiclibrarities those two cards were available in both standard white bordered and foil black bordered versions (unlike Lhurgoyf and Necropotence which only came in foil black bordered). Thus I will handle this once the 'per card foil info' GitHub Issue #39 is taken care of. I've added this info to that issue.
16. conversely, the CED/CEI cards do not have collector numbers printed on them, but they do have the number field populated. they appear to be purely alphabetical, which is how they are listed on magiccards.info, but are not "real" collector numbers. the same is true of some of the promos -- pDRC, pLGM, pPOD, etc.
I have fixed this for CED/CEI. As for the promo sets, I need to spend some more time looking into getting those fixed.
17. i think it might make sense to split VAN into two sets, the 32 physical vanguard cards printed in 1997-1998, and the avatar cards which are online only.
I agree. I have added this to the issues list as Github Issue #49
By the way, I've added all outstanding issues, feature requests and other changes to the MTGJSON Github Issues List
So feel free to comment on any of the issues or add any new ones.
I of course will still be monitoring, replying and posting here on this forum, just like always, just wanted to point out that all outstanding issues/requests are being kept track of on the MTGJSON Github Issues List
You're a legend, Sembiance! Thanks for your hard work on this resource.
Thanks for the kind words
It's funny, I don't even play MtG anymore. Haven't played it in over 3 years now.
I initially created MTGJSON and MTGIMAGE because I was going to create a 'visual' card search tool and deck builder. I wanted to use it myself to quickly and visually search through cards and create decks and try them out, in order to 'get back into' playing MTG, perhaps eventually at a competitive level. However after creating the two sites, I found I no longer wanted to create the search engine and I had lost all interest in playing MTG.
I initially created MTGJSON and MTGIMAGE because I was going to create a 'visual' card search tool and deck builder. I wanted to use it myself to quickly and visually search through cards and create decks and try them out, in order to 'get back into' playing MTG, perhaps eventually at a competitive level. However after creating the two sites, I found I no longer wanted to create the search engine and I had lost all interest in playing MTG.
I'm pretty sure that just makes you doubly legendary, Sem Thanks again for everything you've provided for us
Private Mod Note
():
Rollback Post to RevisionRollBack
Minouris's Library - Collection manager and deck builder. It's nifty - Check it out!
Just a warning to everyone, later today or tomorrow I will be updating MTGJSON with several backwards incompatible changes. Some fields are going away, some are changing format.
I very rarely make backwards incompatible changes as I don't want to break existing code, but a bunch of things have been piling up over the years and it's time to do a little bit of cleanup.
I'll be adding a big red WARNING at the top of the page to warn users of these changes.
In addition, I will be changing the 'major' version number from 2 to 3.
It has lots of backwards incompatible changes, I figured I'd do them all at once to limit how much anyone may need to change their apps/sites going forward.
Feel free to take a look at the changelog to see more details. Just wanted to post a warning here about the changes.
I see in the Changelog that you re-added the Variations field... Should that be appearing on all sets? It doesn't seem to be present in FTV: Angels.
The variations field is present when there are multiple cards with the same name in the same set. Because From the Vault: Angels doesn't have any duplicate cards (different art usually) then it doesn't have any variations field.
Hi,
Do you add Origins Clash pack? It has some alternate art cards.
Thanks
Michael
The clash pack cards are in a single set, 'Clash Pack' (CPK). This comes from magiccards.info and they have not yet updated to include the Magic Origins cards. They don't update very often, but I'm not aware of a more reliable and up to date source that has full card info. http://www.magiclibrarities.net/859-rarities-clash-pack-box-set-cards-english-cards-index.html has lists of the cards, but not the details of each card, so parsing that for the full card data isn't an option.
I've tried without success to import Allsets-x.json into MySQL.
If anyone has managed it could they please advise what "tricks" are required?
Thanks in advance...
Private Mod Note
():
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
It is kinda crappy, the way it is worded. It's been better in the past. However this is the official Oracle text, and is how Wizards (as of right now) is planning on printing cards in the future. Therefore I'll be keeping it the same as the gatherer text.
It is the new Oracle text for this card yes but I think it is an error in this card's Oracle text change from DTK to ORI. Other non creature cards do not have this "Landwalk" before the reminder text.
I just watched http://www.yawgatog.com/resources/oracle-changes/dtk-ori/#S4 to check every update made for the Landwalk keyword in ORI and only Nature's Cloak has this strange wording. Check the other cards:
Is there any chance we could get a set defined for the cards contained in Magic Duels: Origins? It consists of roughly 80% of the Origins cards plus other older cards. There are already requests for independent deck building apps for this game since the built-in deck-builder is fairly limited on filter capability.
It also brings up a new card characteristic that might need to be defined (maybe it is there already): The number of copies of a particular card that can be put in a deck as limited by rarity. Namely: common-4, uncommon-3, rare-2, mythic/planeswalker-1.
Here is a link to the card set:
http://magicduels.wikia.com/wiki/Cards
Booster is 6 cards: 3 common, 2 uncommon, 1 Mythic/Rare
I've added it to the list of things to look into doing. Right at this moment I'm pretty swamped with some other work on a different project so I'm not exactly sure when I'll get around to adding this info. Thanks for the info on booster makeup, etc, that will be useful when the time comes.
In the mean time, since the cards are just reprints of existing cards, it should be pretty easy for someone who needs this to just scrape or even manually type in the list of cards into their code and import the existing cards already found in mtgjson.
Ahh, you are correct. They don't seem to have done that weird wording in any other cards. It does indeed look like a Gatherer bug (big surprise). I've updated MTGJSON. Thanks for the additional info.
Thanks for putting it on the to-do list. What about card copies restriction in a deck? Do we need a new attribute for this information?
I have but using Jackson instead of GSON.
This uses a combination of Jackson databinding and streaming to read each set. The MtgSet object has a few fields that I'm interested in (name, gathererCode, etc.) and a List of Cards. The Card object also has fields that I'm interested in. Jackson will deserialize the JSON object into the appropriate type almost like magic.
Note that I'm adding these deserialized MtgSet objects to a list instead of immediately processing each MtgSet. For memory sake you'll probably want to pass each MtgSet object along in your ingestion pipeline immediately after deserializing it to avoid having 10,000+ objects in memory at once.
[card=Jace Beleren]Jace[/card] = Jace
Magic CompRules
Scry Rollover Popups for Google Chrome
The first rule of Cursecatcher is, You do not talk about Cursecatcher.
1. as mentioned above, ORI does not yet contain any of the starter cards (Aegis Angel, Divine Verdict, etc.).
2. in ORI boosters, the land slot can instead be a checklist card. i believe this should be indicated in the 'boosters' field as [... ['land','checklist'], 'marketing']
3. the languagesPrinted field for M14 lists 'Portuguese', whereas every other set refers to the language as 'Portuguese (Brazil)'
4. MM2 and ORI should have the magicCardsInfoCode field set (which should be 'mm2' and 'ori')
5. there are three sets from magiccards.info that don't appear in your data set -- 8eb,9eb, and uhaa. the first two i believe are just starter sets, which you include under 8ED and 9ED with the 'starter' field set to True. uhaa appear to be alternate art unhinged cards, which i believe are not currently included.
6. the magicRaritiesCodes field is sometimes a list and sometimes a string. it would be easier to work with if it were always a list (sometimes containing only one element)
7. the magicRaritiesCodes field should be set for two additional sets. pALP -- ['44-rarities-apac-lands']. pELP -- ['46-rarities-euro-lands']
8. although many card names have non-basic-ascii characters, the only set name like this is conspiracy (which uses '\xe2\x80\x94' for a dash). it seems like it would be more consistent to either use a normal ascii dash for CNS or to use the same UTF8 code in other set names with dashes.
9. as a result of the Will-o'-the-Wisp name fix, the printings and printingCodes in LEA,LEB,etc. need to be updated to include CED/CEI.
10. some of the cards in pMEI do actually have multiverseid's, e.g. Windseeker Centaur is 97057. you can find a full list in http://gatherer.wizards.com/Pages/Search/Default.aspx?set=[%22Promo%20set%20for%20Gatherer%22]
11. fyi, cards printed in other languages now have their own multiverseid's, e.g. http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=400000. i personally would not find this useful, but others might.
12. on mtgjson.com you state "I order the cards first by 'name', then by 'imageName' and finally by 'number'". since set,name,imageName are enough to uniquely identify each card, number is never actually needed as a tie breaker.
13. in DKM, Icy Manipulator and Incinerate should also be marked as black bordered, according to http://archive.wizards.com/magic/tcg/productarticle.aspx?x=mtg/tcg/deckmasters2001/productinfo
14. the number field for the starter cards in 8ED and 9ED should start with S. e.g. Eager Cadet is "S1", not "1".
15. though they are not indicated on gatherer, the BTD cards do have collector numbers printed on them. http://magiccards.info/bd/en.html
16. conversely, the CED/CEI cards do not have collector numbers printed on them, but they do have the number field populated. they appear to be purely alphabetical, which is how they are listed on magiccards.info, but are not "real" collector numbers. the same is true of some of the promos -- pDRC, pLGM, pPOD, etc.
17. i think it might make sense to split VAN into two sets, the 32 physical vanguard cards printed in 1997-1998, and the avatar cards which are online only.
When the time comes that I add the Duels sets (Github Issue #53) it probably does make sense to add the card copies restriction info too (Github Issue #54)
Thanks for the heads up. I have added these 'starter' cards to MTGJSON ORI set in the same manner as they were added to M15.
According to: http://mtgsalvation.gamepedia.com/Magic_Origins#Tokens_.2F_Emblems_.2F_Checklist
The '16th' card that is marketing is sometimes the checklist card, instead of the land card. Does anyone know which one it truly is? Is there always a land or is the land sometimes replaced with a checklist as smecaj states?
Fixed.
Fixed. I also fixed/updated my cron script that was supposed to catch and notify me when magiccards.info got around to adding sets.
Yes, that is the way the 8EB and 9EB set cards are handled.
As for UHAA, these appear to be 'alternate art' foil versions of cards that were rarely included in the booster packs of unhinged. From what I read here the only difference between the original cards and these foils is that the foiling shows secret words, symbols or other art highlights. Since they were included in the boosters themselves, it ideally belongs in the set itself. For 'alterante art' cards in most sets I include a 'variations' array with the multiverseid of the other variations. This won't work here since Gatherer doesn't have the alternate art versions. I have GitHub Issue #39 open to add foil information per card. This is probably the best way to handle the unhinged alternate art cards, add another card with a 'foilOnly' flag set (or something similar). I've added this set info to that GitHub issue for further tracking there.
I agree, fixed.
Fixed.
I agree it would be more consistent, but Wizards uses this weird dash for the Conspiracy set not only on Gatherer but also on their wizards.com blog posts. This seems to be a very intentional move by Wizards and thus to me seems like it's the official version of the name. Due to this I plan on keeping it the way it is for the time being.
Fixed.
Fixed.
Thanks. Those will be used once I eventually add full foreign language support. This is tracked in Github Issue #40
I have updated the docs.
According to magiclibrarities those two cards were available in both standard white bordered and foil black bordered versions (unlike Lhurgoyf and Necropotence which only came in foil black bordered). Thus I will handle this once the 'per card foil info' GitHub Issue #39 is taken care of. I've added this info to that issue.
Whoops. This used to be the case, but the numbers got lost when I moved the cards around before they ended up in 8ED/9ED.
Fixed.
Fixed.
I have fixed this for CED/CEI. As for the promo sets, I need to spend some more time looking into getting those fixed.
I agree. I have added this to the issues list as Github Issue #49
So feel free to comment on any of the issues or add any new ones.
I of course will still be monitoring, replying and posting here on this forum, just like always, just wanted to point out that all outstanding issues/requests are being kept track of on the MTGJSON Github Issues List
Thanks for the kind words
It's funny, I don't even play MtG anymore. Haven't played it in over 3 years now.
I initially created MTGJSON and MTGIMAGE because I was going to create a 'visual' card search tool and deck builder. I wanted to use it myself to quickly and visually search through cards and create decks and try them out, in order to 'get back into' playing MTG, perhaps eventually at a competitive level. However after creating the two sites, I found I no longer wanted to create the search engine and I had lost all interest in playing MTG.
I'm pretty sure that just makes you doubly legendary, Sem Thanks again for everything you've provided for us
Minouris's Library - Collection manager and deck builder. It's nifty - Check it out!
Fixed.
Fixed.
Thanks for this resource.
/json/version.json /json/version-full.json, and /json/changelog.json have the information you want in different levels of detail.
I very rarely make backwards incompatible changes as I don't want to break existing code, but a bunch of things have been piling up over the years and it's time to do a little bit of cleanup.
I'll be adding a big red WARNING at the top of the page to warn users of these changes.
In addition, I will be changing the 'major' version number from 2 to 3.
It has lots of backwards incompatible changes, I figured I'd do them all at once to limit how much anyone may need to change their apps/sites going forward.
Feel free to take a look at the changelog to see more details. Just wanted to post a warning here about the changes.
I see in the Changelog that you re-added the Variations field... Should that be appearing on all sets? It doesn't seem to be present in FTV: Angels.
Changes have made Legalities a bit easier to parse - thanks
Minouris's Library - Collection manager and deck builder. It's nifty - Check it out!
The variations field is present when there are multiple cards with the same name in the same set. Because From the Vault: Angels doesn't have any duplicate cards (different art usually) then it doesn't have any variations field.
Minouris's Library - Collection manager and deck builder. It's nifty - Check it out!
The clash pack cards are in a single set, 'Clash Pack' (CPK). This comes from magiccards.info and they have not yet updated to include the Magic Origins cards. They don't update very often, but I'm not aware of a more reliable and up to date source that has full card info. http://www.magiclibrarities.net/859-rarities-clash-pack-box-set-cards-english-cards-index.html has lists of the cards, but not the details of each card, so parsing that for the full card data isn't an option.
If anyone has managed it could they please advise what "tricks" are required?
Thanks in advance...