Jump to content

Novârch

Members
  • Posts

    422
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Novârch

  1. I'm trying to port a capability from 1.12 to 1.15 and keep getting this error, but I don't understand where I'm registering it twice.

    Here are the capability classes:

    Spoiler
    
    public interface IStand
    {
        void setStandID(final int p0);
    
        void setStandAct(final int p0);
    
        void setStandOn(final boolean p0);
    
        void setJojoPower(final int p0);
    
        void setPowerSpawned(final boolean p0);
    
        void setPlayerStandName(final String p0);
    
        int getStandID();
    
        int getStandAct();
    
        boolean getStandOn();
    
        int getJojoPower();
    
        boolean getPowerSpawned();
    
        String getPlayerStandName();
    
        void setStandRemoved();
    
        void cloneSaveFunction(final IStand p0);
    }

     

    Spoiler
    
    public class IStandStorage implements IStorage<IStand>
    {
    	public INBT writeNBT(Capability<IStand> capability, IStand instance, Direction side)
    	{
            CompoundNBT props = new CompoundNBT();
            props.putInt("standID", instance.getStandID());
            props.putInt("StandAct", instance.getStandAct());
            props.putBoolean("StandOn", instance.getStandOn());
            props.putBoolean("PowerOn", instance.getPowerSpawned());
            props.putInt("PowerID", instance.getJojoPower());
            return (INBT)props;
          }
          
          public void readNBT(Capability<IStand> capability, IStand instance, Direction side, INBT nbt)
          {
            CompoundNBT propertyData = (CompoundNBT)nbt;
            instance.setStandID(propertyData.getInt("standID"));
            instance.setStandAct(propertyData.getInt("StandAct"));
            instance.setStandOn(propertyData.getBoolean("StandOn"));
            instance.setPowerSpawned(propertyData.getBoolean("PowerOn"));
            instance.setJojoPower(propertyData.getInt("PowerID"));
          }
    Spoiler
    
    
    public class IStandCapability implements IStand
    {
    	private int playerStandID = 0;
    	  
    	  private int playerStandAct = 0;
    	  
    	  private boolean playerStandOn = false;
    	  
    	  private int playerStandExp = 0;
    	  
    	  private boolean playerPowerSpawned = false;
    	  
    	  private int playerJojoPower = 0;
    	  
    	  private String playerStandName = "";
    	  
    	  public void addStandExp(int value) {
    	    this.playerStandExp += value;
    	  }
    	  
    	  public void setStandID(int value) {
    	    this.playerStandID = value;
    	  }
    	  
    	  public void setStandExp(int value) {
    	    this.playerStandExp = value;
    	  }
    	  
    	  public void setStandAct(int value) {
    	    this.playerStandAct = value;
    	  }
    	  
    	  public void setStandOn(boolean value) {
    	    this.playerStandOn = value;
    	  }
    	  
    	  public void setJojoPower(int value) {
    	    this.playerJojoPower = value;
    	  }
    	  
    	  public void setPowerSpawned(boolean value) {
    	    this.playerPowerSpawned = value;
    	  }
    	  
    	  public void setPlayerStandName(String value) {
    	    this.playerStandName = value;
    	  }
    	  
    	  public int getStandID() {
    	    return this.playerStandID;
    	  }
    	  
    	  public int getStandExp() {
    	    return this.playerStandExp;
    	  }
    	  
    	  public int getStandAct() {
    	    return this.playerStandAct;
    	  }
    	  
    	  public boolean getStandOn() {
    	    return this.playerStandOn;
    	  }
    	  
    	  public int getJojoPower() {
    	    return this.playerJojoPower;
    	  }
    	  
    	  public boolean getPowerSpawned() {
    	    return this.playerPowerSpawned;
    	  }
    	  
    	  public String getPlayerStandName() {
    	    return this.playerStandName;
    	  }
    	  
    	  public void cloneSaveFunction(IStand props) {
    	    setStandID(props.getStandID());
    	    setStandAct(props.getStandAct());
    	    setStandOn(props.getStandOn());
    	    setJojoPower(props.getJojoPower());
    	    setPowerSpawned(props.getPowerSpawned());
    	    setPlayerStandName(props.getPlayerStandName());
    	  }
    	  
    	  public void setStandRemoved() {
    	    setStandOn(false);
    	    setStandAct(0);
    	    setStandExp(0);
    	    setStandID(0);
    	    setPlayerStandName("");
    	  }
    }
    Spoiler

    Registering the capability:

    
    
    
    public static void registerCapabilities()
        {
        	CapabilityManager.INSTANCE.register(IStand.class, new IStandStorage(), IStandCapability::new);
            MinecraftForge.EVENT_BUS.register(new CapabilityHandler());
        }

     

     

     

     

  2. I get a NullPointerException on my method onItemRightClick. Apparently 'props' is null, but I don't know why.

     

    /*    public ActionResult<ItemStack> onItemRightClick(final World worldIn, final EntityPlayer playerIn, final EnumHand handIn) {
            final ItemStack stack = playerIn.getHeldItem(handIn);
            final IJojoBAdvPlayerCap props = (IJojoBAdvPlayerCap)playerIn.getCapability((Capability)JojoBAdvProvider.JOJO_CAP, (EnumFacing)EnumFacing.NORTH);
            if (stack == null) {            
                return (ActionResult<ItemStack>)new ActionResult(EnumActionResult.FAIL, (Object)stack);
            }
            if (props.getStandID() == 0) {
                playerIn.setActiveHand(handIn);
                return (ActionResult<ItemStack>)new ActionResult(EnumActionResult.SUCCESS, (Object)stack);
            }
            playerIn.sendMessage((ITextComponent)new TextComponentTranslation("msg.jojomod.standalready.txt", new Object[0]));
            return (ActionResult<ItemStack>)new ActionResult(EnumActionResult.PASS, (Object)stack);
        }

    */    

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.