22 oct. 2016, 21:29

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,>