BaersMakeNoiseee Posted February 27, 2016 Share Posted February 27, 2016 This is the code i have so far: public ItemStack onItemRightClick(ItemStack Stack, World World, EntityPlayer p) { p.addVelocity(0, 10, 0); return Stack; I am trying to slow down when it launches the player so i can make it like the player is floating up. What would i add? I tried motionY, but that didn't slow it down. Can anyone help me with this? Quote Link to comment Share on other sites More sharing options...
coolAlias Posted February 27, 2016 Share Posted February 27, 2016 Well, 10 is a HUGE amount of upward velocity. To put it in context, a vanilla jump adds 0.15F, which is approximately one block height worth of upward momentum, so 10 should be about 66.67 blocks though I think it launches you even farther than that, iirc. Try player.motionY += 1.0F for less of a jump, but even that won't get you a levitation-like effect. If you want a slow-moving upward trek, you have to set (not add) the player's upward motion every tick to a small positive value such as 0.1F or less. You can do that either by setting a flag in your Item's enclosing ItemStack and using the Item's update tick method, or setting a flag on the player themselves and using the PlayerTickEvent. Quote http://i.imgur.com/NdrFdld.png[/img] Link to comment Share on other sites More sharing options...
BaersMakeNoiseee Posted February 27, 2016 Author Share Posted February 27, 2016 Well, 10 is a HUGE amount of upward velocity. To put it in context, a vanilla jump adds 0.15F, which is approximately one block height worth of upward momentum, so 10 should be about 66.67 blocks though I think it launches you even farther than that, iirc. Try player.motionY += 1.0F for less of a jump, but even that won't get you a levitation-like effect. If you want a slow-moving upward trek, you have to set (not add) the player's upward motion every tick to a small positive value such as 0.1F or less. You can do that either by setting a flag in your Item's enclosing ItemStack and using the Item's update tick method, or setting a flag on the player themselves and using the PlayerTickEvent. can you give me some example / pseudo code? I don't understand how i set the upward motion. Quote Link to comment Share on other sites More sharing options...
coolAlias Posted February 27, 2016 Share Posted February 27, 2016 It's pretty simple: player.motionY = 0.1F; Quote http://i.imgur.com/NdrFdld.png[/img] Link to comment Share on other sites More sharing options...
BaersMakeNoiseee Posted February 27, 2016 Author Share Posted February 27, 2016 It's pretty simple: player.motionY = 0.1F; So, I did it, the floating works, but that's whenever i have it in my inventory, I float. How would i add the right click method into here: public void onUpdate(ItemStack is, World World, Entity Entity, int par, boolean par5, EntityPlayer p) { if (p.isAirBorne) { p.motionY = 0.1F; } } EDIT: Also, if you could, could you tell me how to drop the person at a specific point? Thanks. Quote Link to comment Share on other sites More sharing options...
coolAlias Posted February 27, 2016 Share Posted February 27, 2016 I already told you: store some kind of flag in the ItemStack's NBT compound onRightClick, then only apply the motionY when that flag exists. You can remove the flag at any time, too, e.g. after 10 ticks or whatever. # onRightClick stack.getTagCompound().setInteger("float_time", 20); #onUpdate NBTTagCompound tag = stack.getTagCompound(); if (tag != null && tag.getInteger("float_time") > 0) { tag.setInteger("float_time", tag.getInteger("float_time") - 1); // decrement float time player.motionY = 0.1F; } Quote http://i.imgur.com/NdrFdld.png[/img] Link to comment Share on other sites More sharing options...
BaersMakeNoiseee Posted February 27, 2016 Author Share Posted February 27, 2016 I already told you: store some kind of flag in the ItemStack's NBT compound onRightClick, then only apply the motionY when that flag exists. You can remove the flag at any time, too, e.g. after 10 ticks or whatever. # onRightClick stack.getTagCompound().setInteger("float_time", 20); #onUpdate NBTTagCompound tag = stack.getTagCompound(); if (tag != null && tag.getInteger("float_time") > 0) { tag.setInteger("float_time", tag.getInteger("float_time") - 1); // decrement float time player.motionY = 0.1F; } crashes. crash msg: java.lang.NullPointerException: Unexpected error at com.baers.test.item.ItemBalloonChest.onItemRightClick(ItemBalloonChest.java:19) at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:164) at net.minecraft.client.multiplayer.PlayerControllerMP.sendUseItem(PlayerControllerMP.java:430) at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1557) at net.minecraft.client.Minecraft.runTick(Minecraft.java:2044) at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039) at net.minecraft.client.Minecraft.run(Minecraft.java:962) at net.minecraft.client.main.Main.main(Main.java:164) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) at GradleStart.main(Unknown Source) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at com.baers.test.item.ItemBalloonChest.onItemRightClick(ItemBalloonChest.java:19) at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:164) at net.minecraft.client.multiplayer.PlayerControllerMP.sendUseItem(PlayerControllerMP.java:430) at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1557) -- Affected level -- Details: Level name: MpServer All players: 1 total; [EntityClientPlayerMP['Player962'/206, l='MpServer', x=-34.46, y=65.62, z=179.27]] Chunk stats: MultiplayerChunkCache: 169, 169 Level seed: 0 Level generator: ID 00 - default, ver 1. Features enabled: false Level generator options: Level spawn location: World: (-48,64,172), Chunk: (at 0,4,12 in -3,10; contains blocks -48,0,160 to -33,255,175), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511) Level time: 101544 game time, 4535 day time Level dimension: 0 Level storage version: 0x00000 - Unknown? Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false) Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false Forced entities: 88 total; [EntityChicken['Chicken'/128, l='MpServer', x=-23.47, y=64.00, z=125.66], EntityBat['Bat'/129, l='MpServer', x=-21.56, y=44.10, z=170.50], EntitySkeleton['Skeleton'/130, l='MpServer', x=-27.06, y=41.00, z=172.47], EntityCreeper['Creeper'/131, l='MpServer', x=-19.97, y=43.00, z=169.66], EntityZombie['Zombie'/132, l='MpServer', x=-25.66, y=44.00, z=174.50], EntityZombie['Zombie'/133, l='MpServer', x=-18.03, y=43.00, z=171.50], EntityCreeper['Creeper'/134, l='MpServer', x=-16.13, y=43.00, z=167.84], EntityBat['Bat'/135, l='MpServer', x=-24.91, y=45.92, z=168.13], EntityItem['item.item.ItemBalloonChest'/136, l='MpServer', x=-29.13, y=62.13, z=171.31], EntitySpider['Spider'/137, l='MpServer', x=-15.22, y=44.00, z=180.19], EntitySkeleton['Skeleton'/139, l='MpServer', x=-21.50, y=15.00, z=239.50], EntityZombie['Zombie'/149, l='MpServer', x=-9.84, y=31.00, z=143.38], EntityBat['Bat'/150, l='MpServer', x=2.97, y=40.02, z=145.16], EntityCreeper['Creeper'/151, l='MpServer', x=-10.63, y=32.00, z=146.50], EntitySkeleton['Skeleton'/152, l='MpServer', x=-15.50, y=25.00, z=163.50], EntitySkeleton['Skeleton'/153, l='MpServer', x=-9.72, y=43.00, z=167.97], EntityBat['Bat'/154, l='MpServer', x=5.47, y=39.36, z=172.09], EntityBat['Bat'/155, l='MpServer', x=3.25, y=39.00, z=171.50], EntityBat['Bat'/156, l='MpServer', x=2.50, y=38.82, z=165.25], EntityCreeper['Creeper'/157, l='MpServer', x=-12.50, y=47.00, z=166.50], EntityEnderman['Enderman'/285, l='MpServer', x=4.47, y=27.00, z=180.44], EntityBat['Bat'/158, l='MpServer', x=8.03, y=39.79, z=173.34], EntitySkeleton['Skeleton'/159, l='MpServer', x=-13.50, y=27.00, z=189.50], EntitySkeleton['Skeleton'/160, l='MpServer', x=-12.50, y=27.00, z=192.50], EntityEnderman['Enderman'/162, l='MpServer', x=5.56, y=22.00, z=122.50], EntityEnderman['Enderman'/163, l='MpServer', x=6.47, y=22.00, z=122.50], EntityBat['Bat'/164, l='MpServer', x=6.63, y=41.70, z=152.50], EntityCreeper['Creeper'/165, l='MpServer', x=5.91, y=27.00, z=161.69], EntitySkeleton['Skeleton'/166, l='MpServer', x=15.50, y=26.00, z=168.50], EntityBat['Bat'/167, l='MpServer', x=5.84, y=42.73, z=172.50], EntityBat['Bat'/168, l='MpServer', x=10.28, y=29.11, z=187.13], EntityZombie['Zombie'/170, l='MpServer', x=17.50, y=24.00, z=169.50], EntityCreeper['Creeper'/171, l='MpServer', x=18.41, y=25.00, z=172.00], EntityCreeper['Creeper'/172, l='MpServer', x=31.18, y=14.25, z=211.49], EntityCreeper['Creeper'/301, l='MpServer', x=14.50, y=26.00, z=171.50], EntityZombie['Zombie'/173, l='MpServer', x=29.34, y=25.00, z=225.41], EntityZombie['Zombie'/174, l='MpServer', x=28.50, y=29.00, z=244.50], EntitySkeleton['Skeleton'/175, l='MpServer', x=26.78, y=29.00, z=244.69], EntitySkeleton['Skeleton'/303, l='MpServer', x=-109.50, y=26.00, z=245.50], EntityCreeper['Creeper'/176, l='MpServer', x=43.03, y=21.00, z=220.47], EntitySkeleton['Skeleton'/177, l='MpServer', x=30.50, y=19.02, z=220.69], EntityCreeper['Creeper'/178, l='MpServer', x=31.22, y=17.00, z=219.08], EntityBat['Bat'/179, l='MpServer', x=36.38, y=28.10, z=225.25], EntityCreeper['Creeper'/62, l='MpServer', x=-98.41, y=21.00, z=110.97], EntityZombie['Zombie'/65, l='MpServer', x=-88.50, y=25.00, z=239.50], EntityCreeper['Creeper'/66, l='MpServer', x=-80.50, y=41.00, z=236.50], EntitySkeleton['Skeleton'/67, l='MpServer', x=-83.88, y=12.00, z=240.50], EntityCreeper['Creeper'/68, l='MpServer', x=-81.41, y=29.00, z=258.50], EntityCreeper['Creeper'/69, l='MpServer', x=-86.69, y=28.00, z=252.78], EntityBat['Bat'/70, l='MpServer', x=-85.41, y=23.32, z=250.97], EntityCreeper['Creeper'/77, l='MpServer', x=-66.50, y=28.00, z=122.50], EntitySheep['Sheep'/78, l='MpServer', x=-77.91, y=70.00, z=123.06], EntitySheep['Sheep'/79, l='MpServer', x=-69.56, y=70.00, z=127.97], EntityCreeper['Creeper'/80, l='MpServer', x=-79.06, y=21.00, z=243.63], EntityCreeper['Creeper'/81, l='MpServer', x=-77.13, y=23.00, z=240.13], EntitySpider['Spider'/82, l='MpServer', x=-86.13, y=21.00, z=239.50], EntityZombie['Zombie'/83, l='MpServer', x=-67.06, y=36.00, z=253.50], EntityCreeper['Creeper'/339, l='MpServer', x=3.50, y=25.00, z=171.50], EntityZombie['Zombie'/84, l='MpServer', x=-86.69, y=28.00, z=253.65], EntityClientPlayerMP['Player962'/206, l='MpServer', x=-34.46, y=65.62, z=179.27], EntitySpider['Spider'/224, l='MpServer', x=-49.50, y=32.00, z=253.50], EntitySkeleton['Skeleton'/226, l='MpServer', x=-49.50, y=32.00, z=249.50], EntityPig['Pig'/98, l='MpServer', x=-59.69, y=69.00, z=100.16], EntitySheep['Sheep'/99, l='MpServer', x=-51.09, y=65.00, z=111.47], EntityCreeper['Creeper'/100, l='MpServer', x=-63.50, y=21.00, z=246.50], EntityCreeper['Creeper'/101, l='MpServer', x=-60.50, y=21.00, z=248.50], EntityCreeper['Creeper'/102, l='MpServer', x=-61.50, y=21.00, z=250.50], EntityBat['Bat'/103, l='MpServer', x=-51.09, y=16.79, z=251.56], EntityZombie['Zombie'/104, l='MpServer', x=-58.50, y=36.00, z=252.50], EntityCreeper['Creeper'/360, l='MpServer', x=2.50, y=44.00, z=133.50], EntityZombie['Zombie'/105, l='MpServer', x=-57.50, y=36.00, z=253.50], EntityZombie['Zombie'/106, l='MpServer', x=-59.50, y=36.00, z=254.50], EntityCow['Cow'/113, l='MpServer', x=-37.78, y=64.00, z=102.25], EntitySkeleton['Skeleton'/370, l='MpServer', x=-59.50, y=16.00, z=249.50], EntityPig['Pig'/114, l='MpServer', x=-43.50, y=67.00, z=99.47], EntityChicken['Chicken'/115, l='MpServer', x=-44.44, y=64.00, z=116.53], EntitySkeleton['Skeleton'/371, l='MpServer', x=-55.50, y=16.00, z=249.50], EntityPig['Pig'/116, l='MpServer', x=-39.13, y=64.00, z=123.94], EntitySkeleton['Skeleton'/372, l='MpServer', x=-54.50, y=16.00, z=250.50], EntityPig['Pig'/117, l='MpServer', x=-37.84, y=64.00, z=137.13], EntityBat['Bat'/118, l='MpServer', x=-21.53, y=32.32, z=149.63], EntityBat['Bat'/119, l='MpServer', x=-36.34, y=47.10, z=165.75], EntityCreeper['Creeper'/248, l='MpServer', x=-68.50, y=23.00, z=229.50], EntityCreeper['Creeper'/124, l='MpServer', x=-24.44, y=26.00, z=115.06], EntityCreeper['Creeper'/125, l='MpServer', x=-25.50, y=24.00, z=110.50], EntitySheep['Sheep'/126, l='MpServer', x=-23.34, y=64.00, z=124.69], EntityChicken['Chicken'/127, l='MpServer', x=-29.53, y=64.00, z=120.44], EntitySkeleton['Skeleton'/383, l='MpServer', x=-100.50, y=21.00, z=101.50]] Retry entities: 0 total; [] Server brand: fml,forge Server type: Integrated singleplayer server Stacktrace: at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:415) at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2566) at net.minecraft.client.Minecraft.run(Minecraft.java:991) at net.minecraft.client.main.Main.main(Main.java:164) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) at GradleStart.main(Unknown Source) -- System Details -- Details: Minecraft Version: 1.7.10 Operating System: Windows 10 (amd64) version 10.0 Java Version: 1.8.0_73, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 722125696 bytes (688 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95 FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1558 4 mods loaded, 4 mods active States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored UCHIJAAAA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) UCHIJAAAA FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar) UCHIJAAAA Forge{10.13.4.1558} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar) UCHIJAAAA tm{1.0} [TestMod] (bin) GL info: ' Vendor: 'Intel' Version: '4.3.0 - Build 10.18.15.4248' Renderer: 'Intel(R) HD Graphics 4400' Launched Version: 1.7.10 LWJGL: 2.9.1 OpenGL: Intel(R) HD Graphics 4400 GL version 4.3.0 - Build 10.18.15.4248, Intel GL Caps: Using GL 1.3 multitexturing. Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported. Anisotropic filtering is supported and maximum anisotropy is 16. Shaders are available because OpenGL 2.1 is supported. Is Modded: Definitely; Client brand changed to 'fml,forge' Type: Client (map_client.txt) Resource Packs: [] Current Language: English (US) Profiler Position: N/A (disabled) Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used Anisotropic Filtering: Off (1) Quote Link to comment Share on other sites More sharing options...
coolAlias Posted February 27, 2016 Share Posted February 27, 2016 Yeah, of course it crashes. You copied and pasted code that crashes. Don't do that. Read the code, read the crash report, and figure out why the code as written is crashing (hint: ItemStack's nbt tag is usually null). If you don't know how to handle the case where a field might be null, I suggest you take some time to learn up on basic programming skills. Quote http://i.imgur.com/NdrFdld.png[/img] Link to comment Share on other sites More sharing options...
BaersMakeNoiseee Posted February 27, 2016 Author Share Posted February 27, 2016 Yeah, of course it crashes. You copied and pasted code that crashes. Don't do that. Read the code, read the crash report, and figure out why the code as written is crashing (hint: ItemStack's nbt tag is usually null). If you don't know how to handle the case where a field might be null, I suggest you take some time to learn up on basic programming skills. Can you please tell me what certain parts of the code do? I think i would understand better if you actually explained what parts of the code are. Quote Link to comment Share on other sites More sharing options...
Draco18s Posted February 27, 2016 Share Posted February 27, 2016 Null error exceptions are ready to fix. He even told you what object is null. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given. Link to comment Share on other sites More sharing options...
BaersMakeNoiseee Posted February 29, 2016 Author Share Posted February 29, 2016 Yeah, of course it crashes. You copied and pasted code that crashes. Don't do that. Read the code, read the crash report, and figure out why the code as written is crashing (hint: ItemStack's nbt tag is usually null). If you don't know how to handle the case where a field might be null, I suggest you take some time to learn up on basic programming skills. I tried changing it, but it didn't work. public ItemStack onItemRightClick(ItemStack Stack, World World, EntityPlayer p) { Stack.getTagCompound().setInteger("float_time", 20); return Stack; } @SuppressWarnings("null") public void onUpdate(ItemStack Stack, World World, Entity p, int par4, boolean par5) { NBTTagCompound tag = Stack.getTagCompound(); if (tag == null && tag.getInteger("float_time") > 0) { tag.setInteger("float_time", tag.getInteger("float_time") - 1); // decrement float time p.motionY = 0.1F; } } } Quote Link to comment Share on other sites More sharing options...
Draco18s Posted February 29, 2016 Share Posted February 29, 2016 @SuppressWarnings("null") ...really? Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given. Link to comment Share on other sites More sharing options...
BaersMakeNoiseee Posted February 29, 2016 Author Share Posted February 29, 2016 @SuppressWarnings("null") ...really? can you please give me information instead of just saying things that doesn't help me in the slightest. Quote Link to comment Share on other sites More sharing options...
coolAlias Posted February 29, 2016 Share Posted February 29, 2016 Please, READ the crash log. Actually read it. Find the line that says something like "Caused by... at line xyz". Now compare that line number to the line numbers of the method you are trying to fix. Hm, not the same, are they? And please, take a few hours of your time and learn a little about Java. Search 'Java check for null' or 'Java null pointer exception' and surely you will find a solution. Or even just READ the code I wrote. Seriously, the solution is already there in one of the examples. Null check. Check for null. If null don't try to use the null to do stuff. Phrased another way, if not null, do stuff. We're not trying to be mean, but you need to show that you are putting in some effort. Quote http://i.imgur.com/NdrFdld.png[/img] Link to comment Share on other sites More sharing options...
Draco18s Posted February 29, 2016 Share Posted February 29, 2016 can you please give me information instead of just saying things that doesn't help me in the slightest. Please go into your airplane and flip the red lever. This is equivalent to what you're asking java to do and it's telling you it doesn't own a god damn airplane. Your "suppress warnings" is you telling it to shut the fuck up, rather than buying an airplane. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given. Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.