diff --git a/planttycoon/__init__.py b/planttycoon/__init__.py index c43d7b7..bc08ce1 100644 --- a/planttycoon/__init__.py +++ b/planttycoon/__init__.py @@ -1,5 +1,9 @@ +from redbot.core import data_manager + from .planttycoon import PlantTycoon def setup(bot): - bot.add_cog(PlantTycoon(bot)) + tycoon = PlantTycoon(bot) + data_manager.load_bundled_data(tycoon, __file__) + bot.add_cog(tycoon) diff --git a/planttycoon/data/plants.json b/planttycoon/data/plants.json index 21cb05b..cb597af 100644 --- a/planttycoon/data/plants.json +++ b/planttycoon/data/plants.json @@ -379,7 +379,7 @@ "rarity": "rare", "image": "http://i.imgur.com/hoh17hp.jpg", "health": 100, - "degradation": 1, + "degradation": 1.5, "threshold": 110, "badge": "Sporadic", "reward": 2400 @@ -391,7 +391,7 @@ "rarity": "rare", "image": "http://i.imgur.com/lhSjfQY.jpg", "health": 100, - "degradation": 1, + "degradation": 1.5, "threshold": 110, "badge": "Sporadic", "reward": 2400 @@ -403,7 +403,7 @@ "rarity": "rare", "image": "http://i.imgur.com/Dhw9ync.jpg", "health": 100, - "degradation": 1, + "degradation": 1.5, "threshold": 110, "badge": "Sporadic", "reward": 2400 @@ -415,7 +415,7 @@ "rarity": "rare", "image": "http://i.imgur.com/h4fJo2R.jpg", "health": 100, - "degradation": 1, + "degradation": 1.5, "threshold": 110, "badge": "Sporadic", "reward": 2400 @@ -427,7 +427,7 @@ "rarity": "rare", "image": "http://i.imgur.com/NoSdxXh.jpg", "health": 100, - "degradation": 1, + "degradation": 1.5, "threshold": 110, "badge": "Sporadic", "reward": 2400 @@ -439,7 +439,7 @@ "rarity": "rare", "image": "http://i.imgur.com/4ArSekX.jpg", "health": 100, - "degradation": 1, + "degradation": 1.5, "threshold": 110, "badge": "Sporadic", "reward": 2400 @@ -451,43 +451,19 @@ "rarity": "super-rare", "image": "http://i.imgur.com/ASZXr7C.png", "health": 100, - "degradation": 1, - "threshold": 110, - "badge": "Odd-pod", - "reward": 3600 - }, - { - "name": "tba", - "article": "a", - "time": 9000, - "rarity": "super-rare", - "image": "tba", - "health": 100, - "degradation": 1.5, + "degradation": 2, "threshold": 110, "badge": "Odd-pod", "reward": 3600 }, { - "name": "Pirahna Plant", + "name": "Piranha Plant", "article": "a", "time": 9000, "rarity": "super-rare", "image": "http://i.imgur.com/c03i9W7.jpg", "health": 100, - "degradation": 1.5, - "threshold": 110, - "badge": "Odd-pod", - "reward": 3600 - }, - { - "name": "tba", - "article": "a", - "time": 9000, - "rarity": "super-rare", - "image": "tba", - "health": 100, - "degradation": 1.5, + "degradation": 2, "threshold": 110, "badge": "Odd-pod", "reward": 3600 @@ -499,19 +475,19 @@ "rarity": "super-rare", "image": "https://i.imgur.com/Vo4v2Ry.png", "health": 100, - "degradation": 1.5, + "degradation": 2, "threshold": 110, "badge": "Odd-pod", "reward": 3600 }, { - "name": "tba", + "name": "Eldergleam Tree", "article": "a", "time": 10800, "rarity": "epic", - "image": "tba", + "image": "https://i.imgur.com/pnZYKZc.jpg", "health": 100, - "degradation": 2, + "degradation": 2.5, "threshold": 110, "badge": "Greenfingers", "reward": 5400 @@ -523,7 +499,7 @@ "rarity": "epic", "image": "http://i.imgur.com/sizf7hE.png", "health": 100, - "degradation": 2, + "degradation": 2.5, "threshold": 110, "badge": "Greenfingers", "reward": 5400 @@ -535,7 +511,7 @@ "rarity": "epic", "image": "http://i.imgur.com/9f5QzaW.jpg", "health": 100, - "degradation": 2, + "degradation": 2.5, "threshold": 110, "badge": "Greenfingers", "reward": 5400 @@ -547,7 +523,7 @@ "rarity": "epic", "image": "https://i.imgur.com/ExqLLHO.png", "health": 100, - "degradation": 2, + "degradation": 2.5, "threshold": 110, "badge": "Greenfingers", "reward": 5400 @@ -559,7 +535,7 @@ "rarity": "epic", "image": "https://i.imgur.com/tv2B72j.png", "health": 100, - "degradation": 2, + "degradation": 2.5, "threshold": 110, "badge": "Greenfingers", "reward": 5400 @@ -571,7 +547,7 @@ "rarity": "legendary", "image": "http://i.imgur.com/MIJQDLL.jpg", "health": 100, - "degradation": 3, + "degradation": 8, "threshold": 110, "badge": "Nobel Peas Prize", "reward": 10800 @@ -583,7 +559,7 @@ "rarity": "legendary", "image": "http://i.imgur.com/cFSmaHH.png", "health": 100, - "degradation": 3, + "degradation": 8, "threshold": 110, "badge": "Nobel Peas Prize", "reward": 10800 @@ -595,7 +571,7 @@ "rarity": "legendary", "image": "http://i.imgur.com/Ibwm2xY.jpg", "health": 100, - "degradation": 3, + "degradation": 8, "threshold": 110, "badge": "Nobel Peas Prize", "reward": 10800 @@ -687,4 +663,4 @@ "reward": 21600 } } -} +} \ No newline at end of file diff --git a/planttycoon/data/products.json b/planttycoon/data/products.json index 8d5b98d..f8a0a96 100644 --- a/planttycoon/data/products.json +++ b/planttycoon/data/products.json @@ -39,4 +39,4 @@ "category": "tool", "uses": 10 } -} +} \ No newline at end of file diff --git a/planttycoon/planttycoon.py b/planttycoon/planttycoon.py index 65d0c78..13559a0 100644 --- a/planttycoon/planttycoon.py +++ b/planttycoon/planttycoon.py @@ -1,13 +1,15 @@ import asyncio import collections import datetime +import json import time from random import choice +from typing import Any import discord from redbot.core import commands, Config, bank from redbot.core.bot import Red -from typing import Any +from redbot.core.data_manager import bundled_data_path Cog: Any = getattr(commands, "Cog", object) @@ -98,739 +100,9 @@ class PlantTycoon(Cog): self.config.register_user(**default_user) - self.plants = { - "plants": [ - { - "name": "Poppy", - "article": "a", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/S4hjyUX.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Dandelion", - "article": "a", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/emqnQP2.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Daisy", - "article": "a", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/lcFq4AB.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Chrysanthemum", - "article": "a", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/5jLtqWL.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Pansy", - "article": "a", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/f7TgD1b.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Lavender", - "article": "a", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/g3OmOSK.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Lily", - "article": "a", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/0hzy7lO.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Petunia", - "article": "a", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/rJm8ISv.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Sunflower", - "article": "a", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/AzgzQK9.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Daffodil", - "article": "a", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/pnCCRsH.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Clover", - "article": "a", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/jNTgirw.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Tulip", - "article": "a", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/kodIFjE.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Rose", - "article": "a", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/sdTNiOH.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Aster", - "article": "an", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/1tN04Hl.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Aloe Vera", - "article": "an", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/WFAYIpx.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Orchid", - "article": "an", - "time": 3600, - "rarity": "common", - "image": "http://i.imgur.com/IQrQYDC.jpg", - "health": 100, - "degradation": 0.625, - "threshold": 110, - "badge": "Flower Power", - "reward": 600, - }, - { - "name": "Dragon Fruit Plant", - "article": "a", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/pfngpDS.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Mango Tree", - "article": "a", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/ybR78Oc.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Lychee Tree", - "article": "a", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/w9LkfhX.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Durian Tree", - "article": "a", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/jh249fz.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Fig Tree", - "article": "a", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/YkhnpEV.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Jack Fruit Tree", - "article": "a", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/2D79TlA.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Prickly Pear Plant", - "article": "a", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/GrcGAGj.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Pineapple Plant", - "article": "a", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/VopYQtr.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Citron Tree", - "article": "a", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/zh7Dr23.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Cherimoya Tree", - "article": "a", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/H62gQK6.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Mangosteen Tree", - "article": "a", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/McNnMqa.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Guava Tree", - "article": "a", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/iy8WgPt.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Orange Tree", - "article": "an", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/lwjEJTm.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Apple Tree", - "article": "an", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/QI3UTR3.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Sapodilla Tree", - "article": "a", - "time": 5400, - "rarity": "uncommon", - "image": "http://i.imgur.com/6BvO5Fu.jpg", - "health": 100, - "degradation": 0.75, - "threshold": 110, - "badge": "Fruit Brute", - "reward": 1200, - }, - { - "name": "Franklin Tree", - "article": "a", - "time": 7200, - "rarity": "rare", - "image": "http://i.imgur.com/hoh17hp.jpg", - "health": 100, - "degradation": 1.5, - "threshold": 110, - "badge": "Sporadic", - "reward": 2400, - }, - { - "name": "Parrot's Beak", - "article": "a", - "time": 7200, - "rarity": "rare", - "image": "http://i.imgur.com/lhSjfQY.jpg", - "health": 100, - "degradation": 1.5, - "threshold": 110, - "badge": "Sporadic", - "reward": 2400, - }, - { - "name": "Koki'o", - "article": "a", - "time": 7200, - "rarity": "rare", - "image": "http://i.imgur.com/Dhw9ync.jpg", - "health": 100, - "degradation": 1.5, - "threshold": 110, - "badge": "Sporadic", - "reward": 2400, - }, - { - "name": "Jade Vine", - "article": "a", - "time": 7200, - "rarity": "rare", - "image": "http://i.imgur.com/h4fJo2R.jpg", - "health": 100, - "degradation": 1.5, - "threshold": 110, - "badge": "Sporadic", - "reward": 2400, - }, - { - "name": "Venus Fly Trap", - "article": "a", - "time": 7200, - "rarity": "rare", - "image": "http://i.imgur.com/NoSdxXh.jpg", - "health": 100, - "degradation": 1.5, - "threshold": 110, - "badge": "Sporadic", - "reward": 2400, - }, - { - "name": "Chocolate Cosmos", - "article": "a", - "time": 7200, - "rarity": "rare", - "image": "http://i.imgur.com/4ArSekX.jpg", - "health": 100, - "degradation": 1.5, - "threshold": 110, - "badge": "Sporadic", - "reward": 2400, - }, - { - "name": "Pizza Plant", - "article": "a", - "time": 9000, - "rarity": "super-rare", - "image": "http://i.imgur.com/ASZXr7C.png", - "health": 100, - "degradation": 2, - "threshold": 110, - "badge": "Odd-pod", - "reward": 3600, - }, - # { - # "name": "tba", - # "article": "a", - # "time": 9000, - # "rarity": "super-rare", - # "image": "tba", - # "health": 100, - # "degradation": 1.5, - # "threshold": 110, - # "badge": "Odd-pod", - # "reward": 3600 - # }, - { - "name": "Piranha Plant", - "article": "a", - "time": 9000, - "rarity": "super-rare", - "image": "http://i.imgur.com/c03i9W7.jpg", - "health": 100, - "degradation": 2, - "threshold": 110, - "badge": "Odd-pod", - "reward": 3600, - }, - # { - # "name": "tba", - # "article": "a", - # "time": 9000, - # "rarity": "super-rare", - # "image": "tba", - # "health": 100, - # "degradation": 1.5, - # "threshold": 110, - # "badge": "Odd-pod", - # "reward": 3600 - # }, - { - "name": "Peashooter", - "article": "a", - "time": 9000, - "rarity": "super-rare", - "image": "https://i.imgur.com/Vo4v2Ry.png", - "health": 100, - "degradation": 2, - "threshold": 110, - "badge": "Odd-pod", - "reward": 3600, - }, - { - "name": "Eldergleam Tree", - "article": "a", - "time": 10800, - "rarity": "epic", - "image": "https://i.imgur.com/pnZYKZc.jpg", - "health": 100, - "degradation": 2.5, - "threshold": 110, - "badge": "Greenfingers", - "reward": 5400, - }, - { - "name": "Pikmin", - "article": "a", - "time": 10800, - "rarity": "epic", - "image": "http://i.imgur.com/sizf7hE.png", - "health": 100, - "degradation": 2.5, - "threshold": 110, - "badge": "Greenfingers", - "reward": 5400, - }, - { - "name": "Flora Colossus", - "article": "a", - "time": 10800, - "rarity": "epic", - "image": "http://i.imgur.com/9f5QzaW.jpg", - "health": 100, - "degradation": 2.5, - "threshold": 110, - "badge": "Greenfingers", - "reward": 5400, - }, - { - "name": "Plantera Bulb", - "article": "a", - "time": 10800, - "rarity": "epic", - "image": "https://i.imgur.com/ExqLLHO.png", - "health": 100, - "degradation": 2.5, - "threshold": 110, - "badge": "Greenfingers", - "reward": 5400, - }, - { - "name": "Chorus Tree", - "article": "an", - "time": 10800, - "rarity": "epic", - "image": "https://i.imgur.com/tv2B72j.png", - "health": 100, - "degradation": 2.5, - "threshold": 110, - "badge": "Greenfingers", - "reward": 5400, - }, - { - "name": "Money Tree", - "article": "a", - "time": 35400, - "rarity": "legendary", - "image": "http://i.imgur.com/MIJQDLL.jpg", - "health": 100, - "degradation": 8, - "threshold": 110, - "badge": "Nobel Peas Prize", - "reward": 10800, - }, - { - "name": "Truffula Tree", - "article": "a", - "time": 35400, - "rarity": "legendary", - "image": "http://i.imgur.com/cFSmaHH.png", - "health": 100, - "degradation": 8, - "threshold": 110, - "badge": "Nobel Peas Prize", - "reward": 10800, - }, - { - "name": "Whomping Willow", - "article": "a", - "time": 35400, - "rarity": "legendary", - "image": "http://i.imgur.com/Ibwm2xY.jpg", - "health": 100, - "degradation": 8, - "threshold": 110, - "badge": "Nobel Peas Prize", - "reward": 10800, - }, - ], - "event": { - "January": { - "name": "Tanabata Tree", - "article": "a", - "time": 70800, - "rarity": "event", - "image": "http://i.imgur.com/FD38JJj.jpg", - "health": 100, - "degradation": 9, - "threshold": 110, - "badge": "Annualsary", - "reward": 21600, - }, - "February": { - "name": "Chocolate Rose", - "article": "a", - "time": 70800, - "rarity": "event", - "image": "http://i.imgur.com/Sqg6pcG.jpg", - "health": 100, - "degradation": 9, - "threshold": 110, - "badge": "Annualsary", - "reward": 21600, - }, - "March": { - "name": "Shamrock", - "article": "a", - "time": 70800, - "rarity": "event", - "image": "http://i.imgur.com/kVig04M.jpg", - "health": 100, - "degradation": 9, - "threshold": 110, - "badge": "Annualsary", - "reward": 21600, - }, - "April": { - "name": "Easter Egg Eggplant", - "article": "an", - "time": 70800, - "rarity": "event", - "image": "http://i.imgur.com/5jltGQa.jpg", - "health": 100, - "degradation": 9, - "threshold": 110, - "badge": "Annualsary", - "reward": 21600, - }, - "October": { - "name": "Jack O' Lantern", - "article": "a", - "time": 70800, - "rarity": "event", - "image": "http://i.imgur.com/efApsxG.jpg", - "health": 100, - "degradation": 9, - "threshold": 110, - "badge": "Annualsary", - "reward": 21600, - }, - "November": { - "name": "Mayflower", - "article": "a", - "time": 70800, - "rarity": "event", - "image": "http://i.imgur.com/nntNtoL.jpg", - "health": 100, - "degradation": 9, - "threshold": 110, - "badge": "Annualsary", - "reward": 21600, - }, - "December": { - "name": "Holly", - "article": "a", - "time": 70800, - "rarity": "event", - "image": "http://i.imgur.com/maDLmJC.jpg", - "health": 100, - "degradation": 9, - "threshold": 110, - "badge": "Annualsary", - "reward": 21600, - }, - }, - } + self.plants = None - self.products = { - "water": { - "cost": 5, - "health": 10, - "damage": 45, - "modifier": 0, - "category": "water", - "uses": 1, - }, - "manure": { - "cost": 20, - "health": 20, - "damage": 55, - "modifier": -0.035, - "category": "fertilizer", - "uses": 1, - }, - "vermicompost": { - "cost": 35, - "health": 30, - "damage": 60, - "modifier": -0.5, - "category": "fertilizer", - "uses": 1, - }, - "nitrates": { - "cost": 70, - "health": 60, - "damage": 75, - "modifier": -0.08, - "category": "fertilizer", - "uses": 1, - }, - "pruner": { - "cost": 500, - "health": 40, - "damage": 90, - "modifier": -0.065, - "category": "tool", - "uses": 10, - }, - } + self.products = None self.defaults = { "points": { @@ -881,6 +153,15 @@ class PlantTycoon(Cog): # self.bank = bot.get_cog('Economy').bank + async def _load_plants_products(self): + plant_path = bundled_data_path(self) / "plants.json" + product_path = bundled_data_path(self) / "products.json" + with plant_path.open() as json_data: + self.plants = json.load(json_data) + + with product_path.open() as json_data: + self.products = json.load(json_data) + async def _gardener(self, user: discord.User) -> Gardener: # @@ -896,6 +177,8 @@ class PlantTycoon(Cog): # # Calculating the rate of degradation per check_completion() cycle. # + if self.products is None: + await self._load_plants_products() modifiers = sum( [ @@ -938,7 +221,8 @@ class PlantTycoon(Cog): # # The function to add health # - + if self.products is None: + await self._load_plants_products() product = product.lower() product_category = product_category.lower() if product in self.products and self.products[product]["category"] == product_category: @@ -1020,9 +304,12 @@ class PlantTycoon(Cog): ) await ctx.send(embed=em) + @commands.cooldown(1, 60 * 10, commands.BucketType.user) @_gardening.command(name="seed") async def _seed(self, ctx: commands.Context): """Plant a seed inside the earth.""" + if self.plants is None: + await self._load_plants_products() author = ctx.author # server = context.message.server # if author.id not in self.gardeners: @@ -1157,6 +444,8 @@ class PlantTycoon(Cog): @_gardening.command(name="plants") async def _plants(self, ctx): """Look at the list of the available plants.""" + if self.plants is None: + await self._load_plants_products() tick = "" tock = "" tick_tock = 0 @@ -1173,15 +462,18 @@ class PlantTycoon(Cog): await ctx.send(embed=em) @_gardening.command(name="plant") - async def _plant(self, ctx: commands.Context, *plant): + async def _plant(self, ctx: commands.Context, *, plantname): """Look at the details of a plant.""" - plant = " ".join(plant) + if self.plants is None: + await self._load_plants_products() t = False + plant = None for p in self.plants["plants"]: - if p["name"].lower() == plant.lower(): + if p["name"].lower() == plantname.lower(): plant = p t = True break + if t: em = discord.Embed( title="Plant statistics of {}".format(plant["name"]), color=discord.Color.green() @@ -1231,6 +523,9 @@ class PlantTycoon(Cog): @_gardening.command(name="buy") async def _buy(self, ctx, product=None, amount: int = 1): """Buy gardening supplies.""" + if self.products is None: + await self._load_plants_products() + author = ctx.author if product is None: em = discord.Embed( @@ -1297,7 +592,6 @@ class PlantTycoon(Cog): em = discord.Embed(description=message, color=discord.Color.green()) await ctx.send(embed=em) - @commands.cooldown(1, 60 * 10, commands.BucketType.user) @commands.command(name="shovel") async def _shovel(self, ctx: commands.Context): """Shovel your plant out."""