AssetTypeRegistry class
Пакет: com.hypixel.hytale.builtin.asseteditor
Файл: com/hypixel/hytale/builtin/asseteditor/AssetTypeRegistry.java
Поля (4)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
HytaleLogger |
LOGGER |
|
List |
var1 |
|
String |
var2 |
|
AssetTypeHandler |
var4 |
Методы (8)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
AssetTypeHandler |
getAssetTypeHandlerAssetTypeHandler getAssetTypeHandler(String var1) |
|
|
if if(var4 == null) |
|
|
if if(var3 != -1) |
public |
boolean |
isPathInAssetTypeFolderboolean isPathInAssetTypeFolder(@Nonnull Path var1) |
public |
void |
registerAssetTypevoid registerAssetType(@Nonnull AssetTypeHandler var1) |
public |
void |
sendPacketvoid sendPacket(@Nonnull EditorClient var1) |
public |
void |
setupPacketvoid setupPacket() |
public |
void |
unregisterAssetTypevoid unregisterAssetType(@Nonnull AssetTypeHandler var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.asseteditor;
class="kw">import com.hypixel.hytale.builtin.asseteditor.assettypehandler.AssetTypeHandler;
class="kw">import com.hypixel.hytale.common.util.PathUtil;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.protocol.packets.asseteditor.AssetEditorAssetType;
class="kw">import com.hypixel.hytale.protocol.packets.asseteditor.AssetEditorPopupNotificationType;
class="kw">import com.hypixel.hytale.protocol.packets.asseteditor.AssetEditorSetupAssetTypes;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.nio.file.Path;
class="kw">import java.util.List;
class="kw">import java.util.Map;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class AssetTypeRegistry {
class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
class="kw">private class="kw">final ConcurrentHashMap<String, AssetTypeHandler> assetTypeHandlers = new ConcurrentHashMap<>();
class="kw">private AssetEditorSetupAssetTypes setupPacket;
class="kw">public AssetTypeRegistry() {
}
@Nonnull
class="kw">public Map<String, AssetTypeHandler> getRegisteredAssetTypeHandlers() {
class="kw">return this.assetTypeHandlers;
}
class="kw">public void registerAssetType(@Nonnull AssetTypeHandler var1) {
if (this.assetTypeHandlers.putIfAbsent(var1.getConfig().id, var1) != null) {
throw new IllegalArgumentException("An asset type with id '" + var1.getConfig().id + "' is already registered");
}
}
class="kw">public void unregisterAssetType(@Nonnull AssetTypeHandler var1) {
this.assetTypeHandlers.remove(var1.getConfig().id);
}
class="kw">public AssetTypeHandler getAssetTypeHandler(String var1) {
class="kw">return this.assetTypeHandlers.get(var1);
}
@Nullable
class="kw">public AssetTypeHandler getAssetTypeHandlerForPath(@Nonnull Path var1) {
String var2 = PathUtil.getFileExtension(var1);
if (var2.isEmpty()) {
class="kw">return null;
}
for (AssetTypeHandler var4 : this.assetTypeHandlers.values()) {
if (var4.getConfig().fileExtension.equalsIgnoreCase(var2) && var1.startsWith(var4.getConfig().path)) {
class="kw">return var4;
}
}
class="kw">return null;
}
class="kw">public boolean isPathInAssetTypeFolder(@Nonnull Path var1) {
for (AssetTypeHandler var3 : this.assetTypeHandlers.values()) {
if (var1.startsWith(var3.getRootPath()) && !var1.equals(var3.getRootPath())) {
class="kw">return true;
}
}
class="kw">return false;
}
@Nullable
class="kw">public AssetTypeHandler tryGetAssetTypeHandler(@Nonnull Path var1, @Nonnull EditorClient var2, int var3) {
AssetTypeHandler var4 = this.getAssetTypeHandlerForPath(var1);
if (var4 == null) {
LOGGER.at(Level.WARNING).log("Invalid asset type for %s", var1);
if (var3 != -1) {
var2.sendFailureReply(var3, Message.translation("server.assetEditor.messages.invalidAssetType"));
} else {
var2.sendPopupNotification(AssetEditorPopupNotificationType.Error, Message.translation("server.assetEditor.messages.invalidAssetType"));
}
class="kw">return null;
} else {
class="kw">return var4;
}
}
class="kw">public void sendPacket(@Nonnull EditorClient var1) {
var1.getPacketHandler().write(this.setupPacket);
}
class="kw">public void setupPacket() {
List var1 = new ObjectArrayList();
for (AssetTypeHandler var3 : this.assetTypeHandlers.values()) {
var1.add(var3.getConfig());
}
this.setupPacket = new AssetEditorSetupAssetTypes(var1.toArray(AssetEditorAssetType[]::new));
}
}