forked from GeyserMC/Geyser
		
	Merge branch 'master' into inventory
This commit is contained in:
		
						commit
						70d6a28c22
					
				
					 18 changed files with 610 additions and 26 deletions
				
			
		
							
								
								
									
										28
									
								
								.github/workflows/pullrequest.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								.github/workflows/pullrequest.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -23,9 +23,33 @@ jobs: | |||
|         uses: snickerbockers/submodules-init@v4 | ||||
|       - name: Build with Maven | ||||
|         run: mvn -B package | ||||
|       - name: Archive artifacts | ||||
|       - name: Archive artifacts (Geyser Standalone) | ||||
|         uses: actions/upload-artifact@v1 | ||||
|         if: success() | ||||
|         with: | ||||
|           name: Geyser | ||||
|           name: Geyser Standalone | ||||
|           path: bootstrap/standalone/target/Geyser.jar | ||||
|       - name: Archive artifacts (Geyser Bukkit) | ||||
|         uses: actions/upload-artifact@v1 | ||||
|         if: success() | ||||
|         with: | ||||
|           name: Geyser Bukkit | ||||
|           path: bootstrap/bukkit/target/Geyser-Bukkit.jar | ||||
|       - name: Archive artifacts (Geyser BungeeCord) | ||||
|         uses: actions/upload-artifact@v1 | ||||
|         if: success() | ||||
|         with: | ||||
|           name: Geyser BungeeCord | ||||
|           path: bootstrap/bungeecord/target/Geyser-BungeeCord.jar | ||||
|       - name: Archive artifacts (Geyser Sponge) | ||||
|         uses: actions/upload-artifact@v1 | ||||
|         if: success() | ||||
|         with: | ||||
|           name: Geyser Sponge | ||||
|           path: bootstrap/sponge/target/Geyser-Sponge.jar | ||||
|       - name: Archive artifacts (Geyser Velocity) | ||||
|         uses: actions/upload-artifact@v1 | ||||
|         if: success() | ||||
|         with: | ||||
|           name: Geyser Velocity | ||||
|           path: bootstrap/velocity/target/Geyser-Velocity.jar | ||||
|  |  | |||
|  | @ -64,7 +64,7 @@ public class LivingEntity extends Entity { | |||
|                 metadata.put(EntityData.POTION_COLOR, (int) entityMetadata.getValue()); | ||||
|                 break; | ||||
|             case 10: | ||||
|                 // metadata.put(EntityData.POTION_AMBIENT, (boolean) entityMetadata.getValue()); | ||||
|                 metadata.put(EntityData.POTION_AMBIENT, (byte) ((boolean) entityMetadata.getValue() ? 1 : 0)); | ||||
|                 break; | ||||
|         } | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,48 @@ | |||
| /* | ||||
|  * Copyright (c) 2019-2020 GeyserMC. http://geysermc.org | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in | ||||
|  * all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  * THE SOFTWARE. | ||||
|  * | ||||
|  * @author GeyserMC | ||||
|  * @link https://github.com/GeyserMC/Geyser | ||||
|  */ | ||||
| 
 | ||||
| package org.geysermc.connector.entity.living.animal; | ||||
| 
 | ||||
| import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata; | ||||
| import com.nukkitx.math.vector.Vector3f; | ||||
| import com.nukkitx.protocol.bedrock.data.EntityFlag; | ||||
| import org.geysermc.connector.entity.type.EntityType; | ||||
| import org.geysermc.connector.network.session.GeyserSession; | ||||
| 
 | ||||
| public class BeeEntity extends AnimalEntity { | ||||
| 
 | ||||
|     public BeeEntity(long entityId, long geyserId, EntityType entityType, Vector3f position, Vector3f motion, Vector3f rotation) { | ||||
|         super(entityId, geyserId, entityType, position, motion, rotation); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { | ||||
|         if (entityMetadata.getId() == 16) { | ||||
|             byte xd = (byte) entityMetadata.getValue(); | ||||
|             metadata.getFlags().setFlag(EntityFlag.ANGRY, (xd & 0x02) == 0x02); | ||||
|         } | ||||
|         super.updateBedrockMetadata(entityMetadata, session); | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,54 @@ | |||
| /* | ||||
|  * Copyright (c) 2019-2020 GeyserMC. http://geysermc.org | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in | ||||
|  * all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  * THE SOFTWARE. | ||||
|  * | ||||
|  * @author GeyserMC | ||||
|  * @link https://github.com/GeyserMC/Geyser | ||||
|  */ | ||||
| 
 | ||||
| package org.geysermc.connector.entity.living.animal; | ||||
| 
 | ||||
| import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata; | ||||
| import com.nukkitx.math.vector.Vector3f; | ||||
| import com.nukkitx.protocol.bedrock.data.EntityData; | ||||
| import com.nukkitx.protocol.bedrock.data.EntityFlag; | ||||
| import org.geysermc.connector.entity.type.EntityType; | ||||
| import org.geysermc.connector.network.session.GeyserSession; | ||||
| 
 | ||||
| public class FoxEntity extends AnimalEntity { | ||||
| 
 | ||||
|     public FoxEntity(long entityId, long geyserId, EntityType entityType, Vector3f position, Vector3f motion, Vector3f rotation) { | ||||
|         super(entityId, geyserId, entityType, position, motion, rotation); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { | ||||
|         if (entityMetadata.getId() == 16) { | ||||
|             metadata.put(EntityData.VARIANT, (int) entityMetadata.getValue()); | ||||
|         } | ||||
|         if (entityMetadata.getId() == 17) { | ||||
|             byte xd = (byte) entityMetadata.getValue(); | ||||
|             metadata.getFlags().setFlag(EntityFlag.SITTING, (xd & 0x01) == 0x01); | ||||
|             metadata.getFlags().setFlag(EntityFlag.SNEAKING, (xd & 0x04) == 0x04); | ||||
|             metadata.getFlags().setFlag(EntityFlag.SLEEPING, (xd & 0x20) == 0x20); | ||||
|         } | ||||
|         super.updateBedrockMetadata(entityMetadata, session); | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,47 @@ | |||
| /* | ||||
|  * Copyright (c) 2019-2020 GeyserMC. http://geysermc.org | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in | ||||
|  * all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  * THE SOFTWARE. | ||||
|  * | ||||
|  * @author GeyserMC | ||||
|  * @link https://github.com/GeyserMC/Geyser | ||||
|  */ | ||||
| 
 | ||||
| package org.geysermc.connector.entity.living.animal; | ||||
| 
 | ||||
| import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata; | ||||
| import com.nukkitx.math.vector.Vector3f; | ||||
| import com.nukkitx.protocol.bedrock.data.EntityFlag; | ||||
| import org.geysermc.connector.entity.type.EntityType; | ||||
| import org.geysermc.connector.network.session.GeyserSession; | ||||
| 
 | ||||
| public class OcelotEntity extends AnimalEntity { | ||||
| 
 | ||||
|     public OcelotEntity(long entityId, long geyserId, EntityType entityType, Vector3f position, Vector3f motion, Vector3f rotation) { | ||||
|         super(entityId, geyserId, entityType, position, motion, rotation); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { | ||||
|         if (entityMetadata.getId() == 16) { | ||||
|             metadata.getFlags().setFlag(EntityFlag.TRUSTING, (boolean) entityMetadata.getValue()); | ||||
|         } | ||||
|         super.updateBedrockMetadata(entityMetadata, session); | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,49 @@ | |||
| /* | ||||
|  * Copyright (c) 2019-2020 GeyserMC. http://geysermc.org | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in | ||||
|  * all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  * THE SOFTWARE. | ||||
|  * | ||||
|  * @author GeyserMC | ||||
|  * @link https://github.com/GeyserMC/Geyser | ||||
|  */ | ||||
| 
 | ||||
| package org.geysermc.connector.entity.living.animal; | ||||
| 
 | ||||
| import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata; | ||||
| import com.nukkitx.math.vector.Vector3f; | ||||
| import com.nukkitx.protocol.bedrock.data.EntityFlag; | ||||
| import org.geysermc.connector.entity.type.EntityType; | ||||
| import org.geysermc.connector.network.session.GeyserSession; | ||||
| 
 | ||||
| public class PandaEntity extends AnimalEntity { | ||||
| 
 | ||||
|     public PandaEntity(long entityId, long geyserId, EntityType entityType, Vector3f position, Vector3f motion, Vector3f rotation) { | ||||
|         super(entityId, geyserId, entityType, position, motion, rotation); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { | ||||
|         if (entityMetadata.getId() == 21) { | ||||
|             byte xd = (byte) entityMetadata.getValue(); | ||||
|             metadata.getFlags().setFlag(EntityFlag.SNEEZING, (xd & 0x02) == 0x02); | ||||
|             metadata.getFlags().setFlag(EntityFlag.EATING, (xd & 0x04) == 0x04); | ||||
|         } | ||||
|         super.updateBedrockMetadata(entityMetadata, session); | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,47 @@ | |||
| /* | ||||
|  * Copyright (c) 2019-2020 GeyserMC. http://geysermc.org | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in | ||||
|  * all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  * THE SOFTWARE. | ||||
|  * | ||||
|  * @author GeyserMC | ||||
|  * @link https://github.com/GeyserMC/Geyser | ||||
|  */ | ||||
| 
 | ||||
| package org.geysermc.connector.entity.living.animal; | ||||
| 
 | ||||
| import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata; | ||||
| import com.nukkitx.math.vector.Vector3f; | ||||
| import com.nukkitx.protocol.bedrock.data.EntityFlag; | ||||
| import org.geysermc.connector.entity.type.EntityType; | ||||
| import org.geysermc.connector.network.session.GeyserSession; | ||||
| 
 | ||||
| public class PigEntity extends AnimalEntity { | ||||
| 
 | ||||
|     public PigEntity(long entityId, long geyserId, EntityType entityType, Vector3f position, Vector3f motion, Vector3f rotation) { | ||||
|         super(entityId, geyserId, entityType, position, motion, rotation); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { | ||||
|         if (entityMetadata.getId() == 16) { | ||||
|             metadata.getFlags().setFlag(EntityFlag.SADDLED, (boolean) entityMetadata.getValue()); | ||||
|         } | ||||
|         super.updateBedrockMetadata(entityMetadata, session); | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,47 @@ | |||
| /* | ||||
|  * Copyright (c) 2019-2020 GeyserMC. http://geysermc.org | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in | ||||
|  * all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  * THE SOFTWARE. | ||||
|  * | ||||
|  * @author GeyserMC | ||||
|  * @link https://github.com/GeyserMC/Geyser | ||||
|  */ | ||||
| 
 | ||||
| package org.geysermc.connector.entity.living.animal; | ||||
| 
 | ||||
| import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata; | ||||
| import com.nukkitx.math.vector.Vector3f; | ||||
| import com.nukkitx.protocol.bedrock.data.EntityFlag; | ||||
| import org.geysermc.connector.entity.type.EntityType; | ||||
| import org.geysermc.connector.network.session.GeyserSession; | ||||
| 
 | ||||
| public class PolarBearEntity extends AnimalEntity { | ||||
| 
 | ||||
|     public PolarBearEntity(long entityId, long geyserId, EntityType entityType, Vector3f position, Vector3f motion, Vector3f rotation) { | ||||
|         super(entityId, geyserId, entityType, position, motion, rotation); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { | ||||
|         if (entityMetadata.getId() == 16) { | ||||
|             metadata.getFlags().setFlag(EntityFlag.STANDING, (boolean) entityMetadata.getValue()); | ||||
|         } | ||||
|         super.updateBedrockMetadata(entityMetadata, session); | ||||
|     } | ||||
| } | ||||
|  | @ -27,7 +27,7 @@ package org.geysermc.connector.entity.living.animal.horse; | |||
| 
 | ||||
| import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata; | ||||
| import com.nukkitx.math.vector.Vector3f; | ||||
| 
 | ||||
| import com.nukkitx.protocol.bedrock.data.EntityFlag; | ||||
| import org.geysermc.connector.entity.living.animal.AnimalEntity; | ||||
| import org.geysermc.connector.entity.type.EntityType; | ||||
| import org.geysermc.connector.network.session.GeyserSession; | ||||
|  | @ -40,6 +40,12 @@ public class AbstractHorseEntity extends AnimalEntity { | |||
| 
 | ||||
|     @Override | ||||
|     public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { | ||||
|         if (entityMetadata.getId() == 16) { | ||||
|             byte xd = (byte) entityMetadata.getValue(); | ||||
|             metadata.getFlags().setFlag(EntityFlag.TAMED, (xd & 0x02) == 0x02); | ||||
|             metadata.getFlags().setFlag(EntityFlag.SADDLED, (xd & 0x04) == 0x04); | ||||
|             metadata.getFlags().setFlag(EntityFlag.EATING, (xd & 0x10) == 0x10); | ||||
|         } | ||||
|         super.updateBedrockMetadata(entityMetadata, session); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -39,9 +39,9 @@ public class ChestedHorseEntity extends AbstractHorseEntity { | |||
| 
 | ||||
|     @Override | ||||
|     public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { | ||||
|         // https://wiki.vg/Entity_metadata#Horse | ||||
|         metadata.getFlags().setFlag(EntityFlag.CHESTED, chestplate != null && chestplate.getId() != 0); | ||||
| 
 | ||||
|         if (entityMetadata.getId() == 18) { | ||||
|             metadata.getFlags().setFlag(EntityFlag.CHESTED, (boolean) entityMetadata.getValue()); | ||||
|         } | ||||
|         super.updateBedrockMetadata(entityMetadata, session); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -0,0 +1,51 @@ | |||
| /* | ||||
|  * Copyright (c) 2019-2020 GeyserMC. http://geysermc.org | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in | ||||
|  * all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  * THE SOFTWARE. | ||||
|  * | ||||
|  * @author GeyserMC | ||||
|  * @link https://github.com/GeyserMC/Geyser | ||||
|  */ | ||||
| 
 | ||||
| package org.geysermc.connector.entity.living.animal.tameable; | ||||
| 
 | ||||
| import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata; | ||||
| import com.nukkitx.math.vector.Vector3f; | ||||
| import com.nukkitx.protocol.bedrock.data.EntityData; | ||||
| import org.geysermc.connector.entity.type.EntityType; | ||||
| import org.geysermc.connector.network.session.GeyserSession; | ||||
| 
 | ||||
| public class CatEntity extends TameableEntity { | ||||
| 
 | ||||
|     public CatEntity(long entityId, long geyserId, EntityType entityType, Vector3f position, Vector3f motion, Vector3f rotation) { | ||||
|         super(entityId, geyserId, entityType, position, motion, rotation); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { | ||||
|         if (entityMetadata.getId() == 18) { | ||||
|             metadata.put(EntityData.VARIANT, (int) entityMetadata.getValue()); | ||||
|         } | ||||
|         if (entityMetadata.getId() == 21) { | ||||
|             // FIXME: Colors the whole animal instead of just collar | ||||
|             metadata.put(EntityData.COLOR, (byte) (int) entityMetadata.getValue()); | ||||
|         } | ||||
|         super.updateBedrockMetadata(entityMetadata, session); | ||||
|     } | ||||
| } | ||||
|  | @ -23,15 +23,29 @@ | |||
|  * @link https://github.com/GeyserMC/Geyser | ||||
|  */ | ||||
| 
 | ||||
| package org.geysermc.connector.entity.living.animal; | ||||
| package org.geysermc.connector.entity.living.animal.tameable; | ||||
| 
 | ||||
| import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata; | ||||
| import com.nukkitx.math.vector.Vector3f; | ||||
| import com.nukkitx.protocol.bedrock.data.EntityFlag; | ||||
| import org.geysermc.connector.entity.living.animal.AnimalEntity; | ||||
| import org.geysermc.connector.entity.type.EntityType; | ||||
| import org.geysermc.connector.network.session.GeyserSession; | ||||
| 
 | ||||
| public class TameableEntity extends AnimalEntity { | ||||
| 
 | ||||
|     public TameableEntity(long entityId, long geyserId, EntityType entityType, Vector3f position, Vector3f motion, Vector3f rotation) { | ||||
|         super(entityId, geyserId, entityType, position, motion, rotation); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { | ||||
|         if (entityMetadata.getId() == 16) { | ||||
|             byte xd = (byte) entityMetadata.getValue(); | ||||
|             metadata.getFlags().setFlag(EntityFlag.SITTING, (xd & 0x01) == 0x01); | ||||
|             metadata.getFlags().setFlag(EntityFlag.ANGRY, (xd & 0x02) == 0x02); | ||||
|             metadata.getFlags().setFlag(EntityFlag.TAMED, (xd & 0x04) == 0x04); | ||||
|         } | ||||
|         super.updateBedrockMetadata(entityMetadata, session); | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,48 @@ | |||
| /* | ||||
|  * Copyright (c) 2019-2020 GeyserMC. http://geysermc.org | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in | ||||
|  * all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  * THE SOFTWARE. | ||||
|  * | ||||
|  * @author GeyserMC | ||||
|  * @link https://github.com/GeyserMC/Geyser | ||||
|  */ | ||||
| 
 | ||||
| package org.geysermc.connector.entity.living.animal.tameable; | ||||
| 
 | ||||
| import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata; | ||||
| import com.nukkitx.math.vector.Vector3f; | ||||
| import com.nukkitx.protocol.bedrock.data.EntityData; | ||||
| import org.geysermc.connector.entity.type.EntityType; | ||||
| import org.geysermc.connector.network.session.GeyserSession; | ||||
| 
 | ||||
| public class WolfEntity extends TameableEntity { | ||||
| 
 | ||||
|     public WolfEntity(long entityId, long geyserId, EntityType entityType, Vector3f position, Vector3f motion, Vector3f rotation) { | ||||
|         super(entityId, geyserId, entityType, position, motion, rotation); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { | ||||
|         if (entityMetadata.getId() == 19) { | ||||
|             // FIXME: Colors the whole animal instead of just collar | ||||
|             // metadata.put(EntityData.COLOR, (byte) (int) entityMetadata.getValue()); | ||||
|         } | ||||
|         super.updateBedrockMetadata(entityMetadata, session); | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,49 @@ | |||
| /* | ||||
|  * Copyright (c) 2019-2020 GeyserMC. http://geysermc.org | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in | ||||
|  * all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  * THE SOFTWARE. | ||||
|  * | ||||
|  * @author GeyserMC | ||||
|  * @link https://github.com/GeyserMC/Geyser | ||||
|  */ | ||||
| 
 | ||||
| package org.geysermc.connector.entity.living.monster; | ||||
| 
 | ||||
| import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata; | ||||
| import com.nukkitx.math.vector.Vector3f; | ||||
| import com.nukkitx.protocol.bedrock.data.EntityFlag; | ||||
| import org.geysermc.connector.entity.type.EntityType; | ||||
| import org.geysermc.connector.network.session.GeyserSession; | ||||
| 
 | ||||
| public class BlazeEntity extends MonsterEntity { | ||||
| 
 | ||||
|     public BlazeEntity(long entityId, long geyserId, EntityType entityType, Vector3f position, Vector3f motion, Vector3f rotation) { | ||||
|         super(entityId, geyserId, entityType, position, motion, rotation); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { | ||||
|         if (entityMetadata.getId() == 15) { | ||||
|             byte xd = (byte) entityMetadata.getValue(); | ||||
|             metadata.getFlags().setFlag(EntityFlag.ON_FIRE, (xd & 0x01) == 0x01); | ||||
|         } | ||||
| 
 | ||||
|         super.updateBedrockMetadata(entityMetadata, session); | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,51 @@ | |||
| /* | ||||
|  * Copyright (c) 2019-2020 GeyserMC. http://geysermc.org | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in | ||||
|  * all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  * THE SOFTWARE. | ||||
|  * | ||||
|  * @author GeyserMC | ||||
|  * @link https://github.com/GeyserMC/Geyser | ||||
|  */ | ||||
| 
 | ||||
| package org.geysermc.connector.entity.living.monster; | ||||
| 
 | ||||
| import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata; | ||||
| import com.nukkitx.math.vector.Vector3f; | ||||
| import com.nukkitx.protocol.bedrock.data.EntityFlag; | ||||
| import org.geysermc.connector.entity.type.EntityType; | ||||
| import org.geysermc.connector.network.session.GeyserSession; | ||||
| 
 | ||||
| public class CreeperEntity extends MonsterEntity { | ||||
| 
 | ||||
|     public CreeperEntity(long entityId, long geyserId, EntityType entityType, Vector3f position, Vector3f motion, Vector3f rotation) { | ||||
|         super(entityId, geyserId, entityType, position, motion, rotation); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { | ||||
|         if (entityMetadata.getId() == 16) { | ||||
|             metadata.getFlags().setFlag(EntityFlag.POWERED, (boolean) entityMetadata.getValue()); | ||||
|         } | ||||
|         if (entityMetadata.getId() == 17) { | ||||
|             metadata.getFlags().setFlag(EntityFlag.IGNITED, (boolean) entityMetadata.getValue()); | ||||
|         } | ||||
| 
 | ||||
|         super.updateBedrockMetadata(entityMetadata, session); | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,49 @@ | |||
| /* | ||||
|  * Copyright (c) 2019-2020 GeyserMC. http://geysermc.org | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in | ||||
|  * all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  * THE SOFTWARE. | ||||
|  * | ||||
|  * @author GeyserMC | ||||
|  * @link https://github.com/GeyserMC/Geyser | ||||
|  */ | ||||
| 
 | ||||
| package org.geysermc.connector.entity.living.monster; | ||||
| 
 | ||||
| import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata; | ||||
| import com.nukkitx.math.vector.Vector3f; | ||||
| import com.nukkitx.protocol.bedrock.data.EntityFlag; | ||||
| import org.geysermc.connector.entity.type.EntityType; | ||||
| import org.geysermc.connector.network.session.GeyserSession; | ||||
| 
 | ||||
| public class SpiderEntity extends MonsterEntity { | ||||
| 
 | ||||
|     public SpiderEntity(long entityId, long geyserId, EntityType entityType, Vector3f position, Vector3f motion, Vector3f rotation) { | ||||
|         super(entityId, geyserId, entityType, position, motion, rotation); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) { | ||||
|         if (entityMetadata.getId() == 15) { | ||||
|             byte xd = (byte) entityMetadata.getValue(); | ||||
|             metadata.getFlags().setFlag(EntityFlag.WALL_CLIMBING, (xd & 0x01) == 0x01); | ||||
|         } | ||||
| 
 | ||||
|         super.updateBedrockMetadata(entityMetadata, session); | ||||
|     } | ||||
| } | ||||
|  | @ -28,14 +28,14 @@ package org.geysermc.connector.entity.type; | |||
| import lombok.Getter; | ||||
| import org.geysermc.connector.entity.*; | ||||
| import org.geysermc.connector.entity.living.*; | ||||
| import org.geysermc.connector.entity.living.animal.AnimalEntity; | ||||
| import org.geysermc.connector.entity.living.animal.TameableEntity; | ||||
| import org.geysermc.connector.entity.living.animal.*; | ||||
| import org.geysermc.connector.entity.living.animal.tameable.CatEntity; | ||||
| import org.geysermc.connector.entity.living.animal.tameable.TameableEntity; | ||||
| import org.geysermc.connector.entity.living.animal.horse.AbstractHorseEntity; | ||||
| import org.geysermc.connector.entity.living.animal.RabbitEntity; | ||||
| import org.geysermc.connector.entity.living.animal.SheepEntity; | ||||
| import org.geysermc.connector.entity.living.animal.horse.ChestedHorseEntity; | ||||
| import org.geysermc.connector.entity.living.animal.horse.HorseEntity; | ||||
| import org.geysermc.connector.entity.living.animal.horse.LlamaEntity; | ||||
| import org.geysermc.connector.entity.living.animal.tameable.WolfEntity; | ||||
| import org.geysermc.connector.entity.living.monster.*; | ||||
| import org.geysermc.connector.entity.living.monster.raid.AbstractIllagerEntity; | ||||
| import org.geysermc.connector.entity.living.monster.raid.RaidParticipantEntity; | ||||
|  | @ -46,9 +46,9 @@ public enum EntityType { | |||
| 
 | ||||
|     CHICKEN(AnimalEntity.class, 10, 0.7f, 0.4f), | ||||
|     COW(AnimalEntity.class, 11, 1.4f, 0.9f), | ||||
|     PIG(AnimalEntity.class, 12, 0.9f), | ||||
|     PIG(PigEntity.class, 12, 0.9f), | ||||
|     SHEEP(SheepEntity.class, 13, 1.3f, 0.9f), | ||||
|     WOLF(AnimalEntity.class, 14, 0.85f, 0.6f), | ||||
|     WOLF(WolfEntity.class, 14, 0.85f, 0.6f), | ||||
|     VILLAGER(AbstractMerchantEntity.class, 15, 1.8f, 0.6f, 0.6f, 1.62f), | ||||
|     MOOSHROOM(AnimalEntity.class, 16, 1.4f, 0.9f), | ||||
|     SQUID(WaterEntity.class, 17, 0.8f), | ||||
|  | @ -56,21 +56,21 @@ public enum EntityType { | |||
|     BAT(AmbientEntity.class, 19, 0.9f, 0.5f), | ||||
|     IRON_GOLEM(GolemEntity.class, 20, 2.7f, 1.4f), | ||||
|     SNOW_GOLEM(GolemEntity.class, 21, 1.9f, 0.7f), | ||||
|     OCELOT(AgeableEntity.class, 22, 0.35f, 0.3f), | ||||
|     OCELOT(OcelotEntity.class, 22, 0.35f, 0.3f), | ||||
|     HORSE(HorseEntity.class, 23, 1.6f, 1.3965f), | ||||
|     DONKEY(ChestedHorseEntity.class, 24, 1.6f, 1.3965f), | ||||
|     MULE(ChestedHorseEntity.class, 25, 1.6f, 1.3965f), | ||||
|     SKELETON_HORSE(AbstractHorseEntity.class, 26, 1.6f, 1.3965f), | ||||
|     ZOMBIE_HORSE(AbstractHorseEntity.class, 27, 1.6f, 1.3965f), | ||||
|     POLAR_BEAR(AnimalEntity.class, 28, 1.4f, 1.3f), | ||||
|     POLAR_BEAR(PolarBearEntity.class, 28, 1.4f, 1.3f), | ||||
|     LLAMA(LlamaEntity.class, 29, 1.87f, 0.9f), | ||||
|     TRADER_LLAMA(LlamaEntity.class, 29, 1.187f, 0.9f), | ||||
|     PARROT(TameableEntity.class, 30, 0.9f, 0.5f), | ||||
|     DOLPHIN(WaterEntity.class, 31, 0.6f, 0.9f), | ||||
|     ZOMBIE(ZombieEntity.class, 32, 1.8f, 0.6f, 0.6f, 1.62f), | ||||
|     CREEPER(MonsterEntity.class, 33, 1.7f, 0.6f, 0.6f, 1.62f), | ||||
|     CREEPER(CreeperEntity.class, 33, 1.7f, 0.6f, 0.6f, 1.62f), | ||||
|     SKELETON(AbstractSkeletonEntity.class, 34, 1.8f, 0.6f, 0.6f, 1.62f), | ||||
|     SPIDER(MonsterEntity.class, 35, 0.9f, 1.4f, 1.4f, 1f), | ||||
|     SPIDER(SpiderEntity.class, 35, 0.9f, 1.4f, 1.4f, 1f), | ||||
|     ZOMBIE_PIGMAN(MonsterEntity.class, 36, 1.8f, 0.6f, 0.6f, 1.62f), | ||||
|     SLIME(InsentientEntity.class, 37, 0.51f), | ||||
|     ENDERMAN(MonsterEntity.class, 38, 2.9f, 0.6f), | ||||
|  | @ -78,13 +78,13 @@ public enum EntityType { | |||
|     CAVE_SPIDER(MonsterEntity.class, 40, 0.5f, 0.7f), | ||||
|     GHAST(FlyingEntity.class, 41, 4.0f), | ||||
|     MAGMA_CUBE(InsentientEntity.class, 42, 0.51f), | ||||
|     BLAZE(MonsterEntity.class, 43, 1.8f, 0.6f), | ||||
|     BLAZE(BlazeEntity.class, 43, 1.8f, 0.6f), | ||||
|     ZOMBIE_VILLAGER(ZombieEntity.class, 44, 1.8f, 0.6f, 0.6f, 1.62f), | ||||
|     WITCH(RaidParticipantEntity.class, 45, 1.8f, 0.6f, 0.6f, 1.62f), | ||||
|     STRAY(AbstractSkeletonEntity.class, 46, 1.8f, 0.6f, 0.6f, 1.62f), | ||||
|     HUSK(ZombieEntity.class, 47, 1.8f, 0.6f, 0.6f, 1.62f), | ||||
|     WITHER_SKELETON(AbstractSkeletonEntity.class, 48, 2.4f, 0.7f), | ||||
|     GUARDIAN(MonsterEntity.class, 49, 0.85f), | ||||
|     GUARDIAN(GuardianEntity.class, 49, 0.85f), | ||||
|     ELDER_GUARDIAN(GuardianEntity.class, 50, 1.9975f), | ||||
|     NPC(PlayerEntity.class, 51, 1.8f, 0.6f, 0.6f, 1.62f), | ||||
|     WITHER(MonsterEntity.class, 52, 3.5f, 0.9f), | ||||
|  | @ -112,7 +112,7 @@ public enum EntityType { | |||
|     FIREWORK_ROCKET(Entity.class, 72, 0f), | ||||
|     TRIDENT(ArrowEntity.class, 73, 0f), | ||||
|     TURTLE(AnimalEntity.class, 74, 0.4f, 1.2f), | ||||
|     CAT(TameableEntity.class, 75, 0.35f, 0.3f), | ||||
|     CAT(CatEntity.class, 75, 0.35f, 0.3f), | ||||
|     SHULKER_BULLET(Entity.class, 76, 0f), | ||||
|     FISHING_BOBBER(Entity.class, 77, 0f), | ||||
|     CHALKBOARD(Entity.class, 78, 0f), | ||||
|  | @ -149,9 +149,9 @@ public enum EntityType { | |||
|     DROWNED(ZombieEntity.class, 110, 1.95f, 0.6f), | ||||
|     TROPICAL_FISH(AbstractFishEntity.class, 111, 0.6f, 0.6f), | ||||
|     COD(AbstractFishEntity.class, 112, 0.25f, 0.5f), | ||||
|     PANDA(AnimalEntity.class, 113, 1.25f, 1.125f, 1.825f), | ||||
|     FOX(AnimalEntity.class, 121, 0.5f, 1.25f), | ||||
|     BEE(InsentientEntity.class, 122, 0.6f, 0.6f); | ||||
|     PANDA(PandaEntity.class, 113, 1.25f, 1.125f, 1.825f), | ||||
|     FOX(FoxEntity.class, 121, 0.5f, 1.25f), | ||||
|     BEE(BeeEntity.class, 122, 0.6f, 0.6f); | ||||
| 
 | ||||
|     private Class<? extends Entity> entityClass; | ||||
|     private final int type; | ||||
|  |  | |||
|  | @ -157,7 +157,7 @@ public class MessageUtils { | |||
|                 base += "r"; | ||||
|                 break; | ||||
|             default: | ||||
|                 break; | ||||
|                 return ""; | ||||
|         } | ||||
| 
 | ||||
|         return base; | ||||
|  | @ -184,7 +184,7 @@ public class MessageUtils { | |||
|                     base += "o"; | ||||
|                     break; | ||||
|                 default: | ||||
|                     break; | ||||
|                     return ""; | ||||
|             } | ||||
| 
 | ||||
|             str.append(base); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue