#create screen in 1.21.5
7 messages · Page 1 of 1 (latest)
heres what i tried:
package de.xaaronzz105.playerscalepro.client;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.tooltip.Tooltip;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.text.Text;
public class ClientScreen extends Screen {
protected ClientScreen() {
super(Text.literal("Player scaler"));
}
public ButtonWidget button1;
public ButtonWidget button2;
@Override
protected void init() {
button1 = ButtonWidget.builder(Text.literal("Button 1"), (button) -> {
System.out.println("Clicked button 1");
})
.dimensions(width / 2 - 200, 20, 200, 20)
.tooltip(Tooltip.of(Text.literal("Tooltip of Button 1")))
.build();
button1 = ButtonWidget.builder(Text.literal("Button 2"), (button) -> {
System.out.println("Clicked button 2");
})
.dimensions(width / 2 + 5, 20, 200, 20)
.tooltip(Tooltip.of(Text.literal("Tooltip of Button 2")))
.build();
addDrawableChild(button1);
addDrawableChild(button2);
}
@Override
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
super.render(context, mouseX, mouseY, delta);
// Minecraft doesn't have a "label" widget, so we'll have to draw our own text.
// We'll subtract the font height from the Y position to make the text appear above the button.
// Subtracting an extra 10 pixels will give the text some padding.
// textRenderer, text, x, y, color, hasShadow
context.drawText(this.textRenderer, "Special Button", 40, 40 - this.textRenderer.fontHeight - 10, 0xFFFFFFFF, true);
}
@Override
public boolean shouldPause() {
return false;
}
}
and heres the error till the only part of my code mentioned:
(the line where the screen gets opened)
java.lang.NullPointerException: Cannot invoke "net.minecraft.client.gui.Selectable.getNarratedParts()" because "selectable" is null
at knot//net.minecraft.client.gui.screen.Screen.method_65517(Screen.java:506)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
at knot//net.minecraft.client.gui.screen.Screen.addElementNarrations(Screen.java:509)
at knot//net.minecraft.client.gui.screen.Screen.addScreenNarrations(Screen.java:501)
at knot//net.minecraft.client.gui.screen.narration.ScreenNarrator.buildNarrations(ScreenNarrator.java:34)
at knot//net.minecraft.client.gui.screen.Screen.narrateScreen(Screen.java:485)
at knot//net.minecraft.client.gui.screen.Screen.narrateScreenIfNarrationEnabled(Screen.java:480)
at knot//net.minecraft.client.gui.screen.Screen.init(Screen.java:302)
at knot//net.minecraft.client.MinecraftClient.setScreen(MinecraftClient.java:1203)
at knot//de.xaaronzz105.playerscalepro.client.mainClient.lambda$onInitializeClient$0(mainClient.java:70)
You initialise button1 twice
Instead of button2 on the second one
omg 😭, im sorry
😂😂Get some sleep bro