TBroski

CAPABILITY PROBLEM

Jun 2nd, 2020
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 16.47 KB | None | 0 0
  1. //IPlayerHandler
  2. public interface IPlayerHandler {
  3.    
  4.     void setChakra(float amount);
  5.     void addChakra(float amount);
  6.     float returnChakra();
  7.    
  8.    
  9.     void setmaxChakra(float amount);
  10.     void addmaxChakra(float amount);
  11.     float returnmaxChakra();
  12.  
  13.  
  14.     void setregenChakra(float amount);
  15.     void addregenChakra(float amount);
  16.     float returnregenChakra();
  17.    
  18.    
  19.     void setjoinWorld(boolean joined);
  20.     boolean joinWorld();
  21.  
  22.  
  23.     void setcolorChakra(int amount);
  24.     int returncolorChakra();
  25.  
  26.     void setplayerEyeSlot(int amount);
  27.     int returnplayerEyeSlot();
  28.  
  29.     void setTaijutsu(int amount);
  30.     void addTaijutsu(int amount);
  31.     int returnTaijutsu();
  32.  
  33.     void setBeNMPoints(int amount);
  34.     void addBeNMPoints(int amount);
  35.     int returnBeNMPoints();
  36.  
  37.     void setChakraControl(float amount);
  38.     void addChakraControl(float amount);
  39.     float returnChakraControl();
  40.  
  41.     void setPlayerEntityAffiliation(String entityAffiliation);
  42.     String returnPlayerEntityAffiliation();
  43.  
  44.  
  45.     void setKeybind1(String k1name);
  46.     void setKeybind2(String k2name);
  47.     void setKeybind3(String k3name);
  48.     void setKeybind4(String k4name);
  49.     void setKeybind5(String k5name);
  50.     void setKeybind6(String k6name);
  51.     void setKeybind7(String k7name);
  52.     void setKeybind8(String k8name);
  53.     void setKeybind9(String k9name);
  54.  
  55.     String returnKeybind1();
  56.     String returnKeybind2();
  57.     String returnKeybind3();
  58.     String returnKeybind4();
  59.     String returnKeybind5();
  60.     String returnKeybind6();
  61.     String returnKeybind7();
  62.     String returnKeybind8();
  63.     String returnKeybind9();
  64.  
  65.     void setCloneJutsuBoolean(boolean has);
  66.     void setBodyReplacementBoolean(boolean has);
  67.     void setInvisibilityBoolean(boolean has);
  68.     void setSummoningBoolean(boolean has);
  69.     void setFireballJutsuBoolean(boolean has);
  70.     void setGalePalmJutsuBoolean(boolean has);
  71.     void setFlyingStonesJutsuBoolean(boolean has);
  72.     void setWaterShurikenJutsuBoolean(boolean has);
  73.     void setLightningBallJutsuBoolean(boolean has);
  74.     boolean hasCloneJutsuBoolean();
  75.     boolean hasBodyReplacementBoolean();
  76.     boolean hasInvisibilityBoolean();
  77.     boolean hasSummoningBoolean();
  78.     boolean hasFireballJutsuBoolean();
  79.     boolean hasGalePalmJutsuBoolean();
  80.     boolean hasFlyingStonesJutsuBoolean();
  81.     boolean hasWaterShurikenJutsuBoolean();
  82.     boolean hasLightningBallJutsuBoolean();
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95. //Player Capability
  96. public class PlayerCapability implements IPlayerHandler {
  97.  
  98.     private String key1;
  99.     private String key2;
  100.     private String key3;
  101.     private String key4;
  102.     private String key5;
  103.     private String key6;
  104.     private String key7;
  105.     private String key8;
  106.     private String key9;
  107.  
  108.     private float chakra;
  109.     private float maxchakra;
  110.     private float regenchakra;
  111.     private float chakraControl;
  112.     private int chakracolor;
  113.     private int playereyeslot;
  114.     private int taijutsu;
  115.     private int benmpoints;
  116.     private String entityAffiliation;
  117.     private boolean cloneJutsu;
  118.     private boolean replacementJutsu;
  119.     private boolean summoningJutsu;
  120.     private boolean invisibilityJutsu;
  121.     private boolean fireballJutsu;
  122.     private boolean waterShurikenJutsu;
  123.     private boolean galePalmJutsu;
  124.     private boolean flyingStonesJutsu;
  125.     private boolean lightningBallJutsu;
  126.     private boolean joined;
  127.    
  128.     @Override
  129.     public float returnChakra() {
  130.         return this.chakra;
  131.     }
  132.     @Override
  133.     public void setChakra(float amount) {
  134.         this.chakra = amount;
  135.     }
  136.     @Override
  137.     public void addChakra(float amount) {
  138.         this.chakra += amount;
  139.        
  140.         if (this.chakra > this.maxchakra)
  141.             this.chakra = this.maxchakra;
  142.  
  143.         if (this.chakra < 0)
  144.             this.chakra = 0;
  145.     }
  146.    
  147.  
  148.     @Override
  149.     public boolean joinWorld() {
  150.         return this.joined;
  151.     }
  152.     @Override
  153.     public void setjoinWorld(boolean joined) {
  154.         this.joined = joined;
  155.     }
  156.    
  157.  
  158.     @Override
  159.     public void setmaxChakra(float amount) {
  160.         this.maxchakra = amount;
  161.     }
  162.     @Override
  163.     public void addmaxChakra(float amount) {
  164.         this.maxchakra += amount;
  165.     }
  166.     @Override
  167.     public float returnmaxChakra() {
  168.         return this.maxchakra;
  169.     }
  170.    
  171.  
  172.     @Override
  173.     public void setregenChakra(float amount) {
  174.         this.regenchakra = amount;
  175.     }
  176.     @Override
  177.     public void addregenChakra(float amount) {
  178.         this.regenchakra += amount;
  179.     }
  180.     @Override
  181.     public float returnregenChakra() {
  182.         return this.regenchakra;
  183.     }
  184.  
  185.  
  186.     @Override
  187.     public void setcolorChakra(int amount) {
  188.         this.chakracolor = amount;
  189.     }
  190.     @Override
  191.     public int returncolorChakra() {
  192.         return this.chakracolor;
  193.     }
  194.  
  195.  
  196.     @Override
  197.     public void setplayerEyeSlot(int amount)
  198.     {
  199.         this.playereyeslot = amount;
  200.     }
  201.     @Override
  202.     public int returnplayerEyeSlot()
  203.     {
  204.         return this.playereyeslot;
  205.     }
  206.  
  207.  
  208.     @Override
  209.     public void setTaijutsu(int amount)
  210.     {
  211.         this.taijutsu = amount;
  212.     }
  213.     @Override
  214.     public void addTaijutsu(int amount)
  215.     {
  216.         this.taijutsu += amount;
  217.  
  218.         if (this.taijutsu > 20)
  219.         {
  220.             this.taijutsu = 20;
  221.         }
  222.  
  223.         if (this.taijutsu < 0)
  224.         {
  225.             this.taijutsu = 0;
  226.         }
  227.     }
  228.     @Override
  229.     public int returnTaijutsu()
  230.     {
  231.         return this.taijutsu;
  232.     }
  233.  
  234.  
  235.     @Override
  236.     public void setBeNMPoints(int amount)
  237.     {
  238.         this.benmpoints = amount;
  239.     }
  240.     @Override
  241.     public void addBeNMPoints(int amount)
  242.     {
  243.         this.benmpoints += amount;
  244.     }
  245.     @Override
  246.     public int returnBeNMPoints()
  247.     {
  248.         return this.benmpoints;
  249.     }
  250.  
  251.  
  252.     @Override
  253.     public void setChakraControl(float amount)
  254.     {
  255.         this.chakraControl = amount;
  256.     }
  257.     @Override
  258.     public void addChakraControl(float amount)
  259.     {
  260.         this.chakraControl += amount;
  261.     }
  262.     @Override
  263.     public float returnChakraControl()
  264.     {
  265.         return this.chakraControl;
  266.     }
  267.  
  268.  
  269.     @Override
  270.     public void setPlayerEntityAffiliation(String entityAffiliation)
  271.     {
  272.         this.entityAffiliation = entityAffiliation;
  273.     }
  274.     @Override
  275.     public String returnPlayerEntityAffiliation()
  276.     {
  277.         return this.entityAffiliation;
  278.     }
  279.  
  280.  
  281.     @Override
  282.     public void setKeybind1(String name)
  283.     {
  284.         this.key1 = name;
  285.     }
  286.     @Override
  287.     public String returnKeybind1()
  288.     {
  289.         return this.key1;
  290.     }
  291.     @Override
  292.     public void setKeybind2(String name)
  293.     {
  294.         this.key2 = name;
  295.     }
  296.     @Override
  297.     public String returnKeybind2()
  298.     {
  299.         return this.key2;
  300.     }
  301.     @Override
  302.     public void setKeybind3(String name)
  303.     {
  304.         this.key3 = name;
  305.     }
  306.     @Override
  307.     public String returnKeybind3()
  308.     {
  309.         return this.key3;
  310.     }
  311.     @Override
  312.     public void setKeybind4(String name)
  313.     {
  314.         this.key4 = name;
  315.     }
  316.     @Override
  317.     public String returnKeybind4()
  318.     {
  319.         return this.key4;
  320.     }
  321.     @Override
  322.     public void setKeybind5(String name)
  323.     {
  324.         this.key5 = name;
  325.     }
  326.     @Override
  327.     public String returnKeybind5()
  328.     {
  329.         return this.key5;
  330.     }
  331.     @Override
  332.     public void setKeybind6(String name)
  333.     {
  334.         this.key6 = name;
  335.     }
  336.     @Override
  337.     public String returnKeybind6()
  338.     {
  339.         return this.key6;
  340.     }
  341.     @Override
  342.     public void setKeybind7(String name)
  343.     {
  344.         this.key7 = name;
  345.     }
  346.     @Override
  347.     public String returnKeybind7()
  348.     {
  349.         return this.key7;
  350.     }
  351.     @Override
  352.     public void setKeybind8(String name)
  353.     {
  354.         this.key8 = name;
  355.     }
  356.     @Override
  357.     public String returnKeybind8()
  358.     {
  359.         return this.key8;
  360.     }
  361.     @Override
  362.     public void setKeybind9(String name)
  363.     {
  364.         this.key9 = name;
  365.     }
  366.     @Override
  367.     public String returnKeybind9()
  368.     {
  369.         return this.key9;
  370.     }
  371.  
  372.  
  373.     @Override
  374.     public void setCloneJutsuBoolean(boolean has)
  375.     {
  376.         this.cloneJutsu = has;
  377.     }
  378.     @Override
  379.     public boolean hasCloneJutsuBoolean()
  380.     {
  381.         return this.cloneJutsu;
  382.     }
  383.     @Override
  384.     public void setBodyReplacementBoolean(boolean has)
  385.     {
  386.         this.replacementJutsu = has;
  387.     }
  388.     @Override
  389.     public boolean hasBodyReplacementBoolean()
  390.     {
  391.         return this.replacementJutsu;
  392.     }
  393.     @Override
  394.     public void setInvisibilityBoolean(boolean has)
  395.     {
  396.         this.invisibilityJutsu = has;
  397.     }
  398.     @Override
  399.     public boolean hasInvisibilityBoolean()
  400.     {
  401.         return this.invisibilityJutsu;
  402.     }
  403.     @Override
  404.     public void setSummoningBoolean(boolean has)
  405.     {
  406.         this.summoningJutsu = has;
  407.     }
  408.     @Override
  409.     public boolean hasSummoningBoolean()
  410.     {
  411.         return this.summoningJutsu;
  412.     }
  413.  
  414.     @Override
  415.     public void setFireballJutsuBoolean(boolean has)
  416.     {
  417.         this.fireballJutsu = has;
  418.     }
  419.     @Override
  420.     public boolean hasFireballJutsuBoolean()
  421.     {
  422.         return this.fireballJutsu;
  423.     }
  424.  
  425.     @Override
  426.     public void setWaterShurikenJutsuBoolean(boolean has)
  427.     {
  428.         this.waterShurikenJutsu = has;
  429.     }
  430.     @Override
  431.     public boolean hasWaterShurikenJutsuBoolean()
  432.     {
  433.         return this.waterShurikenJutsu;
  434.     }
  435.  
  436.     @Override
  437.     public void setFlyingStonesJutsuBoolean(boolean has)
  438.     {
  439.         this.flyingStonesJutsu = has;
  440.     }
  441.     @Override
  442.     public boolean hasFlyingStonesJutsuBoolean()
  443.     {
  444.         return this.flyingStonesJutsu;
  445.     }
  446.  
  447.     @Override
  448.     public void setGalePalmJutsuBoolean(boolean has)
  449.     {
  450.         this.galePalmJutsu = has;
  451.     }
  452.     @Override
  453.     public boolean hasGalePalmJutsuBoolean()
  454.     {
  455.         return this.galePalmJutsu;
  456.     }
  457.  
  458.     @Override
  459.     public void setLightningBallJutsuBoolean(boolean has)
  460.     {
  461.         this.lightningBallJutsu = has;
  462.     }
  463.     @Override
  464.     public boolean hasLightningBallJutsuBoolean()
  465.     {
  466.         return this.lightningBallJutsu;
  467.     }
  468.  
  469.     public static class Storage implements Capability.IStorage<IPlayerHandler>
  470.     {
  471.         @Nullable
  472.         @Override
  473.         public INBT writeNBT(Capability<IPlayerHandler> capability, IPlayerHandler instance, Direction side)
  474.         {
  475.             CompoundNBT tag = new CompoundNBT();
  476.  
  477.             tag.putBoolean("joined", instance.joinWorld());
  478.             tag.putFloat("chakra", instance.returnChakra());
  479.             tag.putFloat("maxchakra", instance.returnmaxChakra());
  480.             tag.putFloat("regenchakra", instance.returnregenChakra());
  481.             tag.putFloat("chakracontrol", instance.returncolorChakra());
  482.             tag.putInt("colorchakra", instance.returncolorChakra());
  483.             tag.putInt("taijutsu", instance.returnTaijutsu());
  484.             tag.putInt("benmpoints", instance.returnBeNMPoints());
  485.             tag.putInt("playereyeslot", instance.returnplayerEyeSlot());
  486.             tag.putString("playeraffiliation", instance.returnPlayerEntityAffiliation());
  487.  
  488.             //Keybinds for Jutsu
  489.             tag.putString("key1", instance.returnKeybind1());
  490.             tag.putString("key2", instance.returnKeybind2());
  491.             tag.putString("key3", instance.returnKeybind3());
  492.             tag.putString("key4", instance.returnKeybind4());
  493.             tag.putString("key5", instance.returnKeybind5());
  494.             tag.putString("key6", instance.returnKeybind6());
  495.             tag.putString("key7", instance.returnKeybind7());
  496.             tag.putString("key8", instance.returnKeybind8());
  497.             tag.putString("key9", instance.returnKeybind9());
  498.  
  499.             //Jutsu
  500.             tag.putBoolean("clone", instance.hasCloneJutsuBoolean());
  501.             tag.putBoolean("invisibility", instance.hasInvisibilityBoolean());
  502.             tag.putBoolean("summoning", instance.hasSummoningBoolean());
  503.             tag.putBoolean("replacement", instance.hasBodyReplacementBoolean());
  504.             //Fire
  505.             tag.putBoolean("fireball", instance.hasFireballJutsuBoolean());
  506.             //Water
  507.             tag.putBoolean("watershuriken", instance.hasWaterShurikenJutsuBoolean());
  508.             //Wind
  509.             tag.putBoolean("galepalm", instance.hasGalePalmJutsuBoolean());
  510.             //Earth
  511.             tag.putBoolean("flyingstones", instance.hasFlyingStonesJutsuBoolean());
  512.             //Lightning
  513.             tag.putBoolean("lightningball", instance.hasLightningBallJutsuBoolean());
  514.             return tag;
  515.         }
  516.  
  517.         @Override
  518.         public void readNBT(Capability<IPlayerHandler> capability, IPlayerHandler instance, Direction side, INBT nbt)
  519.         {
  520.             INBT tag = new CompoundNBT();
  521.             instance.setjoinWorld(((CompoundNBT) tag).getBoolean("joined"));
  522.             instance.setChakra(((CompoundNBT) tag).getFloat("chakra"));
  523.             instance.setmaxChakra(((CompoundNBT) tag).getFloat("maxchakra"));
  524.             instance.setregenChakra(((CompoundNBT) tag).getFloat("regenchakra"));
  525.             instance.setcolorChakra(((CompoundNBT) tag).getInt("colorchakra"));
  526.             instance.setTaijutsu(((CompoundNBT) tag).getInt("taijutsu"));
  527.             instance.setplayerEyeSlot(((CompoundNBT) tag).getInt("playereyeslot"));
  528.             instance.setBeNMPoints(((CompoundNBT) tag).getInt("benmpoints"));
  529.             instance.setPlayerEntityAffiliation(((CompoundNBT) tag).getString("playeraffiliation"));
  530.  
  531.             //Keybinds for Jutsu
  532.             instance.setKeybind1(((CompoundNBT) tag).getString("key1"));
  533.             instance.setKeybind2(((CompoundNBT) tag).getString("key2"));
  534.             instance.setKeybind3(((CompoundNBT) tag).getString("key3"));
  535.             instance.setKeybind4(((CompoundNBT) tag).getString("key4"));
  536.             instance.setKeybind5(((CompoundNBT) tag).getString("key5"));
  537.             instance.setKeybind6(((CompoundNBT) tag).getString("key6"));
  538.             instance.setKeybind7(((CompoundNBT) tag).getString("key7"));
  539.             instance.setKeybind8(((CompoundNBT) tag).getString("key8"));
  540.             instance.setKeybind9(((CompoundNBT) tag).getString("key9"));
  541.  
  542.             //Jutsu
  543.             instance.setCloneJutsuBoolean(((CompoundNBT) tag).getBoolean("clone"));
  544.             instance.setSummoningBoolean(((CompoundNBT) tag).getBoolean("summoning"));
  545.             instance.setInvisibilityBoolean(((CompoundNBT) tag).getBoolean("invisibility"));
  546.             instance.setBodyReplacementBoolean(((CompoundNBT) tag).getBoolean("replacement"));
  547.             //Fire
  548.             instance.setFireballJutsuBoolean(((CompoundNBT) tag).getBoolean("fireball"));
  549.             //Water
  550.             instance.setWaterShurikenJutsuBoolean(((CompoundNBT) tag).getBoolean("watershuriken"));
  551.             //Lightning
  552.             instance.setLightningBallJutsuBoolean(((CompoundNBT) tag).getBoolean("lightningball"));
  553.             //Earth
  554.             instance.setFlyingStonesJutsuBoolean(((CompoundNBT) tag).getBoolean("flyingstones"));
  555.             //Wind
  556.             instance.setGalePalmJutsuBoolean(((CompoundNBT) tag).getBoolean("galepalm"));
  557.         }
  558.     }
  559. }
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570. //PlayerProvider
  571. public class PlayerProvider implements ICapabilitySerializable<INBT> {
  572.     @CapabilityInject(IPlayerHandler.class)
  573.     public static final Capability<IPlayerHandler> CAPABILITY_PLAYER = null;
  574.  
  575.     private LazyOptional<IPlayerHandler> instance = LazyOptional.of(CAPABILITY_PLAYER::getDefaultInstance); //getDefaultInstance
  576.  
  577.     @Override
  578.     public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
  579.         return cap == CAPABILITY_PLAYER ? instance.cast() : LazyOptional.empty();
  580.     }
  581.  
  582.  
  583.     @Override
  584.     public void deserializeNBT(INBT nbt) {
  585.         System.out.println("Called");
  586.         CAPABILITY_PLAYER.getStorage().readNBT(CAPABILITY_PLAYER, instance.orElseThrow(() -> new IllegalArgumentException("LazyOptional is empty")),null, nbt);
  587.  
  588.     }
  589.  
  590.     @Override
  591.     public INBT serializeNBT() {
  592.         System.out.println("Called");
  593.         return CAPABILITY_PLAYER.getStorage().writeNBT(CAPABILITY_PLAYER, instance.orElseThrow(() -> new IllegalArgumentException("LazyOptional is empty")),null);
  594.     }
  595. }
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604. //CapabilityHandler
  605. public class CapabilityHandler {
  606.  
  607.     public static final ResourceLocation CAPABILITY_PLAYER = new ResourceLocation(Main.MODID, "player");
  608.  
  609.     @Mod.EventBusSubscriber
  610.     public static class capabilityAttacher {
  611.         @SubscribeEvent
  612.         public static void attachCapability(AttachCapabilitiesEvent<Entity> event) {
  613.             if (!(event.getObject() instanceof PlayerEntity)) return;
  614.  
  615.             event.addCapability(CAPABILITY_PLAYER, new PlayerProvider());
  616.         }
  617.     }
  618. }
Add Comment
Please, Sign In to add comment