[FEAT] Expose extra APIs to Command API
This commit is contained in:
@@ -4,9 +4,13 @@ import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedClientLevel;
|
|||||||
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
||||||
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
||||||
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
import net.minecraft.SharedConstants;
|
import net.minecraft.SharedConstants;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.screens.AlertScreen;
|
||||||
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -78,6 +82,25 @@ public class BridgedMinecraft {
|
|||||||
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showWarningScreen(Component title, Component message) {
|
||||||
|
Screen currentScreen = internal.screen;
|
||||||
|
internal.setScreen(
|
||||||
|
new AlertScreen(
|
||||||
|
() -> internal.setScreen(currentScreen),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Screen buildWarningScreen(Component title, Component message, Screen parent) {
|
||||||
|
return new AlertScreen(
|
||||||
|
() -> internal.setScreen(parent),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public int getServerPlayerCount () {
|
public int getServerPlayerCount () {
|
||||||
if (internal.getConnection() == null)
|
if (internal.getConnection() == null)
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
package com.hypherionmc.craterlib.nojang.commands;
|
package com.hypherionmc.craterlib.nojang.commands;
|
||||||
|
|
||||||
|
import com.hypherionmc.craterlib.CraterConstants;
|
||||||
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
import com.hypherionmc.craterlib.utils.ChatUtils;
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
@@ -20,6 +22,25 @@ public class BridgedCommandSourceStack {
|
|||||||
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isPlayer() {
|
||||||
|
try {
|
||||||
|
internal.getPlayerOrException();
|
||||||
|
return true;
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public BridgedPlayer getPlayer() {
|
||||||
|
try {
|
||||||
|
return BridgedPlayer.of(internal.getPlayerOrException());
|
||||||
|
} catch (Exception e) {
|
||||||
|
CraterConstants.LOG.error("Failed to retrieve player", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public CommandSourceStack toMojang() {
|
public CommandSourceStack toMojang() {
|
||||||
return internal;
|
return internal;
|
||||||
}
|
}
|
||||||
|
@@ -7,8 +7,13 @@ import com.hypherionmc.craterlib.core.config.ConfigController;
|
|||||||
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
||||||
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
||||||
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
||||||
|
import com.hypherionmc.craterlib.nojang.client.BridgedMinecraft;
|
||||||
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
||||||
import com.terraformersmc.modmenu.api.ModMenuApi;
|
import com.terraformersmc.modmenu.api.ModMenuApi;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import net.kyori.adventure.text.format.Style;
|
||||||
|
import net.kyori.adventure.text.format.TextDecoration;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -30,7 +35,11 @@ public class CraterLibModMenuIntegration implements ModMenuApi {
|
|||||||
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
||||||
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
||||||
} else {
|
} else {
|
||||||
//configScreens.put(config.getModId(), screen -> new CraterConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> BridgedMinecraft.getInstance().buildWarningScreen(
|
||||||
|
Component.text("Notice").style(Style.style(NamedTextColor.YELLOW).decorate(TextDecoration.BOLD)),
|
||||||
|
Component.text("This mod does not have a config screen, or Cloth Config is not installed"),
|
||||||
|
screen
|
||||||
|
));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -4,9 +4,13 @@ import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedClientLevel;
|
|||||||
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
||||||
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
||||||
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
import net.minecraft.SharedConstants;
|
import net.minecraft.SharedConstants;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.screens.AlertScreen;
|
||||||
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -78,6 +82,25 @@ public class BridgedMinecraft {
|
|||||||
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showWarningScreen(Component title, Component message) {
|
||||||
|
Screen currentScreen = internal.screen;
|
||||||
|
internal.setScreen(
|
||||||
|
new AlertScreen(
|
||||||
|
() -> internal.setScreen(currentScreen),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Screen buildWarningScreen(Component title, Component message, Screen parent) {
|
||||||
|
return new AlertScreen(
|
||||||
|
() -> internal.setScreen(parent),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public int getServerPlayerCount () {
|
public int getServerPlayerCount () {
|
||||||
if (internal.getConnection() == null)
|
if (internal.getConnection() == null)
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.hypherionmc.craterlib.nojang.commands;
|
package com.hypherionmc.craterlib.nojang.commands;
|
||||||
|
|
||||||
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
import com.hypherionmc.craterlib.utils.ChatUtils;
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
@@ -20,6 +21,14 @@ public class BridgedCommandSourceStack {
|
|||||||
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isPlayer() {
|
||||||
|
return internal.isPlayer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public BridgedPlayer getPlayer() {
|
||||||
|
return BridgedPlayer.of(internal.getPlayer());
|
||||||
|
}
|
||||||
|
|
||||||
public CommandSourceStack toMojang() {
|
public CommandSourceStack toMojang() {
|
||||||
return internal;
|
return internal;
|
||||||
}
|
}
|
||||||
|
@@ -7,8 +7,13 @@ import com.hypherionmc.craterlib.core.config.ConfigController;
|
|||||||
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
||||||
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
||||||
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
||||||
|
import com.hypherionmc.craterlib.nojang.client.BridgedMinecraft;
|
||||||
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
||||||
import com.terraformersmc.modmenu.api.ModMenuApi;
|
import com.terraformersmc.modmenu.api.ModMenuApi;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import net.kyori.adventure.text.format.Style;
|
||||||
|
import net.kyori.adventure.text.format.TextDecoration;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -30,7 +35,11 @@ public class CraterLibModMenuIntegration implements ModMenuApi {
|
|||||||
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
||||||
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
||||||
} else {
|
} else {
|
||||||
//configScreens.put(config.getModId(), screen -> new CraterConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> BridgedMinecraft.getInstance().buildWarningScreen(
|
||||||
|
Component.text("Notice").style(Style.style(NamedTextColor.YELLOW).decorate(TextDecoration.BOLD)),
|
||||||
|
Component.text("This mod does not have a config screen, or Cloth Config is not installed"),
|
||||||
|
screen
|
||||||
|
));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -4,9 +4,13 @@ import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedClientLevel;
|
|||||||
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
||||||
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
||||||
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
import net.minecraft.SharedConstants;
|
import net.minecraft.SharedConstants;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.screens.AlertScreen;
|
||||||
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -78,6 +82,25 @@ public class BridgedMinecraft {
|
|||||||
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showWarningScreen(Component title, Component message) {
|
||||||
|
Screen currentScreen = internal.screen;
|
||||||
|
internal.setScreen(
|
||||||
|
new AlertScreen(
|
||||||
|
() -> internal.setScreen(currentScreen),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Screen buildWarningScreen(Component title, Component message, Screen parent) {
|
||||||
|
return new AlertScreen(
|
||||||
|
() -> internal.setScreen(parent),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public int getServerPlayerCount () {
|
public int getServerPlayerCount () {
|
||||||
if (internal.getConnection() == null)
|
if (internal.getConnection() == null)
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.hypherionmc.craterlib.nojang.commands;
|
package com.hypherionmc.craterlib.nojang.commands;
|
||||||
|
|
||||||
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
import com.hypherionmc.craterlib.utils.ChatUtils;
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
@@ -20,6 +21,14 @@ public class BridgedCommandSourceStack {
|
|||||||
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isPlayer() {
|
||||||
|
return internal.isPlayer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public BridgedPlayer getPlayer() {
|
||||||
|
return BridgedPlayer.of(internal.getPlayer());
|
||||||
|
}
|
||||||
|
|
||||||
public CommandSourceStack toMojang() {
|
public CommandSourceStack toMojang() {
|
||||||
return internal;
|
return internal;
|
||||||
}
|
}
|
||||||
|
@@ -7,8 +7,13 @@ import com.hypherionmc.craterlib.core.config.ConfigController;
|
|||||||
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
||||||
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
||||||
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
||||||
|
import com.hypherionmc.craterlib.nojang.client.BridgedMinecraft;
|
||||||
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
||||||
import com.terraformersmc.modmenu.api.ModMenuApi;
|
import com.terraformersmc.modmenu.api.ModMenuApi;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import net.kyori.adventure.text.format.Style;
|
||||||
|
import net.kyori.adventure.text.format.TextDecoration;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -30,7 +35,11 @@ public class CraterLibModMenuIntegration implements ModMenuApi {
|
|||||||
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
||||||
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
||||||
} else {
|
} else {
|
||||||
//configScreens.put(config.getModId(), screen -> new CraterConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> BridgedMinecraft.getInstance().buildWarningScreen(
|
||||||
|
Component.text("Notice").style(Style.style(NamedTextColor.YELLOW).decorate(TextDecoration.BOLD)),
|
||||||
|
Component.text("This mod does not have a config screen, or Cloth Config is not installed"),
|
||||||
|
screen
|
||||||
|
));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -4,9 +4,13 @@ import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedClientLevel;
|
|||||||
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
||||||
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
||||||
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
import net.minecraft.SharedConstants;
|
import net.minecraft.SharedConstants;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.screens.AlertScreen;
|
||||||
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -78,6 +82,25 @@ public class BridgedMinecraft {
|
|||||||
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showWarningScreen(Component title, Component message) {
|
||||||
|
Screen currentScreen = internal.screen;
|
||||||
|
internal.setScreen(
|
||||||
|
new AlertScreen(
|
||||||
|
() -> internal.setScreen(currentScreen),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Screen buildWarningScreen(Component title, Component message, Screen parent) {
|
||||||
|
return new AlertScreen(
|
||||||
|
() -> internal.setScreen(parent),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public int getServerPlayerCount () {
|
public int getServerPlayerCount () {
|
||||||
if (internal.getConnection() == null)
|
if (internal.getConnection() == null)
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.hypherionmc.craterlib.nojang.commands;
|
package com.hypherionmc.craterlib.nojang.commands;
|
||||||
|
|
||||||
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
import com.hypherionmc.craterlib.utils.ChatUtils;
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
@@ -20,6 +21,14 @@ public class BridgedCommandSourceStack {
|
|||||||
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isPlayer() {
|
||||||
|
return internal.isPlayer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public BridgedPlayer getPlayer() {
|
||||||
|
return BridgedPlayer.of(internal.getPlayer());
|
||||||
|
}
|
||||||
|
|
||||||
public CommandSourceStack toMojang() {
|
public CommandSourceStack toMojang() {
|
||||||
return internal;
|
return internal;
|
||||||
}
|
}
|
||||||
|
@@ -7,8 +7,13 @@ import com.hypherionmc.craterlib.core.config.ConfigController;
|
|||||||
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
||||||
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
||||||
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
||||||
|
import com.hypherionmc.craterlib.nojang.client.BridgedMinecraft;
|
||||||
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
||||||
import com.terraformersmc.modmenu.api.ModMenuApi;
|
import com.terraformersmc.modmenu.api.ModMenuApi;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import net.kyori.adventure.text.format.Style;
|
||||||
|
import net.kyori.adventure.text.format.TextDecoration;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -30,7 +35,11 @@ public class CraterLibModMenuIntegration implements ModMenuApi {
|
|||||||
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
||||||
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
||||||
} else {
|
} else {
|
||||||
//configScreens.put(config.getModId(), screen -> new CraterConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> BridgedMinecraft.getInstance().buildWarningScreen(
|
||||||
|
Component.text("Notice").style(Style.style(NamedTextColor.YELLOW).decorate(TextDecoration.BOLD)),
|
||||||
|
Component.text("This mod does not have a config screen, or Cloth Config is not installed"),
|
||||||
|
screen
|
||||||
|
));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -4,9 +4,13 @@ import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedClientLevel;
|
|||||||
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
||||||
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
||||||
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
import net.minecraft.SharedConstants;
|
import net.minecraft.SharedConstants;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.screens.AlertScreen;
|
||||||
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -78,6 +82,25 @@ public class BridgedMinecraft {
|
|||||||
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showWarningScreen(Component title, Component message) {
|
||||||
|
Screen currentScreen = internal.screen;
|
||||||
|
internal.setScreen(
|
||||||
|
new AlertScreen(
|
||||||
|
() -> internal.setScreen(currentScreen),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Screen buildWarningScreen(Component title, Component message, Screen parent) {
|
||||||
|
return new AlertScreen(
|
||||||
|
() -> internal.setScreen(parent),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public int getServerPlayerCount () {
|
public int getServerPlayerCount () {
|
||||||
if (internal.getConnection() == null)
|
if (internal.getConnection() == null)
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.hypherionmc.craterlib.nojang.commands;
|
package com.hypherionmc.craterlib.nojang.commands;
|
||||||
|
|
||||||
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
import com.hypherionmc.craterlib.utils.ChatUtils;
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
@@ -20,6 +21,14 @@ public class BridgedCommandSourceStack {
|
|||||||
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isPlayer() {
|
||||||
|
return internal.isPlayer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public BridgedPlayer getPlayer() {
|
||||||
|
return BridgedPlayer.of(internal.getPlayer());
|
||||||
|
}
|
||||||
|
|
||||||
public CommandSourceStack toMojang() {
|
public CommandSourceStack toMojang() {
|
||||||
return internal;
|
return internal;
|
||||||
}
|
}
|
||||||
|
@@ -7,8 +7,13 @@ import com.hypherionmc.craterlib.core.config.ConfigController;
|
|||||||
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
||||||
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
||||||
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
||||||
|
import com.hypherionmc.craterlib.nojang.client.BridgedMinecraft;
|
||||||
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
||||||
import com.terraformersmc.modmenu.api.ModMenuApi;
|
import com.terraformersmc.modmenu.api.ModMenuApi;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import net.kyori.adventure.text.format.Style;
|
||||||
|
import net.kyori.adventure.text.format.TextDecoration;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -30,7 +35,11 @@ public class CraterLibModMenuIntegration implements ModMenuApi {
|
|||||||
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
||||||
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
||||||
} else {
|
} else {
|
||||||
//configScreens.put(config.getModId(), screen -> new CraterConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> BridgedMinecraft.getInstance().buildWarningScreen(
|
||||||
|
Component.text("Notice").style(Style.style(NamedTextColor.YELLOW).decorate(TextDecoration.BOLD)),
|
||||||
|
Component.text("This mod does not have a config screen, or Cloth Config is not installed"),
|
||||||
|
screen
|
||||||
|
));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -4,9 +4,13 @@ import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedClientLevel;
|
|||||||
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
||||||
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
||||||
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
import net.minecraft.SharedConstants;
|
import net.minecraft.SharedConstants;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.screens.AlertScreen;
|
||||||
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -78,6 +82,25 @@ public class BridgedMinecraft {
|
|||||||
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showWarningScreen(Component title, Component message) {
|
||||||
|
Screen currentScreen = internal.screen;
|
||||||
|
internal.setScreen(
|
||||||
|
new AlertScreen(
|
||||||
|
() -> internal.setScreen(currentScreen),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Screen buildWarningScreen(Component title, Component message, Screen parent) {
|
||||||
|
return new AlertScreen(
|
||||||
|
() -> internal.setScreen(parent),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public int getServerPlayerCount () {
|
public int getServerPlayerCount () {
|
||||||
if (internal.getConnection() == null)
|
if (internal.getConnection() == null)
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.hypherionmc.craterlib.nojang.commands;
|
package com.hypherionmc.craterlib.nojang.commands;
|
||||||
|
|
||||||
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
import com.hypherionmc.craterlib.utils.ChatUtils;
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
@@ -20,6 +21,14 @@ public class BridgedCommandSourceStack {
|
|||||||
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isPlayer() {
|
||||||
|
return internal.isPlayer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public BridgedPlayer getPlayer() {
|
||||||
|
return BridgedPlayer.of(internal.getPlayer());
|
||||||
|
}
|
||||||
|
|
||||||
public CommandSourceStack toMojang() {
|
public CommandSourceStack toMojang() {
|
||||||
return internal;
|
return internal;
|
||||||
}
|
}
|
||||||
|
@@ -7,8 +7,13 @@ import com.hypherionmc.craterlib.core.config.ConfigController;
|
|||||||
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
||||||
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
||||||
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
||||||
|
import com.hypherionmc.craterlib.nojang.client.BridgedMinecraft;
|
||||||
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
||||||
import com.terraformersmc.modmenu.api.ModMenuApi;
|
import com.terraformersmc.modmenu.api.ModMenuApi;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import net.kyori.adventure.text.format.Style;
|
||||||
|
import net.kyori.adventure.text.format.TextDecoration;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -30,7 +35,11 @@ public class CraterLibModMenuIntegration implements ModMenuApi {
|
|||||||
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
||||||
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
||||||
} else {
|
} else {
|
||||||
//configScreens.put(config.getModId(), screen -> new CraterConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> BridgedMinecraft.getInstance().buildWarningScreen(
|
||||||
|
Component.text("Notice").style(Style.style(NamedTextColor.YELLOW).decorate(TextDecoration.BOLD)),
|
||||||
|
Component.text("This mod does not have a config screen, or Cloth Config is not installed"),
|
||||||
|
screen
|
||||||
|
));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -4,9 +4,13 @@ import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedClientLevel;
|
|||||||
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
||||||
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
||||||
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
import net.minecraft.SharedConstants;
|
import net.minecraft.SharedConstants;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.screens.AlertScreen;
|
||||||
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -78,6 +82,25 @@ public class BridgedMinecraft {
|
|||||||
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showWarningScreen(Component title, Component message) {
|
||||||
|
Screen currentScreen = internal.screen;
|
||||||
|
internal.setScreen(
|
||||||
|
new AlertScreen(
|
||||||
|
() -> internal.setScreen(currentScreen),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Screen buildWarningScreen(Component title, Component message, Screen parent) {
|
||||||
|
return new AlertScreen(
|
||||||
|
() -> internal.setScreen(parent),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public int getServerPlayerCount () {
|
public int getServerPlayerCount () {
|
||||||
if (internal.getConnection() == null)
|
if (internal.getConnection() == null)
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.hypherionmc.craterlib.nojang.commands;
|
package com.hypherionmc.craterlib.nojang.commands;
|
||||||
|
|
||||||
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
import com.hypherionmc.craterlib.utils.ChatUtils;
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
@@ -20,6 +21,14 @@ public class BridgedCommandSourceStack {
|
|||||||
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isPlayer() {
|
||||||
|
return internal.isPlayer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public BridgedPlayer getPlayer() {
|
||||||
|
return BridgedPlayer.of(internal.getPlayer());
|
||||||
|
}
|
||||||
|
|
||||||
public CommandSourceStack toMojang() {
|
public CommandSourceStack toMojang() {
|
||||||
return internal;
|
return internal;
|
||||||
}
|
}
|
||||||
|
@@ -7,8 +7,13 @@ import com.hypherionmc.craterlib.core.config.ConfigController;
|
|||||||
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
||||||
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
||||||
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
||||||
|
import com.hypherionmc.craterlib.nojang.client.BridgedMinecraft;
|
||||||
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
||||||
import com.terraformersmc.modmenu.api.ModMenuApi;
|
import com.terraformersmc.modmenu.api.ModMenuApi;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import net.kyori.adventure.text.format.Style;
|
||||||
|
import net.kyori.adventure.text.format.TextDecoration;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -30,7 +35,11 @@ public class CraterLibModMenuIntegration implements ModMenuApi {
|
|||||||
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
||||||
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
||||||
} else {
|
} else {
|
||||||
//configScreens.put(config.getModId(), screen -> new CraterConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> BridgedMinecraft.getInstance().buildWarningScreen(
|
||||||
|
Component.text("Notice").style(Style.style(NamedTextColor.YELLOW).decorate(TextDecoration.BOLD)),
|
||||||
|
Component.text("This mod does not have a config screen, or Cloth Config is not installed"),
|
||||||
|
screen
|
||||||
|
));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -4,9 +4,13 @@ import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedClientLevel;
|
|||||||
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedServerData;
|
||||||
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
import com.hypherionmc.craterlib.nojang.client.server.BridgedIntegratedServer;
|
||||||
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
import net.minecraft.SharedConstants;
|
import net.minecraft.SharedConstants;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.screens.AlertScreen;
|
||||||
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -78,6 +82,25 @@ public class BridgedMinecraft {
|
|||||||
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
return BridgedIntegratedServer.of(internal.getSingleplayerServer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showWarningScreen(Component title, Component message) {
|
||||||
|
Screen currentScreen = internal.screen;
|
||||||
|
internal.setScreen(
|
||||||
|
new AlertScreen(
|
||||||
|
() -> internal.setScreen(currentScreen),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Screen buildWarningScreen(Component title, Component message, Screen parent) {
|
||||||
|
return new AlertScreen(
|
||||||
|
() -> internal.setScreen(parent),
|
||||||
|
ChatUtils.adventureToMojang(title),
|
||||||
|
ChatUtils.adventureToMojang(message)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public int getServerPlayerCount () {
|
public int getServerPlayerCount () {
|
||||||
if (internal.getConnection() == null)
|
if (internal.getConnection() == null)
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.hypherionmc.craterlib.nojang.commands;
|
package com.hypherionmc.craterlib.nojang.commands;
|
||||||
|
|
||||||
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
import com.hypherionmc.craterlib.utils.ChatUtils;
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
@@ -20,6 +21,14 @@ public class BridgedCommandSourceStack {
|
|||||||
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
internal.sendFailure(ChatUtils.adventureToMojang(text));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isPlayer() {
|
||||||
|
return internal.isPlayer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public BridgedPlayer getPlayer() {
|
||||||
|
return BridgedPlayer.of(internal.getPlayer());
|
||||||
|
}
|
||||||
|
|
||||||
public CommandSourceStack toMojang() {
|
public CommandSourceStack toMojang() {
|
||||||
return internal;
|
return internal;
|
||||||
}
|
}
|
||||||
|
@@ -7,8 +7,13 @@ import com.hypherionmc.craterlib.core.config.ConfigController;
|
|||||||
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.ClothScreen;
|
||||||
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
|
||||||
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
||||||
|
import com.hypherionmc.craterlib.nojang.client.BridgedMinecraft;
|
||||||
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
||||||
import com.terraformersmc.modmenu.api.ModMenuApi;
|
import com.terraformersmc.modmenu.api.ModMenuApi;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import net.kyori.adventure.text.format.Style;
|
||||||
|
import net.kyori.adventure.text.format.TextDecoration;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -30,7 +35,11 @@ public class CraterLibModMenuIntegration implements ModMenuApi {
|
|||||||
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
if (watcher.getLeft().getClass().isAnnotationPresent(ClothScreen.class) && (ModloaderEnvironment.INSTANCE.isModLoaded("cloth_config") || ModloaderEnvironment.INSTANCE.isModLoaded("cloth-config") || ModloaderEnvironment.INSTANCE.isModLoaded("clothconfig"))) {
|
||||||
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> ClothConfigScreenBuilder.buildConfigScreen(config, screen));
|
||||||
} else {
|
} else {
|
||||||
//configScreens.put(config.getModId(), screen -> new CraterConfigScreen(config, screen));
|
configScreens.put(config.getModId(), screen -> BridgedMinecraft.getInstance().buildWarningScreen(
|
||||||
|
Component.text("Notice").style(Style.style(NamedTextColor.YELLOW).decorate(TextDecoration.BOLD)),
|
||||||
|
Component.text("This mod does not have a config screen, or Cloth Config is not installed"),
|
||||||
|
screen
|
||||||
|
));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -1 +1 @@
|
|||||||
5d0ad68c64a0ce008c9169967ba0cb9c10c960b8
|
4c3cc6b034dd6d3b78254d4cdea18a5634b13cbc
|
@@ -1,6 +1,6 @@
|
|||||||
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
||||||
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
||||||
@@ -35,7 +35,7 @@
|
@@ -39,7 +39,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isRealmServer() {
|
public boolean isRealmServer() {
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSinglePlayer() {
|
public boolean isSinglePlayer() {
|
||||||
@@ -59,7 +59,7 @@
|
@@ -63,7 +63,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public UUID getPlayerId() {
|
public UUID getPlayerId() {
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/commands/BridgedCommandSourceStack.java
|
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/commands/BridgedCommandSourceStack.java
|
||||||
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/commands/BridgedCommandSourceStack.java
|
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/commands/BridgedCommandSourceStack.java
|
||||||
@@ -13,7 +13,7 @@
|
@@ -1,5 +1,6 @@
|
||||||
|
package com.hypherionmc.craterlib.nojang.commands;
|
||||||
|
|
||||||
|
+import com.hypherionmc.craterlib.CraterConstants;
|
||||||
|
import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||||
|
import com.hypherionmc.craterlib.utils.ChatUtils;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
@@ -14,7 +15,7 @@
|
||||||
private final CommandSourceStack internal;
|
private final CommandSourceStack internal;
|
||||||
|
|
||||||
public void sendSuccess(Supplier<Component> supplier, boolean bl) {
|
public void sendSuccess(Supplier<Component> supplier, boolean bl) {
|
||||||
@@ -9,3 +16,28 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void sendFailure(Component text) {
|
public void sendFailure(Component text) {
|
||||||
|
@@ -22,11 +23,22 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isPlayer() {
|
||||||
|
- return internal.isPlayer();
|
||||||
|
+ try {
|
||||||
|
+ internal.getPlayerOrException();
|
||||||
|
+ return true;
|
||||||
|
+ } catch (Exception ignored) {
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
public BridgedPlayer getPlayer() {
|
||||||
|
- return BridgedPlayer.of(internal.getPlayer());
|
||||||
|
+ try {
|
||||||
|
+ return BridgedPlayer.of(internal.getPlayerOrException());
|
||||||
|
+ } catch (Exception e) {
|
||||||
|
+ CraterConstants.LOG.error("Failed to retrieve player", e);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CommandSourceStack toMojang() {
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
||||||
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
||||||
@@ -35,7 +35,7 @@
|
@@ -39,7 +39,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isRealmServer() {
|
public boolean isRealmServer() {
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/commands/BridgedCommandSourceStack.java
|
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/commands/BridgedCommandSourceStack.java
|
||||||
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/commands/BridgedCommandSourceStack.java
|
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/commands/BridgedCommandSourceStack.java
|
||||||
@@ -13,7 +13,7 @@
|
@@ -14,7 +14,7 @@
|
||||||
private final CommandSourceStack internal;
|
private final CommandSourceStack internal;
|
||||||
|
|
||||||
public void sendSuccess(Supplier<Component> supplier, boolean bl) {
|
public void sendSuccess(Supplier<Component> supplier, boolean bl) {
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
||||||
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
||||||
@@ -35,7 +35,7 @@
|
@@ -39,7 +39,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isRealmServer() {
|
public boolean isRealmServer() {
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/commands/BridgedCommandSourceStack.java
|
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/commands/BridgedCommandSourceStack.java
|
||||||
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/commands/BridgedCommandSourceStack.java
|
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/commands/BridgedCommandSourceStack.java
|
||||||
@@ -13,7 +13,7 @@
|
@@ -14,7 +14,7 @@
|
||||||
private final CommandSourceStack internal;
|
private final CommandSourceStack internal;
|
||||||
|
|
||||||
public void sendSuccess(Supplier<Component> supplier, boolean bl) {
|
public void sendSuccess(Supplier<Component> supplier, boolean bl) {
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
--- a/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
||||||
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
+++ b/Common/src/main/java/com/hypherionmc/craterlib/nojang/client/BridgedMinecraft.java
|
||||||
@@ -35,7 +35,7 @@
|
@@ -39,7 +39,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isRealmServer() {
|
public boolean isRealmServer() {
|
||||||
|
Reference in New Issue
Block a user