import enums
from gd.typing import Dict, Any
__all__ = (
"Enum",
"IconType",
"MessagePolicyType",
"CommentPolicyType",
"FriendRequestPolicyType",
"StatusLevel",
"LevelLength",
"LevelDifficulty",
"DemonDifficulty",
"TimelyType",
"CommentType",
"MessageOrRequestType",
"CommentStrategy",
"LeaderboardStrategy",
"LevelLeaderboardStrategy",
"SearchStrategy",
"GauntletEnum",
"RewardType",
"ShardType",
"QuestType",
"AccountError",
)
class Enum(enums.StrFormat, enums.Order, enums.Enum):
"""Normalized generic enum that has ordering and string formatting."""
def __json__(self) -> Dict[str, Any]:
return {"name": self.title, "value": self.value}
[docs]class IconType(Enum):
"""An enumeration of icon types."""
CUBE = 0
SHIP = 1
BALL = 2
UFO = 3
WAVE = 4
ROBOT = 5
SPIDER = 6
[docs]class MessagePolicyType(Enum):
"""An enumeration for message policy."""
OPENED_TO_ALL = 0
OPENED_TO_FRIENDS_ONLY = 1
CLOSED = 2
[docs]class FriendRequestPolicyType(Enum):
"""An enumeration for friend request policy."""
OPENED = 0
CLOSED = 1
[docs]class StatusLevel(Enum):
"""An enumeration for Geometry Dash Status."""
USER = 0
MODERATOR = 1
ELDER_MODERATOR = 2
[docs]class LevelLength(Enum):
"""An enumeration for level lengths."""
NA = -1
TINY = 0
SHORT = 1
MEDIUM = 2
LONG = 3
EXTRA_LONG = 4
XL = EXTRA_LONG
UNKNOWN = NA
@classmethod
def enum_missing(cls, value: int) -> Enum:
if value > cls.XL.value:
return cls.XL
if value < cls.TINY.value:
return cls.TINY
[docs]class LevelDifficulty(Enum):
"""An enumeration for level difficulties."""
NA = -1
AUTO = -3
EASY = 1
NORMAL = 2
HARD = 3
HARDER = 4
INSANE = 5
DEMON = -2
UNKNOWN = NA
[docs]class DemonDifficulty(Enum):
"""An enumeration for demon difficulties."""
NA = -1
EASY_DEMON = 1
MEDIUM_DEMON = 2
HARD_DEMON = 3
INSANE_DEMON = 4
EXTREME_DEMON = 5
UNKNOWN = NA
[docs]class TimelyType(Enum):
"""An enumeration for timely types."""
NOT_TIMELY = 0
DAILY = 1
WEEKLY = 2
[docs]class MessageOrRequestType(Enum):
"""An enumeration for message and friend request objects."""
NORMAL = 0
SENT = 1
[docs]class LeaderboardStrategy(Enum):
"""An enumeration for getting leaderboard users."""
PLAYERS = 0
FRIENDS = 1
RELATIVE = 2
CREATORS = 3
[docs]class LevelLeaderboardStrategy(Enum):
"""An enumeration for getting level leaderboard."""
FRIENDS = 0
ALL = 1
WEEKLY = 2
[docs]class GauntletEnum(Enum):
"""An enumeration for gauntlets."""
UNKNOWN = 0
FIRE = 1
ICE = 2
POISON = 3
SHADOW = 4
LAVA = 5
BONUS = 6
CHAOS = 7
DEMON = 8
TIME = 9
CRYSTAL = 10
MAGIC = 11
SPIKE = 12
MONSTER = 13
DOOM = 14
DEATH = 15
[docs]class SearchStrategy(Enum):
"""An enumeration for search strategy."""
REGULAR = 0
MOST_DOWNLOADED = 1
MOST_LIKED = 2
TRENDING = 3
RECENT = 4
BY_USER = 5
FEATURED = 6
MAGIC = 7
SEARCH_MANY = 10
AWARDED = 11
FOLLOWED = 12
FRIENDS = 13
HALL_OF_FAME = 16
WORLD = 17
[docs]class RewardType(Enum):
"""An enumeration for reward types."""
GET_INFO = 0
CLAIM_SMALL = 1
CLAIM_LARGE = 2
[docs]class ShardType(Enum):
"""An enumeration represeting shard names."""
UNKNOWN = 0
FIRE = 1
ICE = 2
POISON = 3
SHADOW = 4
LAVA = 5
NULL = 6
[docs]class QuestType(Enum):
"""An enumeration for quest types."""
UNKNOWN = 0
ORBS = 1
COINS = 2
STARS = 3
[docs]class AccountError(Enum):
"""An enumeration for account errors."""
EMAILS_NOT_MATCHING = -99
LINKED_TO_DIFFERENT_STEAM_ACCOUNT = -12
ACCOUNT_DISABLED = -11
LINKED_TO_DIFFERENT_ACCOUNT = -10
SHORT_USERNAME = -9
SHORT_PASSWORD = -8
PASSWORDS_NOT_MATCHING = -7
INVALID_EMAIL = -6
INVALID_PASSWORD = -5
INVALID_USERNAME = -4
EMAIL_USED = -3
USERNAME_USED = -2
GENERIC = -1