diff --git a/gradle.properties b/gradle.properties index 75b601e..d053ead 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx2G group=com.vixis name=vixis -version=0.1.0 +version=0.1.1 minecraft_version=1.12.2 forge_version=14.23.5.2860 diff --git a/src/main/java/com/vixis/Vixis.java b/src/main/java/com/vixis/Vixis.java index 1889586..9e39d50 100644 --- a/src/main/java/com/vixis/Vixis.java +++ b/src/main/java/com/vixis/Vixis.java @@ -15,7 +15,7 @@ import org.apache.logging.log4j.Logger; public class Vixis { public static final String MODID = "vixis"; public static final String NAME = "Vixis"; - public static final String VERSION = "0.1.0"; + public static final String VERSION = "0.1.1"; public static final Logger LOGGER = LogManager.getLogger(MODID); diff --git a/src/main/java/com/vixis/advancement/VixisAdvancements.java b/src/main/java/com/vixis/advancement/VixisAdvancements.java index 975c56b..9fafdff 100644 --- a/src/main/java/com/vixis/advancement/VixisAdvancements.java +++ b/src/main/java/com/vixis/advancement/VixisAdvancements.java @@ -8,6 +8,9 @@ import net.minecraft.util.ResourceLocation; public final class VixisAdvancements { public static final ResourceLocation KISS_A_FOX = new ResourceLocation(Vixis.MODID, "kiss_a_fox"); + public static final ResourceLocation VORE_MENTIONED = new ResourceLocation(Vixis.MODID, "vore_mentioned"); + public static final ResourceLocation PET_THAT_DOG = new ResourceLocation(Vixis.MODID, "pet_that_dog"); + public static final ResourceLocation PAW_MENTIONED = new ResourceLocation(Vixis.MODID, "paw_mentioned"); private VixisAdvancements() { } diff --git a/src/main/java/com/vixis/event/ChatKeywordHandler.java b/src/main/java/com/vixis/event/ChatKeywordHandler.java new file mode 100644 index 0000000..1549f79 --- /dev/null +++ b/src/main/java/com/vixis/event/ChatKeywordHandler.java @@ -0,0 +1,32 @@ +package com.vixis.event; + +import com.vixis.Vixis; +import com.vixis.advancement.VixisAdvancements; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.event.ServerChatEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +import java.util.regex.Pattern; + +@Mod.EventBusSubscriber(modid = Vixis.MODID) +public final class ChatKeywordHandler { + private static final Pattern VORE_WORD = Pattern.compile("\\bvore\\b", Pattern.CASE_INSENSITIVE); + private static final Pattern PAW_WORD = Pattern.compile("\\bpaws?\\b", Pattern.CASE_INSENSITIVE); + + private ChatKeywordHandler() { + } + + @SubscribeEvent + public static void onChat(ServerChatEvent event) { + String message = event.getMessage(); + grantIfMatch(event, message, VORE_WORD, VixisAdvancements.VORE_MENTIONED); + grantIfMatch(event, message, PAW_WORD, VixisAdvancements.PAW_MENTIONED); + } + + private static void grantIfMatch(ServerChatEvent event, String message, Pattern pattern, ResourceLocation advancement) { + if (pattern.matcher(message).find()) { + VixisAdvancements.grant(event.getPlayer(), advancement); + } + } +} diff --git a/src/main/java/com/vixis/event/PetDogHandler.java b/src/main/java/com/vixis/event/PetDogHandler.java new file mode 100644 index 0000000..6c5fc2e --- /dev/null +++ b/src/main/java/com/vixis/event/PetDogHandler.java @@ -0,0 +1,37 @@ +package com.vixis.event; + +import com.vixis.Vixis; +import com.vixis.advancement.VixisAdvancements; +import net.minecraft.entity.Entity; +import net.minecraft.entity.passive.EntityWolf; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; + +@Mod.EventBusSubscriber(modid = Vixis.MODID) +public final class PetDogHandler { + private PetDogHandler() { + } + + @SubscribeEvent + public static void onPlayerTick(TickEvent.PlayerTickEvent event) { + if (event.phase != TickEvent.Phase.END || event.player.world.isRemote) { + return; + } + if (!(event.player instanceof EntityPlayerMP)) { + return; + } + + EntityPlayerMP player = (EntityPlayerMP) event.player; + for (Entity entity : player.world.loadedEntityList) { + if (!(entity instanceof EntityWolf)) { + continue; + } + if (player.getEntityBoundingBox().intersects(entity.getEntityBoundingBox())) { + VixisAdvancements.grant(player, VixisAdvancements.PET_THAT_DOG); + return; + } + } + } +} diff --git a/src/main/java/com/vixis/item/ModItems.java b/src/main/java/com/vixis/item/ModItems.java index bc89ea1..071dddf 100644 --- a/src/main/java/com/vixis/item/ModItems.java +++ b/src/main/java/com/vixis/item/ModItems.java @@ -11,6 +11,9 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; public final class ModItems { public static Item LOGO; public static Item KISS_CHEEV; + public static Item VORE_MENTIONED; + public static Item PET_THAT_DOG; + public static Item PAW_MENTIONED; private ModItems() { } @@ -28,6 +31,24 @@ public final class ModItems { KISS_CHEEV.setCreativeTab(CreativeTabs.MISC); KISS_CHEEV.setMaxStackSize(1); - event.getRegistry().registerAll(LOGO, KISS_CHEEV); + VORE_MENTIONED = new Item(); + VORE_MENTIONED.setRegistryName(Vixis.MODID, "vore_mentioned"); + VORE_MENTIONED.setTranslationKey(Vixis.MODID + ".vore_mentioned"); + VORE_MENTIONED.setCreativeTab(CreativeTabs.MISC); + VORE_MENTIONED.setMaxStackSize(1); + + PET_THAT_DOG = new Item(); + PET_THAT_DOG.setRegistryName(Vixis.MODID, "pet_that_dog"); + PET_THAT_DOG.setTranslationKey(Vixis.MODID + ".pet_that_dog"); + PET_THAT_DOG.setCreativeTab(CreativeTabs.MISC); + PET_THAT_DOG.setMaxStackSize(1); + + PAW_MENTIONED = new Item(); + PAW_MENTIONED.setRegistryName(Vixis.MODID, "paw_mentioned"); + PAW_MENTIONED.setTranslationKey(Vixis.MODID + ".paw_mentioned"); + PAW_MENTIONED.setCreativeTab(CreativeTabs.MISC); + PAW_MENTIONED.setMaxStackSize(1); + + event.getRegistry().registerAll(LOGO, KISS_CHEEV, VORE_MENTIONED, PET_THAT_DOG, PAW_MENTIONED); } } diff --git a/src/main/java/com/vixis/item/ModItemsClient.java b/src/main/java/com/vixis/item/ModItemsClient.java index 1527433..2a33996 100644 --- a/src/main/java/com/vixis/item/ModItemsClient.java +++ b/src/main/java/com/vixis/item/ModItemsClient.java @@ -18,6 +18,9 @@ public final class ModItemsClient { public static void registerModels(ModelRegistryEvent event) { register(ModItems.LOGO); register(ModItems.KISS_CHEEV); + register(ModItems.VORE_MENTIONED); + register(ModItems.PET_THAT_DOG); + register(ModItems.PAW_MENTIONED); } private static void register(Item item) { diff --git a/src/main/resources/assets/vixis/advancements/paw_mentioned.json b/src/main/resources/assets/vixis/advancements/paw_mentioned.json new file mode 100644 index 0000000..c560c1f --- /dev/null +++ b/src/main/resources/assets/vixis/advancements/paw_mentioned.json @@ -0,0 +1,23 @@ +{ + "parent": "vixis:root", + "display": { + "icon": { + "item": "vixis:paw_mentioned" + }, + "title": { + "translate": "advancements.vixis.paw_mentioned.title" + }, + "description": { + "translate": "advancements.vixis.paw_mentioned.description" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": true + }, + "criteria": { + "said_paw": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/vixis/advancements/pet_that_dog.json b/src/main/resources/assets/vixis/advancements/pet_that_dog.json new file mode 100644 index 0000000..985524d --- /dev/null +++ b/src/main/resources/assets/vixis/advancements/pet_that_dog.json @@ -0,0 +1,23 @@ +{ + "parent": "vixis:root", + "display": { + "icon": { + "item": "vixis:pet_that_dog" + }, + "title": { + "translate": "advancements.vixis.pet_that_dog.title" + }, + "description": { + "translate": "advancements.vixis.pet_that_dog.description" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": true + }, + "criteria": { + "petted_dog": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/vixis/advancements/vore_mentioned.json b/src/main/resources/assets/vixis/advancements/vore_mentioned.json new file mode 100644 index 0000000..be3531e --- /dev/null +++ b/src/main/resources/assets/vixis/advancements/vore_mentioned.json @@ -0,0 +1,23 @@ +{ + "parent": "vixis:root", + "display": { + "icon": { + "item": "vixis:vore_mentioned" + }, + "title": { + "translate": "advancements.vixis.vore_mentioned.title" + }, + "description": { + "translate": "advancements.vixis.vore_mentioned.description" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": true + }, + "criteria": { + "said_vore": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/vixis/lang/en_us.lang b/src/main/resources/assets/vixis/lang/en_us.lang index 69544f0..1023ef0 100644 --- a/src/main/resources/assets/vixis/lang/en_us.lang +++ b/src/main/resources/assets/vixis/lang/en_us.lang @@ -1,6 +1,15 @@ item.vixis.logo.name=Vixis item.vixis.kiss_cheev.name=Kiss Cheev +item.vixis.vore_mentioned.name=Vore Mentioned +item.vixis.pet_that_dog.name=Pet That Dog +item.vixis.paw_mentioned.name=Paw Mentioned advancements.vixis.root.title=Vixi's Mod advancements.vixis.root.description=My Mod! advancements.vixis.kiss_a_fox.title=Kiss a fox! advancements.vixis.kiss_a_fox.description=Smooch a fox good! +advancements.vixis.vore_mentioned.title=Vore Mentioned +advancements.vixis.vore_mentioned.description=You vored~ +advancements.vixis.pet_that_dog.title=Pet That Dog! +advancements.vixis.pet_that_dog.description=Pet a wolf or doggo! +advancements.vixis.paw_mentioned.title=Paw "Focus" +advancements.vixis.paw_mentioned.description=You said paw~ diff --git a/src/main/resources/assets/vixis/models/item/paw_mentioned.json b/src/main/resources/assets/vixis/models/item/paw_mentioned.json new file mode 100644 index 0000000..2f20ace --- /dev/null +++ b/src/main/resources/assets/vixis/models/item/paw_mentioned.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "vixis:items/paw_mentioned" + } +} diff --git a/src/main/resources/assets/vixis/models/item/pet_that_dog.json b/src/main/resources/assets/vixis/models/item/pet_that_dog.json new file mode 100644 index 0000000..d28901e --- /dev/null +++ b/src/main/resources/assets/vixis/models/item/pet_that_dog.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "vixis:items/pet_that_dog" + } +} diff --git a/src/main/resources/assets/vixis/models/item/vore_mentioned.json b/src/main/resources/assets/vixis/models/item/vore_mentioned.json new file mode 100644 index 0000000..352978d --- /dev/null +++ b/src/main/resources/assets/vixis/models/item/vore_mentioned.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "vixis:items/vore_mentioned" + } +} diff --git a/src/main/resources/assets/vixis/textures/items/paw_mentioned.png b/src/main/resources/assets/vixis/textures/items/paw_mentioned.png new file mode 100644 index 0000000..1d67dff Binary files /dev/null and b/src/main/resources/assets/vixis/textures/items/paw_mentioned.png differ diff --git a/src/main/resources/assets/vixis/textures/items/pet_that_dog.png b/src/main/resources/assets/vixis/textures/items/pet_that_dog.png new file mode 100644 index 0000000..2097995 Binary files /dev/null and b/src/main/resources/assets/vixis/textures/items/pet_that_dog.png differ diff --git a/src/main/resources/assets/vixis/textures/items/pet_that_dog.png~ b/src/main/resources/assets/vixis/textures/items/pet_that_dog.png~ new file mode 100644 index 0000000..3762a89 Binary files /dev/null and b/src/main/resources/assets/vixis/textures/items/pet_that_dog.png~ differ diff --git a/src/main/resources/assets/vixis/textures/items/vore_mentioned.png b/src/main/resources/assets/vixis/textures/items/vore_mentioned.png new file mode 100644 index 0000000..107b5fa Binary files /dev/null and b/src/main/resources/assets/vixis/textures/items/vore_mentioned.png differ