DailyLoginRewards

DailyLoginRewards

This mod adds the ability to give rewards to players for logging in every day.

73.0 загрузок
Обновлён 15 дней назад

Описание

Резюме

Этот мод добавляет возможность дарить игрокам ежедневные награды за вход.

Использование игроков

Когда игрок входит на сервер, он получает сообщение, если у него есть доступное вознаграждение. Игрок может претендовать на ежедневное вознаграждение с помощью «/daily_reward claim» или «/daily claim» или «/daily c».

Использование сервера

Когда мод впервые запускается, он создает файл «{Server_Root}/config/KatsiLib/DailyLoginRewards.json», этот файл содержит всю соответствующую информацию для управления этим модом.

Ниже приведена конфигурация по умолчанию (с комментариями)

{
"login_rewards": [
{
«Предметы»: {# <-- Каждое вознаграждение за вход в систему имеет поле «предметы». Это напрямую дает игрокам эти предметы.
"Tool_Pickaxe_Crude": 1.0, # <-- Вы можете указать любой элемент в игре, включая измененные элементы.
"Tool_Hatchet_Crude": 1.0 #<-- Номер представляет собой количество предмета, который игрок получит.
?
«reward_box_keys»: {# <-- Каждое вознаграждение за вход также имеет поле «reward_box_keys», это используется для:
# - указать любые бонусы (Еще один из моих модов), за который игрок получит ключи.
«ExampleRewardBox»: 1.0 #<-- Название коробки и количество ключей, которые вы хотите получить.
?
?
{
"пункты": {
"Tool_Hatchet_Copper": 1.0,
"Tool_Pickaxe_Copper": 1.0
?
"reward_box_keys": {} # <-- Если вы не хотите дарить игроку ключи RewardBox, то не делайте этого!
?
{
"пункты": {
"Tool_Hatchet_Iron": 1.0,
"Tool_Pickaxe_Iron": 1.0
?
"reward_box_keys":
?
{
"пункты": {}, # <-- Если вы хотите, вы можете дать только ключи RewardBox. Вы можете оставить оба поля пустыми для чистого вознаграждения за этот день.
"reward_box_keys":
«ExampleRewardBox»: 5.0
?
?
]
"карта": {#<-- Эта часть файла используется для постоянных сбережений в загрузках сервера. Это просто хранит соответствующую информацию об игроках. Вы можете отредактировать это, если хотите...
"6bdc927f-b163-41e4-954b-b8f04e4db561": {#<-- Пользователи UUID. "/whoami <playername>" дает это (я думаю)
"last_login_epoch": 20471, # <-- День, когда пользователь в последний раз входил в систему как эпохальное значение. TLDR; приращение/уменьшение этого значения на 1 идет вперед/назад в день.
"login_streak": 0.0 # <-- Как долго длится эта полоса пользователей?
?
?
?

Примечания:

  • Невостребованные награды не хранятся, если вы не претендуете на награду за вход, то вы теряете свою полосу входа.
  • Порядок «login_rewards» в конфигурации соответствует дню получения игроком предметов.
    • Пример: день 0 -> первый пункт, день 1 -> второй пункт.
    • День может иметь 0 элементов в качестве действительной конфигурации. Вы можете использовать это, чтобы выделить дни, когда они получают награды.
  • Объекты карты не являются постоянными для сохранения размера файла. Игроки, которые потеряли свои полосы, могут удалить свои данные из файла.

Хлеб и масло

Этот мод был призван показать, как другой мод может использовать мод RewardBox, что означает, что у нас есть хороший действительный код здесь:

В частности:

Разработчик:GrantRoll Событие GrantRollEvent> диспетчер = HytaleServer.get().getEventBus().dispatchFor(GrantRollEvent.class);
Если (dispatcher.hasListener()) {
Грантролл Событие = новый GrantRollEvent (playerRef, reward_box,num_keys_to_give);
Диспетчер.dispatch (событие);
?

Приведенный выше код показывает, как отправить «GrantRollEvent», который сигнализирует моду RewardBox, чтобы дать ключ игроку, нацелившемуся на событие. Грантролл Событие принимает 3 аргумента -> <PlayerRef = целевой игрок> <Имя RewardBox = имя RewardBox\> <num_keys_to_give = это 1 по умолчанию и может быть исключено>

Другое событие, которое содержит мод RewardBox, - это «ConsumeRollEvent», в котором используются те же аргументы, что и в вышеприведенной команде, и переворачиваются бонусы для игроков.

Показать оригинальное описание (English)

Summary

This mod adds the ability to gift players with daily login rewards.

Player Usage

When a player logs into the server they will receive a message if they have an available reward to claim The player can claim the daily reward with "/daily_reward claim" or "/daily claim" or "/daily c"

Server Usage

When the mod first runs it will create a "{Server_Root}/config/KatsiLib/DailyLoginRewards.json" file, this file contains all the relevant information to control this mod.

The following is the default config (With comments)

{
    "login_rewards": [
        {
            "items": { # <-- Each login reward has an "items" field. This directly gives the players these items.
                "Tool_Pickaxe_Crude": 1.0, # <-- You can specify any item in the game, including modded items.
                "Tool_Hatchet_Crude": 1.0  # <-- The number represents the quantity of the item that the player will receive.
            },
            "reward_box_keys": { # <-- Each login reward also has an "reward_box_keys" field, this is used to -
                                 # - specify any RewardBoxes (Another one of my mods) that the player will receive keys for.
                "ExampleRewardBox": 1.0 # <-- The name of the box and the amount of keys you want the player to receive.
            }
        },
        {
            "items": {
                "Tool_Hatchet_Copper": 1.0,
                "Tool_Pickaxe_Copper": 1.0
            },
            "reward_box_keys": {} # <-- If you dont want to gift player RewardBox keys, then dont!
        },
        {
            "items": {
                "Tool_Hatchet_Iron": 1.0,
                "Tool_Pickaxe_Iron": 1.0
            },
            "reward_box_keys": {}
        },
        {
            "items": {}, # <-- If you want to, you may give only RewardBox keys. You can even leave both fields empty for a blank reward for that day.
            "reward_box_keys": {
                "ExampleRewardBox": 5.0
            }
        }
    ],
    "map": { # <-- This portion of the file is used for persistent saves across server boots. This just stores relevant player information. You may edit this if you want to... 
        "6bdc927f-b163-41e4-954b-b8f04e4db561": { # <-- Users UUID. "/whoami <playername>" gives this (I think)
            "last_login_epoch": 20471, # <-- The day the user last logged in as an epoch value. TLDR; increment/decrement this value by 1 is going forward/back a day.
            "login_streak": 0.0 # <-- How long this users streak is going.
        }
    }
}

Notes:

  • Unclaimed rewards are not stored, if you dont claim your login reward then you lose your login streak.
  • The order of "login_rewards" in the config matches the day that the player receives the items
    • Example: Day 0 -> first item, Day 1 -> second item.
    • the day can have 0 items as a valid config. You can use this to space out days they receive rewards.
  • Map objects are not permanent to save on file size. Players who have lost their streaks may have their data removed from the file.

The bread and butter

This mod was intended to show how another mod can use the RewardBox mod, meaning we have some good valid code in here :)

Specifically:

IEventDispatcher<GrantRollEvent, GrantRollEvent> dispatcher = HytaleServer.get().getEventBus().dispatchFor(GrantRollEvent.class);
  if (dispatcher.hasListener()) {
      GrantRollEvent event = new GrantRollEvent(playerRef, reward_box, num_keys_to_give);
      dispatcher.dispatch(event);
  }

The code above showcases how to dispatch an 'GrantRollEvent' which signals the RewardBox mod to give a key to the player targeted in the event. The GrantRollEvent takes 3 arguments -> <PlayerRef = the targetted player\> <RewardBox name = the name of the RewardBox\> <num_keys_to_give = this is 1 by default and can be left out>

The other event that the RewardBox mod contains is the 'ConsumeRollEvent' it takes the same arguments as the command above and rolls the RewardBoxes for the players.

Последние версии

DailyLoginReward-1.0.0.jar

Early Access 18.01.2026 17.5 КБ
Скачать