mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-27 13:34:28 +00:00
publish: 5.8.6
This commit is contained in:
parent
0c5ab3c1d8
commit
78b435ccb1
5 changed files with 65 additions and 18 deletions
|
@ -2,7 +2,7 @@
|
|||
|
||||
[tool.poetry]
|
||||
name = "royalpack"
|
||||
version = "5.8.5"
|
||||
version = "5.8.6"
|
||||
description = "A Royalnet command pack for the Royal Games community"
|
||||
authors = ["Stefano Pigozzi <ste.pigozzi@gmail.com>"]
|
||||
license = "AGPL-3.0+"
|
||||
|
|
|
@ -57,7 +57,7 @@ from .royalpack import RoyalpackCommand
|
|||
from .givefiorygi import GivefiorygiCommand
|
||||
from .help import HelpCommand
|
||||
from .pug import PugCommand
|
||||
from .createtreasure import CreatetreasureCommand
|
||||
from .magicktreasure import CreatetreasureCommand
|
||||
from .treasure import TreasureCommand
|
||||
|
||||
# Enter the commands of your Pack here!
|
||||
|
|
37
royalpack/commands/givetreasure.py
Normal file
37
royalpack/commands/givetreasure.py
Normal file
|
@ -0,0 +1,37 @@
|
|||
from typing import *
|
||||
import royalnet
|
||||
import royalnet.commands as rc
|
||||
import royalnet.utils as ru
|
||||
from ..tables import Treasure, FiorygiTransaction
|
||||
from .magicktreasure import MagicktreasureCommand
|
||||
|
||||
|
||||
class GivetreasureCommand(MagicktreasureCommand):
|
||||
name: str = "givetreasure"
|
||||
|
||||
description: str = "Crea un nuovo Treasure di Fiorygi (usando il tuo credito)"
|
||||
|
||||
syntax: str = "{codice} {valore}"
|
||||
|
||||
async def _permission_check(self, author, code, value, data):
|
||||
if "banker" not in author.roles:
|
||||
raise rc.UserError("Non hai permessi sufficienti per eseguire questo comando.")
|
||||
if author.fiorygi.fiorygi < value:
|
||||
raise rc.UserError("Non hai abbastanza fiorygi per creare questo Treasure.")
|
||||
|
||||
async def _create_treasure(self, author, code, value, data):
|
||||
TreasureT = self.alchemy.get(Treasure)
|
||||
|
||||
treasure = await ru.asyncify(data.session.query(TreasureT).get, code)
|
||||
if treasure is not None:
|
||||
raise rc.UserError("Esiste già un Treasure con quel codice.")
|
||||
|
||||
treasure = TreasureT(
|
||||
code=code,
|
||||
value=value,
|
||||
redeemed_by=None
|
||||
)
|
||||
|
||||
await FiorygiTransaction.spawn_fiorygi(data, author, -value, "aver creato un tesoro")
|
||||
|
||||
return treasure
|
|
@ -5,26 +5,19 @@ import royalnet.utils as ru
|
|||
from ..tables import Treasure
|
||||
|
||||
|
||||
class CreatetreasureCommand(rc.Command):
|
||||
name: str = "createtreasure"
|
||||
class MagicktreasureCommand(rc.Command):
|
||||
name: str = "magicktreasure"
|
||||
|
||||
description: str = "Crea un nuovo tesoro di Fiorygi."
|
||||
description: str = "Crea un nuovo Treasure di Fiorygi (senza spendere i tuoi)."
|
||||
|
||||
syntax: str = "{codice} {valore}"
|
||||
|
||||
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
||||
author = await data.get_author(error_if_none=True)
|
||||
async def _permission_check(self, author, code, value, data):
|
||||
if "banker" not in author.roles:
|
||||
raise rc.UserError("Non hai permessi sufficienti per eseguire questo comando.")
|
||||
return author
|
||||
|
||||
code = args[0]
|
||||
try:
|
||||
value = int(args[1])
|
||||
except ValueError:
|
||||
raise rc.InvalidInputError("Il valore deve essere maggiore o uguale a 0.")
|
||||
if value < 0:
|
||||
raise rc.InvalidInputError("Il valore deve essere maggiore o uguale a 0.")
|
||||
|
||||
async def _create_treasure(self, author, code, value, data):
|
||||
TreasureT = self.alchemy.get(Treasure)
|
||||
|
||||
treasure = await ru.asyncify(data.session.query(TreasureT).get, code)
|
||||
|
@ -36,8 +29,25 @@ class CreatetreasureCommand(rc.Command):
|
|||
value=value,
|
||||
redeemed_by=None
|
||||
)
|
||||
|
||||
return treasure
|
||||
|
||||
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
||||
await data.delete_invoking()
|
||||
author = await data.get_author(error_if_none=True)
|
||||
|
||||
code = args[0]
|
||||
try:
|
||||
value = int(args[1])
|
||||
except ValueError:
|
||||
raise rc.InvalidInputError("Il valore deve essere maggiore o uguale a 0.")
|
||||
if value < 0:
|
||||
raise rc.InvalidInputError("Il valore deve essere maggiore o uguale a 0.")
|
||||
|
||||
await self._permission_check(author, code, value, data)
|
||||
treasure = await self._create_treasure(author, code, value, data)
|
||||
|
||||
data.session.add(treasure)
|
||||
await data.session_commit()
|
||||
|
||||
await data.delete_invoking()
|
||||
await data.reply("✅ Tesoro creato!")
|
||||
await data.reply("✅ Treasure creato!")
|
|
@ -1 +1 @@
|
|||
semantic = "5.8.5"
|
||||
semantic = "5.8.6"
|
||||
|
|
Loading…
Reference in a new issue