Перевод мода с 1.5.2 на 1.7.10. Проблема с class.

Версия Minecraft
1.7.10

jopi

Попрошайка
1,421
30
260
Перевод мода с 1.5.2 на 1.7.10. Проблема с class.
Код 1.5.2

Java:
package Tchat;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.network.packet.Packet3Chat;
import net.minecraft.src.ModLoader;
import net.minecraft.world.World;
import net.minecraftforge.event.ForgeSubscribe;

public class classpalkaPrivate extends Item {
    private boolean flag = true;

    public classpalkaPrivate(int par1) {
        super(par1);
        super.maxStackSize = 1;
        this.setMaxDamage(100000);
        super.bFull3D = true;
    }

    @SideOnly(Side.CLIENT)
    public void registerIcons(IconRegister par1IconRegister) {
        super.itemIcon = par1IconRegister.registerIcon("palka:palka");
    }

    public int getMaxItemUseDuration(ItemStack par1ItemStack) {
        return 100000;
    }

    @ForgeSubscribe
    public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
        if (par2World.isRemote) {
            Minecraft mc = ModLoader.getMinecraftInstance();
            if (this.flag) {
                this.flag = false;
                mc.thePlayer.sendQueue.addToSendQueue(new Packet3Chat("/rg info -s"));
            } else {
                this.flag = true;
                mc.thePlayer.sendQueue.addToSendQueue(new Packet3Chat("//sel"));
            }
        }

        return par1ItemStack;
    }
}
И код того что мне немного получилось изменить на 1.7.10

Java:
package fxg.mapcreatortool;

import java.util.List;

import cpw.mods.fml.common.ModClassLoader;
import net.minecraft.client.Minecraft;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraft.network.Packet;

public class rgtester extends Item {
    private boolean fl = true;
    public rgtester ()
    {
        super();
        this.setCreativeTab(CreativeTabs.tabMisc);
        this.setTextureName("mapcreatortool:new");
    }
    public void addInformation(ItemStack stack, EntityPlayer playerIn, List lines, boolean advanced)
    {
        lines.add(EnumChatFormatting.AQUA + "aquamoon is newer...");
    }
    public ItemStack onItemRightClick(ItemStack stack1, World world, EntityPlayer p3ep) {
        if (world.isRemote) {
            Minecraft mc = ModLoader.getMinecraftInstance();
            if (this.fl) {
                this.fl = false;
                mc.thePlayer.sendQueue.addToSendQueue(new par3p("/rg info"));
            } else {
                this.fl = true;
                mc.thePlayer.sendQueue.addToSendQueue(new Packet("//sel"));
            }
        }
    }
}
Eclipse жалуется на ModLoader.getMinecraftInstance(); и на new par3p.
par3p надо заменить на код чата по сути но где его взять? Packet если поставить и сделать импорт всёравно будет жаловаться...
И что делать с ModLoader.get... если в net.minecraft.src его уже нету?
 

Icosider

Kotliner
Администратор
3,603
99
664
Переписал под 1.7.10, на работоспособность не проверял.
Java:
public class classpalkaPrivate extends Item
{
    private boolean flag = true;

    public classpalkaPrivate(String name)
    {
        this.setUnlocalizedName(name);
        this.maxStackSize = 1;
        this.setMaxDamage(100000);
        this.bFull3D = true;
    }

    @SideOnly(Side.CLIENT)
    public void registerIcons(IIconRegister par1IconRegister)
    {
        super.itemIcon = par1IconRegister.registerIcon("palka:palka");
    }

    public int getMaxItemUseDuration(ItemStack par1ItemStack)
    {
        return 100000;
    }

    public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
    {
        if (par2World.isRemote)
        {
            Minecraft mc = Minecraft.getMinecraft();

            if (this.flag)
            {
                this.flag = false;
                mc.thePlayer.sendQueue.addToSendQueue(new C01PacketChatMessage("/rg info -s"));
            } else {
                this.flag = true;
                mc.thePlayer.sendQueue.addToSendQueue(new C01PacketChatMessage("//sel"));
            }
        }

        return par1ItemStack;
    }
}
 

jopi

Попрошайка
1,421
30
260
Переписал под 1.7.10, на работоспособность не проверял.
Java:
public class classpalkaPrivate extends Item
{
    private boolean flag = true;

    public classpalkaPrivate(String name)
    {
        this.setUnlocalizedName(name);
        this.maxStackSize = 1;
        this.setMaxDamage(100000);
        this.bFull3D = true;
    }

    @SideOnly(Side.CLIENT)
    public void registerIcons(IIconRegister par1IconRegister)
    {
        super.itemIcon = par1IconRegister.registerIcon("palka:palka");
    }

    public int getMaxItemUseDuration(ItemStack par1ItemStack)
    {
        return 100000;
    }

    public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
    {
        if (par2World.isRemote)
        {
            Minecraft mc = Minecraft.getMinecraft();

            if (this.flag)
            {
                this.flag = false;
                mc.thePlayer.sendQueue.addToSendQueue(new C01PacketChatMessage("/rg info -s"));
            } else {
                this.flag = true;
                mc.thePlayer.sendQueue.addToSendQueue(new C01PacketChatMessage("//sel"));
            }
        }

        return par1ItemStack;
    }
}
Попробую проверить, но я сам уже сделал по другому)
 

jopi

Попрошайка
1,421
30
260
Дальше сам покопался на форумах и нашёл что нужно изменить. уже проверил работает.
Было 1.7.10
Java:
package fxg.mapcreatortool;

import java.util.List;

import cpw.mods.fml.common.ModClassLoader;
import net.minecraft.client.Minecraft;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraft.network.Packet;

public class rgtester extends Item {
    private boolean fl = true;
    public rgtester ()
    {
        super();
        this.setCreativeTab(CreativeTabs.tabMisc);
        this.setTextureName("mapcreatortool:new");
    }
    public void addInformation(ItemStack stack, EntityPlayer playerIn, List lines, boolean advanced)
    {
        lines.add(EnumChatFormatting.AQUA + "aquamoon is newer...");
    }
    public ItemStack onItemRightClick(ItemStack stack1, World world, EntityPlayer p3ep) {
        if (world.isRemote) {
            Minecraft mc = ModLoader.getMinecraftInstance();
            if (this.fl) {
                this.fl = false;
                mc.thePlayer.sendQueue.addToSendQueue(new par3p("/rg info"));
            } else {
                this.fl = true;
                mc.thePlayer.sendQueue.addToSendQueue(new Packet("//sel"));
            }
        }
    }
}
Стало 1.7.10
Java:
package fxg.mapcreatortool;

import java.util.List;

import net.minecraft.client.Minecraft;
import net.minecraft.network.Packet;
import net.minecraft.server.MinecraftServer;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.*;
import net.minecraft.world.World;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.command.ICommandSender;

public class rgtester extends Item {
    private boolean fl = true;
    public rgtester ()
    {
        super();
        this.setCreativeTab(CreativeTabs.tabMisc);
        this.setTextureName("mapcreatortool:new");
    }
    public void addInformation(ItemStack stack, EntityPlayer playerIn, List lines, boolean advanced)
    {
            lines.add(EnumChatFormatting.AQUA + "aquamoon is newer...");
    }
    public ItemStack onItemRightClick(ItemStack stack1, World world, EntityPlayer Player) {
          if (world.isRemote) {
             Minecraft mc = Minecraft.getMinecraft();
             if (this.fl) {
                this.fl = false;
                mc.thePlayer.sendChatMessage("/rg info");
             } else {
                this.fl = true;
                mc.thePlayer.sendChatMessage("//sel");
             }
          }
        return stack1;
    }
}
Сначала помог Doc с ModLoader
"ModLoader.getMinecraftInstance() -> Minecraft.getMinecraft() Скорее всего. "
Потом нашёл то что нужно заменить mc.thePlayer.sendQueue.addToSendQueue на mc.thePlayer.sendChatMessage("")
 
Сверху