HyGuard - Claims / Regions
A plugin that manage player claims and/or configurable admin regions
110.0 загрузок
Обновлён 7 дней назад
Описание
Плагин, который управляет претензиями игроков и / или областями администратора. Мы надеемся, что это поможет.
Конфигурировать файл - V1.1.1
- MapRefreshTick: 100 Как часто обновлять карту мира (выражено после обновления клеща)
- PlayerMaxChunks = 4; Max Player
- PlayerChunksCanDetach = ложный В кусках в регионе игрока могут быть отключены друг от друга
- PlayerChunksDecay = ложный Если куски автоматически удаляются, если игрок не входит в систему в течение времени
- WorkbenchChestRadius = 14; Radius of workbench детектирование предметов в сундуках
Текущие команды
- /g Откройте претензию GUI (Все еще работает)
- /g претензия Заявите свои куски
- /hg unclaim Невостребованные куски
- /hg Trust (играющий) Доверьтесь игроку, чтобы редактировать свой кусок
- /hg untrust (недоверие) Не доверяйте игроку редактировать свой кусок
- /hg ban (игрок) Запретить игроку входить в ваш кусок
- /hg unban[править править код] Запретить игроку входить в ваш кусок
- /hg funclaim {регион} [Админ команда] Сила не требует кусок
- /hg fclaim {регион} [Админ команда] Сила требует кусок
- /hg fclaim {регион} [Админ команда] Сила требует кусок
- /hg регион tp {регион} [Админ команда] Телепортация в регион
Можно создавать админ-регионы! Они полностью настраиваемы!
Ведь претензии - это заказная предустановка этих регионов!
- Регион /hg создает регион
- /hg регион исключить {регион}
- /hg-группа создает {регион} {группа}
- /hg региональная группа исключить {регион} {группа}
- /hg region group add {регион} {группа} {игрок}
- /hg региональная группа удалить {регион} {группа} {игрок}
- /hg региональная группа удалить {регион} {группа} {игрок}
- /hg региональное разрешение добавить {регион} {группа} {разрешение} {ДЕНЬЯ/ОТВЕТ}
- /hg региональное разрешение удалить {регион} {группа} {разрешение}
Текущие события
- event.movement
- event.breakblock
- event.place-блок
- event.interact
Добавлена поддержка API - V1.1.1
ИМПЛЕМЕНТАЦИЯ МАВЕНА
Добавить файл в конфигурацию lib в основной каталог проекта
<зависимость>
<groupId>it.hytale</groupId>
<artifactId>HyGuard</artifact Id>
<version>1.1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/HyGuard-1.1.0.jar</systemPath>
</зависимость>
API методы
Публичный интерфейс IRegionManager {
CompletableFuture<Void> create (Ref<EntityStore> ref, String regionName)
CompletableFuture<Void> delete (Ref<EntityStore> ref, String regionName)
CompletableFuture<Void> teleport (Ref<EntityStore> ref, Игрок, название региона струн;
распад пустоты (название струнной области);
?
публичный интерфейс IPermissionManager {
CompletableFuture<Void> remove (Ref<EntityStore> ref, String region) Имя, название группы Струны, разрешение Струны;
CompletableFuture<Void> add (Ref<EntityStore> ref, String region) Имя, название группы Струны, разрешение Струны, государство;
?
Публичный интерфейс IGroupManager {
CompletableFuture<Void> create (Ref<EntityStore> ref, String regionName, String groupName)
CompletableFuture<Void> delete(Ref<EntityStore> ref, String regionName, String groupName)
CompletableFuture<Void> add (Ref<EntityStore> ref, String regionName, String groupName, UUID targetUuid);
CompletableFuture<Void> remove (Ref<EntityStore> ref, String regionName, String groupName, UUID targetUuid);
?
Если вы используете SimpleClaim Я хочу использовать этот плагин, который я сделал. python конвертер из конфигурационных областей, вы можете запустить это в Google.colab Если хотите, вот код:
Импорт Джонсона
Импортный дефолт
input_path = "/content/Claims.json"
output_path = "/content/Regions.json"
с открытым (input_path, "r", кодирование = "utf-8") как f:
Данные = json.load(f)
Regions_map = defaultdict(lambda): {
"UUID": Нет.
"Регион": Нет.
"Куски": [],
"Группы": [],
"IsFullChunkOnly": Правда.
"Непревзойденный": Правда.
"Опровержение": ложное,
"Разрушимый": Ложная,
"Приоритет": 0,
"МапКолор": 16092226,
Оригинальное название: None
)
для dim in data.get("Dimensions", []):
dimension_name = dim.get ("Измерение", "по умолчанию")
Для кусочка в dim.get("ChunkInfo", []):
owner_uuid = chunk.get ("CreatedTracker", {}).get("UserUUID")
chunk_x = chunk.get("ChunkX")
chunk_z = chunk.get("Чанки")
Имя пользователя = chunk.get("CreatedTracker", {}).get("UserName", "Unknown")
Название = f"{имя пользователя} Претензия"
region_name = title.replace("", ", "")
Если Regions_map[owner_uuid][UUID] не является:
Regions_map[owner_uuid]["UUID"] = owner_uuid
Regions_map[owner_uuid][«Регион»] = region_name
Regions_map[owner_uuid]["Title"] = title
Regions_map[owner_uuid][«Группы»] =[
{
"Разрешения": [
{"Государство": "ДЕНЬЯ", "Разрешение": "событие.breakblock"},
{"Государство": "ДЕНЬЯ", "Разрешение": "событие.placeblock"},
{"Государство": "ДЕНЬИ", "Разрешение": "событие.взаимодействие"}
]
"Игроки": [],
"Группа": "Неудовлетворительно",
«Приоритет»: 0
?
{
"Разрешения": [
{"Государство": "АЛЛОУ", "Разрешение": "событие.breakblock"},
{"Государство": "АЛЛОУ", "Разрешение": "событие.placeblock"},
{"Государство": "АЛЛОУ", "Разрешение": "событие.взаимодействие"}
]
"Игроки": [{"UUID: owner_uuid}],
"Группа": "доверие",
«Приоритет»: 10
?
{
"Разрешения": [
{"Государство": "ДЕНЬЯ", "Разрешение": "событие.движение"}
]
"Игроки": [],
"Группа": "бан",
«Приоритет»: 10
?
]
Regions_map[owner_uuid]["Чашки"].append({)
"X": chunk_x,
"Z": chunk_z,
«Мир»: dimension_name
"Оффсеты":
)
Регионы = список (regions_map.values())
выход = {"Регионы": регионы}
с открытым (output_path, "w", кодирование = "utf-8") как f:
json.dump(выход, f, indent=2, ensure_ascii=False)
Для BUG, который игрок может украсть из заявленной груди с помощью workbench, рассмотрите возможность установки AntiWorkBenchДетектив Грудь Это временная контрмера!
Показать оригинальное описание (English)
A plugin that manage player claims and/or admin regions. We hope it may help.
Config File - V1.1.1
- MapRefreshTick: 100 How often to refresh the world map (expressed in after tot tick refresh)
- PlayerMaxChunks = 4; Max player claim limit
- PlayerChunksCanDetach = false; In the chunks in the player region can be disconnected to one another
- PlayerChunksDecay = false; If the chunks auto-delete if player dont log in for a tot time
- WorkbenchChestRadius = 14; Radius of workbench detecting items in chests
Current Commands
- /hg Open the claim GUI (Still work in progress)
- /hg claim Claim your chunks
- /hg unclaim Unclaim your chunks
- /hg trust {player} Trust a player to edit your chunk
- /hg untrust {player} Untrust a player to edit your chunk
- /hg ban {player} Ban a player from entering your chunk
- /hg unban {player} Unban a player from entering your chunk
- /hg funclaim {region} [ADMIN COMMAND] Force unclaim a chunk
- /hg fclaim {region} [ADMIN COMMAND] Force claim a chunk
- /hg fclaim {region} [ADMIN COMMAND] Force claim a chunk
- /hg region tp {region} [ADMIN COMMAND] Teleport to a region
You can create admin-regions! Those are totally configurable!
After all the claims are a custom preset of this regions!
- /hg region create {region}
- /hg region delete {region}
- /hg region group create {region} {group}
- /hg region group delete {region} {group}
- /hg region group add {region} {group} {player}
- /hg region group remove {region} {group} {player}
- /hg region group remove {region} {group} {player}
- /hg region group permission add {region} {group} {permission} {DENY/ALLOW}
- /hg region group permission remove {region} {group} {permission}
Current Events
- event.movement
- event.breakblock
- event.placeblock
- event.interact
Added API Support - V1.1.1
MAVEN IMPLEMENTATION
Add the file in the lib config in the main project directory
<dependency>
<groupId>it.hytale</groupId>
<artifactId>HyGuard</artifactId>
<version>1.1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/HyGuard-1.1.0.jar</systemPath>
</dependency>
API METHODS
public interface IRegionManager {
CompletableFuture<Void> create(Ref<EntityStore> ref, String regionName);
CompletableFuture<Void> delete(Ref<EntityStore> ref, String regionName);
CompletableFuture<Void> teleport(Ref<EntityStore> ref, Player player, String regionName);
void decay(String regionName);
}
public interface IPermissionManager {
CompletableFuture<Void> remove(Ref<EntityStore> ref, String regionName, String groupName, String permission);
CompletableFuture<Void> add(Ref<EntityStore> ref, String regionName, String groupName, String permission, State state);
}
public interface IGroupManager {
CompletableFuture<Void> create(Ref<EntityStore> ref, String regionName, String groupName);
CompletableFuture<Void> delete(Ref<EntityStore> ref, String regionName, String groupName);
CompletableFuture<Void> add(Ref<EntityStore> ref, String regionName, String groupName, UUID targetUuid);
CompletableFuture<Void> remove(Ref<EntityStore> ref, String regionName, String groupName, UUID targetUuid);
}
If you are using SimpleClaim and want to use this plugin i made a python converter of the config regions, you can run this in google.colab if you want, here the code:
import json
from collections import defaultdict
input_path = "/content/Claims.json"
output_path = "/content/Regions.json"
with open(input_path, "r", encoding="utf-8") as f:
data = json.load(f)
regions_map = defaultdict(lambda: {
"UUID": None,
"Region": None,
"Chunks": [],
"Groups": [],
"IsFullChunkOnly": True,
"IsOverlapable": True,
"IsOverlapping": False,
"IsDecayable": False,
"Priority": 0,
"MapColor": 16092226,
"Title": None
})
for dim in data.get("Dimensions", []):
dimension_name = dim.get("Dimension", "default")
for chunk in dim.get("ChunkInfo", []):
owner_uuid = chunk.get("CreatedTracker", {}).get("UserUUID")
chunk_x = chunk.get("ChunkX")
chunk_z = chunk.get("ChunkY")
username = chunk.get("CreatedTracker", {}).get("UserName", "Unknown")
title = f"{username} Claim"
region_name = title.replace(" ", "")
if regions_map[owner_uuid]["UUID"] is None:
regions_map[owner_uuid]["UUID"] = owner_uuid
regions_map[owner_uuid]["Region"] = region_name
regions_map[owner_uuid]["Title"] = title
regions_map[owner_uuid]["Groups"] = [
{
"Permissions": [
{"State": "DENY", "Permission": "event.breakblock"},
{"State": "DENY", "Permission": "event.placeblock"},
{"State": "DENY", "Permission": "event.interact"}
],
"Players": [],
"Group": "DEFAULT",
"Priority": 0
},
{
"Permissions": [
{"State": "ALLOW", "Permission": "event.breakblock"},
{"State": "ALLOW", "Permission": "event.placeblock"},
{"State": "ALLOW", "Permission": "event.interact"}
],
"Players": [{"UUID": owner_uuid}],
"Group": "trust",
"Priority": 10
},
{
"Permissions": [
{"State": "DENY", "Permission": "event.movement"}
],
"Players": [],
"Group": "ban",
"Priority": 10
}
]
regions_map[owner_uuid]["Chunks"].append({
"X": chunk_x,
"Z": chunk_z,
"World": dimension_name,
"Offsets": []
})
regions = list(regions_map.values())
output = {"Regions": regions}
with open(output_path, "w", encoding="utf-8") as f:
json.dump(output, f, indent=2, ensure_ascii=False)
For the BUG that player can steal from claimed chest using workbench consider installing AntiWorkBenchDetectChest as a temporary countermeasure!
Последние версии
HyGuard-1.1.1.jar
Early Access
27.01.2026
14.7 МБ
HyGuard-1.1.0.jar
Early Access
24.01.2026
14.7 МБ
HyGuard-1.0.0.jar
Early Access
24.01.2026
14.7 МБ
HyGuard 1.0.0 Demo.jar
Early Access
19.01.2026
2.0 МБ