Skip to content

Commit

Permalink
refactor(LanguageManager): clean up code
Browse files Browse the repository at this point in the history
  • Loading branch information
cooldogedev committed Oct 31, 2023
1 parent eae0b5e commit 78b95d8
Show file tree
Hide file tree
Showing 7 changed files with 46 additions and 56 deletions.
8 changes: 4 additions & 4 deletions src/cooldogedev/BedrockEconomy/command/BalanceCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ public function onRun(CommandSender $sender, string $aliasUsed, array $args): vo
$cacheEntry = GlobalCache::ONLINE()->get($player);

if ($cacheEntry !== null && $this->getOwningPlugin()->getConfig()->getNested("cache.balance-command")) {
$sender->sendMessage(LanguageManager::getTranslation($isSelf ? KnownMessages::BALANCE_INFO : KnownMessages::BALANCE_INFO_OTHER, [
$sender->sendMessage(LanguageManager::getString($isSelf ? KnownMessages::BALANCE_INFO : KnownMessages::BALANCE_INFO_OTHER, [
TranslationKeys::PLAYER => $player,
TranslationKeys::AMOUNT => $this->getOwningPlugin()->getCurrency()->formatter->format($cacheEntry->amount, $cacheEntry->decimals),
TranslationKeys::POSITION => number_format($cacheEntry->position),
Expand All @@ -93,15 +93,15 @@ public function onRun(CommandSender $sender, string $aliasUsed, array $args): vo
function () use ($sender, $player, $isSelf): Generator {
try {
$result = yield from BedrockEconomyAPI::ASYNC()->get(Search::EMPTY, $player);
$sender->sendMessage(LanguageManager::getTranslation($isSelf ? KnownMessages::BALANCE_INFO : KnownMessages::BALANCE_INFO_OTHER, [
$sender->sendMessage(LanguageManager::getString($isSelf ? KnownMessages::BALANCE_INFO : KnownMessages::BALANCE_INFO_OTHER, [
TranslationKeys::PLAYER => $player,
TranslationKeys::AMOUNT => $this->getOwningPlugin()->getCurrency()->formatter->format($result["amount"], $result["decimals"]),
TranslationKeys::POSITION => number_format($result["position"]),
]));
} catch (RecordNotFoundException) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_ACCOUNT_NONEXISTENT));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_ACCOUNT_NONEXISTENT));
} catch (SQLException) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_DATABASE));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_DATABASE));
}
}
);
Expand Down
18 changes: 9 additions & 9 deletions src/cooldogedev/BedrockEconomy/command/PayCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -85,22 +85,22 @@ public function onRun(CommandSender $sender, string $aliasUsed, array $args): vo
}

if (strtolower($sender->getName()) === strtolower($player)) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_PAY_SELF));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_PAY_SELF));
return;
}

if (!is_numeric($amount)) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_AMOUNT_INVALID));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_AMOUNT_INVALID));
return;
}

if ($amount <= 0) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_AMOUNT_SMALL));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_AMOUNT_SMALL));
return;
}

if ($amount > Limits::INT63_MAX) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_AMOUNT_LARGE));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_AMOUNT_LARGE));
return;
}

Expand All @@ -124,7 +124,7 @@ function () use ($sender, $player, $balance, $decimals): Generator {
amount: $balance,
decimals: $decimals,
);
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::BALANCE_PAY, [
$sender->sendMessage(LanguageManager::getString(KnownMessages::BALANCE_PAY, [
TranslationKeys::PLAYER => $player,
TranslationKeys::AMOUNT => $this->getOwningPlugin()->getCurrency()->formatter->format($balance, $decimals),
]));
Expand All @@ -135,16 +135,16 @@ function () use ($sender, $player, $balance, $decimals): Generator {
return;
}

$target->sendMessage(LanguageManager::getTranslation(KnownMessages::BALANCE_PAY_RECEIVE, [
$target->sendMessage(LanguageManager::getString(KnownMessages::BALANCE_PAY_RECEIVE, [
TranslationKeys::PLAYER => $sender->getName(),
TranslationKeys::AMOUNT => $this->getOwningPlugin()->getCurrency()->formatter->format($balance, $decimals),
]));
} catch (RecordNotFoundException) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_ACCOUNT_NONEXISTENT));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_ACCOUNT_NONEXISTENT));
} catch (InsufficientFundsException) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_ACCOUNT_INSUFFICIENT));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_ACCOUNT_INSUFFICIENT));
} catch (SQLException) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_DATABASE));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_DATABASE));
}
}
);
Expand Down
10 changes: 5 additions & 5 deletions src/cooldogedev/BedrockEconomy/command/RichCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public function onRun(CommandSender $sender, string $aliasUsed, array $args): vo
{
if (count(GlobalCache::TOP()->getAll()) === 0) {
GlobalCache::invalidate();
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_RICH_NO_RECORDS));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_RICH_NO_RECORDS));
return;
}

Expand All @@ -68,14 +68,14 @@ public function onRun(CommandSender $sender, string $aliasUsed, array $args): vo
$entries = array_slice($entries, $offset, RichCommand::DEFAULT_LIMIT);

if (count($entries) === 0) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_RICH_NO_RECORDS));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_RICH_NO_RECORDS));
return;
}

$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::RICH_HEADER));
$sender->sendMessage(LanguageManager::getString(KnownMessages::RICH_HEADER));

foreach ($entries as $username => $entry) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::RICH_ENTRY,
$sender->sendMessage(LanguageManager::getString(KnownMessages::RICH_ENTRY,
[
TranslationKeys::PLAYER => $username,
TranslationKeys::AMOUNT => $this->getOwningPlugin()->getCurrency()->formatter->format($entry->amount, $entry->decimals),
Expand All @@ -84,7 +84,7 @@ public function onRun(CommandSender $sender, string $aliasUsed, array $args): vo
));
}

$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::RICH_FOOTER, [
$sender->sendMessage(LanguageManager::getString(KnownMessages::RICH_FOOTER, [
TranslationKeys::POSITION => GlobalCache::ONLINE()->get($sender->getName())->position ?? "N/A",
]));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,17 +78,17 @@ public function onRun(CommandSender $sender, string $aliasUsed, array $args): vo
}

if (!is_numeric($amount)) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_AMOUNT_INVALID));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_AMOUNT_INVALID));
return;
}

if ($amount <= 0) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_AMOUNT_SMALL));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_AMOUNT_SMALL));
return;
}

if ($amount > Limits::INT63_MAX) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_AMOUNT_LARGE));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_AMOUNT_LARGE));
return;
}

Expand All @@ -101,14 +101,14 @@ public function onRun(CommandSender $sender, string $aliasUsed, array $args): vo
function () use ($sender, $player, $balance, $decimals): Generator {
try {
yield from BedrockEconomyAPI::ASYNC()->add($player, $player, $balance, $decimals);
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::BALANCE_ADD, [
$sender->sendMessage(LanguageManager::getString(KnownMessages::BALANCE_ADD, [
TranslationKeys::PLAYER => $player,
TranslationKeys::AMOUNT => $this->getOwningPlugin()->getCurrency()->formatter->format($balance, $decimals),
]));
} catch (RecordNotFoundException) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_ACCOUNT_NONEXISTENT));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_ACCOUNT_NONEXISTENT));
} catch (SQLException) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_DATABASE));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_DATABASE));
}
}
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,17 +79,17 @@ public function onRun(CommandSender $sender, string $aliasUsed, array $args): vo
}

if (!is_numeric($amount)) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_AMOUNT_INVALID));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_AMOUNT_INVALID));
return;
}

if ($amount <= 0) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_AMOUNT_SMALL));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_AMOUNT_SMALL));
return;
}

if ($amount > Limits::INT63_MAX) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_AMOUNT_LARGE));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_AMOUNT_LARGE));
return;
}

Expand All @@ -102,16 +102,16 @@ public function onRun(CommandSender $sender, string $aliasUsed, array $args): vo
function () use ($sender, $player, $balance, $decimals): Generator {
try {
yield from BedrockEconomyAPI::ASYNC()->subtract($player, $player, $balance, $decimals);
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::BALANCE_REMOVE, [
$sender->sendMessage(LanguageManager::getString(KnownMessages::BALANCE_REMOVE, [
TranslationKeys::PLAYER => $player,
TranslationKeys::AMOUNT => $this->getOwningPlugin()->getCurrency()->formatter->format($balance, $decimals),
]));
} catch (RecordNotFoundException) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_ACCOUNT_NONEXISTENT));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_ACCOUNT_NONEXISTENT));
} catch (InsufficientFundsException) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_ACCOUNT_INSUFFICIENT));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_ACCOUNT_INSUFFICIENT));
} catch (SQLException) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_DATABASE));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_DATABASE));
}
}
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,17 +78,17 @@ public function onRun(CommandSender $sender, string $aliasUsed, array $args): vo
}

if (!is_numeric($amount)) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_AMOUNT_INVALID));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_AMOUNT_INVALID));
return;
}

if ($amount < 0) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_AMOUNT_SMALL));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_AMOUNT_SMALL));
return;
}

if ($amount > Limits::INT63_MAX) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_AMOUNT_LARGE));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_AMOUNT_LARGE));
return;
}

Expand All @@ -101,14 +101,14 @@ public function onRun(CommandSender $sender, string $aliasUsed, array $args): vo
function () use ($sender, $player, $balance, $decimals): Generator {
try {
yield from BedrockEconomyAPI::ASYNC()->set($player, $player, $balance, $decimals);
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::BALANCE_SET, [
$sender->sendMessage(LanguageManager::getString(KnownMessages::BALANCE_SET, [
TranslationKeys::PLAYER => $player,
TranslationKeys::AMOUNT => $this->getOwningPlugin()->getCurrency()->formatter->format($balance, $decimals),
]));
} catch (RecordNotFoundException) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_ACCOUNT_NONEXISTENT));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_ACCOUNT_NONEXISTENT));
} catch (SQLException) {
$sender->sendMessage(LanguageManager::getTranslation(KnownMessages::ERROR_DATABASE));
$sender->sendMessage(LanguageManager::getString(KnownMessages::ERROR_DATABASE));
}
}
);
Expand Down
28 changes: 9 additions & 19 deletions src/cooldogedev/BedrockEconomy/language/LanguageManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ final class LanguageManager
private static string $language;
private static array $translations;

public static function init(BedrockEconomy $plugin, ?string $language)
public static function init(BedrockEconomy $plugin, ?string $language): void
{
$languagesFolder = $plugin->getDataFolder() . "languages";
@mkdir($languagesFolder);
Expand All @@ -63,26 +63,11 @@ public static function init(BedrockEconomy $plugin, ?string $language)
);
}

public static function getTranslations(): array
public static function getString(string $translation, array $variables = []): string
{
return LanguageManager::$translations;
}

public static function getTranslation(string $translation, array $variables = []): ?string
{
return LanguageManager::hasTranslation($translation) ?
return isset(LanguageManager::$translations[$translation]) ?
TextFormat::colorize(LanguageManager::translate($translation, $variables)) :
null;
}

public static function hasTranslation(string $translation): bool
{
return isset(LanguageManager::$translations[$translation]);
}

private static function translate(string $translation, array $variables = []): string
{
return str_replace(array_keys($variables), array_values($variables), LanguageManager::$translations[$translation]);
"Translation not found: " . $translation;
}

public static function getArray(string $translation): ?array
Expand All @@ -94,4 +79,9 @@ public static function getLanguage(): string
{
return LanguageManager::$language;
}

private static function translate(string $translation, array $variables = []): string
{
return str_replace(array_keys($variables), array_values($variables), LanguageManager::$translations[$translation]);
}
}

0 comments on commit 78b95d8

Please sign in to comment.