Начинающий
- Статус
- Оффлайн
- Регистрация
- 10 Дек 2022
- Сообщения
- 346
- Реакции
- 3
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Всем привет, столкнулся с уебанищеской ошибкой, когда не находит путь до файла ResourceLocation, пытаюсь сделать, что бы рендерило obj модели и попробовал несколько вариаций написания пути и выдает ошибки таким планом.
Вариант 1:
Ошибка - [21:01:08] [main/INFO]: [STDERR]: Ошибка при загрузке кастомной модели: minecraft:assets/minecraft/expensive/models/Boblox.obj
Вариант 2:
Ошибка - [21:04:48] [main/INFO]: [STDERR]: Ошибка при загрузке кастомной модели: minecraft:expensive/models/Boblox.obj
Вариант 3:
Ошибка - [21:05:36] [main/INFO]: [STDERR]: Ошибка при загрузке кастомной модели: minecraft:models/Boblox.obj
Путь я ввожу правильно, уверен на все сто:
По такому пути находится
На всякий случай класс ResourceLocation:
База экспа 3.1
Грок, дипсик, чатгпт ничем не помог, ответы в плане "чата гпт спроси" не одобряю
Ошибка при запуске клиента (не критично):
Ошибка при рендере модели, когда переключаешься от третьего лица (критично):
Вариант 1:
ResourceLocation modelLocation = new ResourceLocation("assets/minecraft/expensive/models/Boblox.obj");
Ошибка - [21:01:08] [main/INFO]: [STDERR]: Ошибка при загрузке кастомной модели: minecraft:assets/minecraft/expensive/models/Boblox.obj
Вариант 2:
ResourceLocation modelLocation = new ResourceLocation("expensive/models/Boblox.obj");
Ошибка - [21:04:48] [main/INFO]: [STDERR]: Ошибка при загрузке кастомной модели: minecraft:expensive/models/Boblox.obj
Вариант 3:
ResourceLocation modelLocation = new ResourceLocation("models/Boblox.obj");
Ошибка - [21:05:36] [main/INFO]: [STDERR]: Ошибка при загрузке кастомной модели: minecraft:models/Boblox.obj
Путь я ввожу правильно, уверен на все сто:
C:\Users\...\Desktop\wolfram-master\src\assets\minecraft\expensive\models
По такому пути находится
На всякий случай класс ResourceLocation:
ResourceLocation:
package net.minecraft.util;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.mojang.brigadier.StringReader;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.mojang.brigadier.exceptions.SimpleCommandExceptionType;
import com.mojang.serialization.Codec;
import com.mojang.serialization.DataResult;
import java.lang.reflect.Type;
import javax.annotation.Nullable;
import net.minecraft.util.text.TranslationTextComponent;
public class ResourceLocation implements Comparable<ResourceLocation>
{
public static final Codec<ResourceLocation> CODEC = Codec.STRING.comapFlatMap(ResourceLocation::decodeResourceLocation, ResourceLocation::toString).stable();
private static final SimpleCommandExceptionType INVALID_EXCEPTION = new SimpleCommandExceptionType(new TranslationTextComponent("argument.id.invalid"));
protected final String namespace;
protected final String path;
protected ResourceLocation(String[] resourceParts)
{
this.namespace = org.apache.commons.lang3.StringUtils.isEmpty(resourceParts[0]) ? "minecraft" : resourceParts[0];
this.path = resourceParts[1];
if (this.path.equals("DUMMY"))
{
if (!isValidNamespace(this.namespace))
{
throw new ResourceLocationException("Non [a-z0-9_.-] character in namespace of location: " + this.namespace + ':' + this.path);
}
else if (!isPathValid(this.path))
{
throw new ResourceLocationException("Non [a-z0-9/._-] character in path of location: " + this.namespace + ':' + this.path);
}
}
}
public ResourceLocation(String resourceName)
{
this(decompose(resourceName, ':'));
}
public ResourceLocation(String namespaceIn, String pathIn)
{
this(new String[] {namespaceIn, pathIn});
}
/**
* Constructs a ResourceLocation by splitting a String representation of a valid location on a specified character.
*/
public static ResourceLocation create(String resourceName, char splitOn)
{
return new ResourceLocation(decompose(resourceName, splitOn));
}
[USER=1265501]@nullable[/USER]
public static ResourceLocation tryCreate(String string)
{
try
{
return new ResourceLocation(string);
}
catch (ResourceLocationException resourcelocationexception)
{
return null;
}
}
protected static String[] decompose(String resourceName, char splitOn)
{
String[] astring = new String[] {"minecraft", resourceName};
int i = resourceName.indexOf(splitOn);
if (i >= 0)
{
astring[1] = resourceName.substring(i + 1, resourceName.length());
if (i >= 1)
{
astring[0] = resourceName.substring(0, i);
}
}
return astring;
}
private static DataResult<ResourceLocation> decodeResourceLocation(String encoded)
{
try
{
return DataResult.success(new ResourceLocation(encoded));
}
catch (ResourceLocationException resourcelocationexception)
{
return DataResult.error("Not a valid resource location: " + encoded + " " + resourcelocationexception.getMessage());
}
}
public String getPath()
{
return this.path;
}
public String getNamespace()
{
return this.namespace;
}
public String toString()
{
return this.namespace + ':' + this.path;
}
public boolean equals(Object p_equals_1_)
{
if (this == p_equals_1_)
{
return true;
}
else if (!(p_equals_1_ instanceof ResourceLocation))
{
return false;
}
else
{
ResourceLocation resourcelocation = (ResourceLocation)p_equals_1_;
return this.namespace.equals(resourcelocation.namespace) && this.path.equals(resourcelocation.path);
}
}
public int hashCode()
{
return 31 * this.namespace.hashCode() + this.path.hashCode();
}
public int compareTo(ResourceLocation p_compareTo_1_)
{
int i = this.path.compareTo(p_compareTo_1_.path);
if (i == 0)
{
i = this.namespace.compareTo(p_compareTo_1_.namespace);
}
return i;
}
public static ResourceLocation read(StringReader reader) throws CommandSyntaxException
{
int i = reader.getCursor();
while (reader.canRead() && isValidPathCharacter(reader.peek()))
{
reader.skip();
}
String s = reader.getString().substring(i, reader.getCursor());
try
{
return new ResourceLocation(s);
}
catch (ResourceLocationException resourcelocationexception)
{
reader.setCursor(i);
throw INVALID_EXCEPTION.createWithContext(reader);
}
}
public static boolean isValidPathCharacter(char charIn)
{
return charIn >= '0' && charIn <= '9' || charIn >= 'a' && charIn <= 'z' || charIn == '_' || charIn == ':' || charIn == '/' || charIn == '.' || charIn == '-';
}
/**
* Checks if the path contains invalid characters.
*/
private static boolean isPathValid(String pathIn)
{
for (int i = 0; i < pathIn.length(); ++i)
{
if (!validatePathChar(pathIn.charAt(i)))
{
return false;
}
}
return true;
}
/**
* Returns true if given namespace only consists of allowed characters.
*/
private static boolean isValidNamespace(String namespaceIn)
{
for (int i = 0; i < namespaceIn.length(); ++i)
{
if (!validateNamespaceChar(namespaceIn.charAt(i)))
{
return false;
}
}
return true;
}
public static boolean validatePathChar(char charValue)
{
return charValue == '_' || charValue == '-' || charValue >= 'a' && charValue <= 'z' || charValue >= '0' && charValue <= '9' || charValue == '/' || charValue == '.';
}
private static boolean validateNamespaceChar(char charValue)
{
return charValue == '_' || charValue == '-' || charValue >= 'a' && charValue <= 'z' || charValue >= '0' && charValue <= '9' || charValue == '.';
}
/**
* Checks if the specified resource name (namespace and path) contains invalid characters.
*/
public static boolean isResouceNameValid(String resourceName)
{
String[] astring = decompose(resourceName, ':');
return isValidNamespace(org.apache.commons.lang3.StringUtils.isEmpty(astring[0]) ? "minecraft" : astring[0]) && isPathValid(astring[1]);
}
public int compareNamespaced(ResourceLocation p_compareNamespaced_1_)
{
int i = this.namespace.compareTo(p_compareNamespaced_1_.namespace);
return i != 0 ? i : this.path.compareTo(p_compareNamespaced_1_.path);
}
public static class Serializer implements JsonDeserializer<ResourceLocation>, JsonSerializer<ResourceLocation>
{
public ResourceLocation deserialize(JsonElement p_deserialize_1_, Type p_deserialize_2_, JsonDeserializationContext p_deserialize_3_) throws JsonParseException
{
return new ResourceLocation(JSONUtils.getString(p_deserialize_1_, "location"));
}
public JsonElement serialize(ResourceLocation p_serialize_1_, Type p_serialize_2_, JsonSerializationContext p_serialize_3_)
{
return new JsonPrimitive(p_serialize_1_.toString());
}
}
}
База экспа 3.1
Грок, дипсик, чатгпт ничем не помог, ответы в плане "чата гпт спроси" не одобряю
Ошибка при запуске клиента (не критично):
LogNotCriticalError:
[21:05:36] [main/INFO]: [STDERR]: Ошибка при загрузке кастомной модели: minecraft:models/Boblox.obj
[21:05:36] [main/INFO]: [STDERR]: java.io.FileNotFoundException: minecraft:models/Boblox.obj
[21:05:36] [main/INFO]: [STDERR]: at net.minecraft.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:72)
[21:05:36] [main/INFO]: [STDERR]: at im.expensive.utils.objfile.ObjFile.loadModel(ObjFile.java:16)
[21:05:36] [main/INFO]: [STDERR]: at net.minecraft.client.renderer.entity.PlayerRenderer.<init>(PlayerRenderer.java:79)
[21:05:36] [main/INFO]: [STDERR]: at net.minecraft.client.renderer.entity.PlayerRenderer.<init>(PlayerRenderer.java:59)
[21:05:36] [main/INFO]: [STDERR]: at net.minecraft.client.renderer.entity.EntityRendererManager.<init>(EntityRendererManager.java:219)
[21:05:36] [main/INFO]: [STDERR]: at net.minecraft.client.Minecraft.<init>(Minecraft.java:399)
[21:05:36] [main/INFO]: [STDERR]: at net.minecraft.client.main.Main.main(Main.java:156)
[21:05:36] [main/INFO]: [STDERR]: at Start.main(Start.java:11)
[21:05:36] [main/INFO]: [STDERR]: Ошибка при загрузке кастомной модели: minecraft:models/Boblox.obj
[21:05:36] [main/INFO]: [STDERR]: java.io.FileNotFoundException: minecraft:models/Boblox.obj
[21:05:36] [main/INFO]: [STDERR]: at net.minecraft.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:72)
[21:05:36] [main/INFO]: [STDERR]: at im.expensive.utils.objfile.ObjFile.loadModel(ObjFile.java:16)
[21:05:36] [main/INFO]: [STDERR]: at net.minecraft.client.renderer.entity.PlayerRenderer.<init>(PlayerRenderer.java:79)
[21:05:36] [main/INFO]: [STDERR]: at net.minecraft.client.renderer.entity.EntityRendererManager.<init>(EntityRendererManager.java:221)
[21:05:36] [main/INFO]: [STDERR]: at net.minecraft.client.Minecraft.<init>(Minecraft.java:399)
[21:05:36] [main/INFO]: [STDERR]: at net.minecraft.client.main.Main.main(Main.java:156)
[21:05:36] [main/INFO]: [STDERR]: at Start.main(Start.java:11)
Ошибка при рендере модели, когда переключаешься от третьего лица (критично):
LogCriticalError:
[21:16:48] [main/FATAL]: Reported exception thrown!
net.minecraft.crash.ReportedException: Rendering entity in world
at net.minecraft.client.renderer.entity.EntityRendererManager.renderEntityStatic(EntityRendererManager.java:332) ~[client/:?]
at net.minecraft.client.renderer.WorldRenderer.renderEntity(WorldRenderer.java:2039) ~[client/:?]
at net.minecraft.client.renderer.WorldRenderer.updateCameraAndRender(WorldRenderer.java:1635) ~[client/:?]
at net.minecraft.client.renderer.GameRenderer.renderWorld(GameRenderer.java:959) ~[client/:?]
at net.minecraft.client.renderer.GameRenderer.updateCameraAndRender(GameRenderer.java:669) ~[client/:?]
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:974) ~[client/:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:565) [client/:?]
at net.minecraft.client.main.Main.main(Main.java:191) [client/:?]
at Start.main(Start.java:11) [client/:?]
Caused by: java.lang.NullPointerException: Cannot invoke "im.expensive.utils.objfile.ObjModel.getTexture()" because "model" is null
at net.minecraft.client.renderer.entity.PlayerRenderer.renderCustomModel(PlayerRenderer.java:125) ~[client/:?]
at net.minecraft.client.renderer.entity.PlayerRenderer.render(PlayerRenderer.java:107) ~[client/:?]
at net.minecraft.client.renderer.entity.PlayerRenderer.render(PlayerRenderer.java:54) ~[client/:?]
at net.minecraft.client.renderer.entity.EntityRendererManager.renderEntityStatic(EntityRendererManager.java:291) ~[client/:?]
... 8 more
---- Minecraft Crash Report ----
// I bet Cylons wouldn't have this problem.
Time: 18.04.2025, 21:16
Description: Rendering entity in world
java.lang.NullPointerException: Cannot invoke "im.expensive.utils.objfile.ObjModel.getTexture()" because "model" is null
at net.minecraft.client.renderer.entity.PlayerRenderer.renderCustomModel(PlayerRenderer.java:125)
at net.minecraft.client.renderer.entity.PlayerRenderer.render(PlayerRenderer.java:107)
at net.minecraft.client.renderer.entity.PlayerRenderer.render(PlayerRenderer.java:54)
at net.minecraft.client.renderer.entity.EntityRendererManager.renderEntityStatic(EntityRendererManager.java:291)
at net.minecraft.client.renderer.WorldRenderer.renderEntity(WorldRenderer.java:2039)
at net.minecraft.client.renderer.WorldRenderer.updateCameraAndRender(WorldRenderer.java:1635)
at net.minecraft.client.renderer.GameRenderer.renderWorld(GameRenderer.java:959)
at net.minecraft.client.renderer.GameRenderer.updateCameraAndRender(GameRenderer.java:669)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:974)
at net.minecraft.client.Minecraft.run(Minecraft.java:565)
at net.minecraft.client.main.Main.main(Main.java:191)
at Start.main(Start.java:11)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Thread: Render thread
Stacktrace:
at net.minecraft.client.renderer.entity.PlayerRenderer.renderCustomModel(PlayerRenderer.java:125)
at net.minecraft.client.renderer.entity.PlayerRenderer.render(PlayerRenderer.java:107)
at net.minecraft.client.renderer.entity.PlayerRenderer.render(PlayerRenderer.java:54)
-- Entity being rendered --
Details:
Entity Type: minecraft:player (net.minecraft.client.entity.player.ClientPlayerEntity)
Entity ID: 81
Entity Name: fgst_710
Entity's Exact location: -118.21, 68.00, -197.53
Entity's Block location: World: (-119,68,-198), Chunk: (at 9,4,10 in -8,-13; contains blocks -128,0,-208 to -113,255,-193), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,0,-512 to -1,255,-1)
Entity's Momentum: 0.00, -0.08, 0.00
Entity's Passengers: []
Entity's Vehicle: ~~ERROR~~ NullPointerException: Cannot invoke "net.minecraft.entity.Entity.toString()" because the return value of "net.minecraft.entity.Entity.getRidingEntity()" is null
-- Renderer details --
Details:
Assigned renderer: net.minecraft.client.renderer.entity.PlayerRenderer@331f603d
Location: 2.65,-3.13,-2.59 - World: (2,-4,-3), Chunk: (at 2,-1,13 in 0,-1; contains blocks 0,0,-16 to 15,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1)
Rotation: 225.64423
Delta: 0.06001115
Stacktrace:
at net.minecraft.client.renderer.entity.EntityRendererManager.renderEntityStatic(EntityRendererManager.java:291)
at net.minecraft.client.renderer.WorldRenderer.renderEntity(WorldRenderer.java:2039)
at net.minecraft.client.renderer.WorldRenderer.updateCameraAndRender(WorldRenderer.java:1635)
at net.minecraft.client.renderer.GameRenderer.renderWorld(GameRenderer.java:959)
-- Affected level --
Details:
All players: 1 total; [ClientPlayerEntity['fgst_710'/81, l='ClientLevel', x=-118.21, y=68.00, z=-197.53]]
Chunk stats: Client Chunk Cache: 441, 225
Level dimension: minecraft:overworld
Level spawn location: World: (240,70,-256), Chunk: (at 0,4,0 in 15,-16; contains blocks 240,0,-256 to 255,255,-241), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1)
Level time: 2439081 game time, 1193421 day time
Server brand: vanilla
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.world.ClientWorld.fillCrashReport(ClientWorld.java:530)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2291)
at net.minecraft.client.Minecraft.run(Minecraft.java:581)
at net.minecraft.client.main.Main.main(Main.java:191)
at Start.main(Start.java:11)