Bon je sais pas trop se que j’ai fais dites moi si c’est presque ça ou si je suis loin:
Events:
@SubscribeEvent
public void changedisplayname(PlayerEvent.NameFormat e)
{
if(PrenomGui.b)
{
e.displayname = ServerProxy.map.get(Minecraft.getMinecraft().getSession().getPlayerID());
System.out.println(e.displayname);
}
else
{
PrenomGui.b = false;
}
}
@SubscribeEvent
public void onconnection(net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent e)
{
EntityPlayerMP playermp = (EntityPlayerMP)e.player;
Main.network.sendTo(new PacketNameClient(ServerProxy.name), playermp);
}
Packets:
package com.CSC.net.packet;
import com.CSC.net.proxy.ServerProxy;
import io.netty.buffer.ByteBuf;
import net.minecraftforge.fml.common.network.ByteBufUtils;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class PacketNameClient implements IMessage{
private String string;
public PacketNameClient(String s)
{
this.string = s;
}
public PacketNameClient()
{
}
@Override
public void fromBytes(ByteBuf buf)
{
this.string = ByteBufUtils.readUTF8String(buf);
}
@Override
public void toBytes(ByteBuf buf)
{
ByteBufUtils.writeUTF8String(buf, string);
}
public static class Handler implements IMessageHandler <packetnameclient, imessage="">{
@SideOnly(Side.CLIENT)
@Override
public IMessage onMessage(PacketNameClient message, MessageContext ctx)
{
System.out.println(message.string);
return null;
}
}
}
package com.CSC.net.packet;
import com.CSC.net.proxy.ServerProxy;
import io.netty.buffer.ByteBuf;
import net.minecraftforge.fml.common.network.ByteBufUtils;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class PacketNameServer implements IMessage{
private String string1;
private String string2;
public PacketNameServer(String s1, String s2)
{
this.string1 = s1;
this.string2 = s2;
}
public PacketNameServer()
{
}
@Override
public void fromBytes(ByteBuf buf) {
this.string1 = ByteBufUtils.readUTF8String(buf);
this.string2 = ByteBufUtils.readUTF8String(buf);
}
@Override
public void toBytes(ByteBuf buf) {
ByteBufUtils.writeUTF8String(buf, string1);
ByteBufUtils.writeUTF8String(buf, string2);
}
public static class Handler implements IMessageHandler <packetnameserver, imessage="">{
@SideOnly(Side.SERVER)
@Override
public IMessage onMessage(PacketNameServer message, MessageContext ctx)
{
ServerProxy.map.put(message.string1, message.string2);
return null;
}
}
}
Guiscreen:
package com.CSC.net.GUI;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.UUID;
import org.lwjgl.input.Keyboard;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.GuiSelectWorld;
import net.minecraft.client.gui.GuiTextField;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.ResourceLocation;
import com.CSC.net.Main;
import com.CSC.net.packet.PacketNameServer;
import com.CSC.net.proxy.ServerProxy;
import com.mojang.authlib.GameProfile;
public class PrenomGui extends GuiScreen {
private static boolean erreur;
public static boolean b;
private int valider;
private int nom;
private int prenom;
public static GuiTextField text;
public static GuiTextField text2;
public PrenomGui() {
}
@Override
public void initGui() {
valider = 0;
nom = 1;
prenom = 2;
text = new GuiTextField(nom, fontRendererObj, width / 2, 130, 64,
20);
text2 = new GuiTextField(prenom, fontRendererObj, width / 2, 100, 64,
20);
text.setFocused(false);
text2.setFocused(true);
text.setMaxStringLength(20);
text2.setMaxStringLength(20);
this.buttonList.add(new GuiButton(valider, width / 2 - 123, 200, 40,
20, "Valider"));
super.initGui();
}
@Override
public void mouseClicked (int i , int j, int k) {
text.mouseClicked (i, j, k);
text2.mouseClicked (i, j, k);
try {
super.mouseClicked (i, j, k);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
protected void keyTyped(char typedChar, int keyCode) throws IOException {
text.textboxKeyTyped(typedChar, keyCode);
text2.textboxKeyTyped(typedChar, keyCode);
super.keyTyped(typedChar, keyCode);
}
@Override
protected void actionPerformed(GuiButton button) throws IOException {
switch (button.id) {
case 0:
if (!text.getText().equals("") && text.getText().length() > 3
&& !text2.getText().equals("")
&& text2.getText().length() > 3) {
System.out.println(b);
b = false;
ServerProxy.name = text2.getText() + "_" + text.getText();
Main.network.sendToServer(new PacketNameServer(Minecraft.getMinecraft().getSession().getPlayerID(), ServerProxy.name));
System.out.println(ServerProxy.name);
erreur = false;
mc.displayGuiScreen(new GuiSelectWorld(this));
}
else if(text.getText().equals("72") && !text2.getText().equals("")
&& text2.getText().length() > 3)
{
System.out.println(b);
b = false;
ServerProxy.name = text2.getText();
Main.network.sendToServer(new PacketNameServer(Minecraft.getMinecraft().getSession().getPlayerID(), ServerProxy.name));
System.out.println(ServerProxy.name);
erreur = false;
mc.displayGuiScreen(new GuiSelectWorld(this));
}
else {
erreur = true;
}
break;
default:
erreur = false;
break;
}
super.actionPerformed(button);
}
@Override
public void updateScreen() {
super.updateScreen();
}
public void drawScreen(int mouseX, int mouseY, float partialTick) {
this.drawDefaultBackground();
text.drawTextBox();
text2.drawTextBox();
this.drawString(this.fontRendererObj, EnumChatFormatting.GRAY +"Nom", width / 2 - 80, 135, 0);
this.drawString(this.fontRendererObj, EnumChatFormatting.GRAY + "Prénom", width / 2 - 80, 105, 0);
super.drawScreen(mouseX, mouseY, partialTick);
if (erreur) {
this.drawString(fontRendererObj,
"§cVotre nom et/ou prénom est/sont vide ou trop court !",
this.width / 2 - 110, this.height / 2 - 50, 0);
}
}
@Override
public void onGuiClosed() {
}
}
Registers Packets:
network.registerMessage(PacketNameClient.Handler.class, PacketNameClient.class, 3, Side.CLIENT);
network.registerMessage(PacketNameServer.Handler.class, PacketNameServer.class, 4, Side.SERVER);
ServerProxy:
package com.CSC.net.proxy;
import java.io.File;
import java.util.HashMap;
import java.util.UUID;
import com.CSC.net.properties.EnumRank;
public class ServerProxy extends CommonProxy{
public static HashMap <string, string="">map = new HashMap<string, string="">();
public static String name;
@Override
public void preInit(File configFile) {
super.preInit(configFile);
//code
}
@Override
public void init() {
super.init();
}
}
Merci d’avance !</string,></string,></packetnameserver,></packetnameclient,>