0

I am trying to make a minecraft mod, but I cannot figure this error out:

src\minecraft\net\minecraft\src\Packet2ClientProtocol.java:35: error: cannot fin
d symbol
                par1DataOutputStream.writeByte(this.protocolVersion);
                                               ^

symbol: variable protocolVersion
src\minecraft\net\minecraft\src\Packet2ClientProtocol.java:36: error: cannot fin
d symbol
        writeString(this.serverHost, par1DataOutputStream);
                    ^

symbol: variable serverHost
src\minecraft\net\minecraft\src\Packet2ClientProtocol.java:37: error: cannot fin
d symbol
        par1DataOutputStream.writeInt(this.serverPort);
                                      ^

symbol: variable serverPort
src\minecraft\net\minecraft\src\Packet2ClientProtocol.java:38: error: cannot fin
d symbol
            writeString(this.username, par1DataOutputStream);
                            ^

symbol: variable username
src\minecraft\net\minecraft\src\Packet2ClientProtocol.java:54: error: cannot fin
d symbol
        return 3 + 2 * this.username.length();
                       ^

symbol: variable username
src\minecraft\net\minecraft\src\Packet2ClientProtocol.java:62: error: cannot fin
d symbol
    return this.protocolVersion;
               ^

symbol: variable protocolVersion
src\minecraft\net\minecraft\src\Packet2ClientProtocol.java:70: error: cannot fin
d symbol
    return this.username;
               ^

Here is my Packet2ClientProtocol.java:

package net.minecraft.src;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

public class Packet2ClientProtocol extends Packet
{
    public Packet2ClientProtocol() {}

    public void Packet2ClientProtocol(int par1, String par2Str, int par3, String par4Str)
    {
        int protocolVersion = par1;
        String serverHost = par2Str;
        int serverPort = par3;
        String username = par4Str;
    }

    /**
    * Abstract. Reads the raw packet data from the data stream.
    */
    public void readPacketData(DataInputStream par1DataInputStream) throws IOException
    {
    int protocolVersion = par1DataInputStream.readByte();
        String serverHost = readString(par1DataInputStream, 255);
        int serverPort = par1DataInputStream.readInt();
    String username = Info.Username;
    }

    /**
    * Abstract. Writes the raw packet data to the data stream.
    */
    public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
    {
    par1DataOutputStream.writeByte(this.protocolVersion);
        writeString(this.serverHost, par1DataOutputStream);
        par1DataOutputStream.writeInt(this.serverPort);
    writeString(this.username, par1DataOutputStream);
    }

    /**
    * Passes this Packet on to the NetHandler for processing.
    */
    public void processPacket(NetHandler par1NetHandler)
    {
        par1NetHandler.handleClientProtocol(this);
    }

    /**
    * Abstract. Return the size of the packet (not counting the header).
    */
    public int getPacketSize()
    {
        return 3 + 2 * this.username.length();
    }

    /**
    * Returns the protocol version.
    */
    public int getProtocolVersion()
    {
        return this.protocolVersion;
    }

    /**
    * Returns the username.
    */
    public String getUsername()
    {
        return this.username;
    }
}

What did I do wrong in this? I'm sure that I spelled everything correctly, did I forget something?

Rohit Jain
  • 209,639
  • 45
  • 409
  • 525
Irrationality
  • 81
  • 1
  • 2
  • 9

2 Answers2

1

A couple of point about your attempt to make a constructor: -

public void Packet2ClientProtocol(int par1, String par2Str, int par3, String par4Str)
{
    int protocolVersion = par1;
    String serverHost = par2Str;
    int serverPort = par3;
    String username = par4Str;
}
  1. A constructor does not have any return type (Remove that void from there).

  2. You have not assigned the parameter values to the instance variables. Rather you have created some local variables, which you of course can't access outside that constructor.

So, using this.protocolVersion will give you error, as you haven't declared any instance variable with that name.

You should declare your variables as fields in your class.

Rohit Jain
  • 209,639
  • 45
  • 409
  • 525
1

All your variables:

int protocolVersion = par1;
    String serverHost = par2Str;
    int serverPort = par3;
String username = par4Str;

are local variables of constructor. Make them fields.

Andremoniy
  • 34,031
  • 20
  • 135
  • 241