Skip to content

Commit

Permalink
Merge pull request #3 from cabbagegod/settings
Browse files Browse the repository at this point in the history
Settings
  • Loading branch information
cabbagegod authored Mar 4, 2022
2 parents e39ed72 + 1ebd927 commit f620f50
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,14 @@

import com.cabbagegod.cabbagescape.commands.Commands;
import com.cabbagegod.cabbagescape.data.DataHandler;
import com.cabbagegod.cabbagescape.data.Settings;
import com.google.gson.Gson;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientEntityEvents;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.option.KeyBinding;
import net.minecraft.client.realms.util.JsonUtils;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityType;
import net.minecraft.item.ItemStack;
Expand All @@ -19,17 +22,19 @@

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

public class CabbageScapeClient implements ClientModInitializer {
public static String searchTagDir = "searchTags";
public static String settingsDir = "settings";

public static Settings settings;

//Keybinds
private static KeyBinding homeKey;
private static KeyBinding buildModeKey;
private static KeyBinding debugKey;

//Ground items
public static List<String> searchTags = new ArrayList<String>();
private List<Entity> armorStands = new ArrayList<Entity>();

@Override
Expand All @@ -45,25 +50,22 @@ public void onInitializeClient() {
}

private void loadSettings(){
String tagData = DataHandler.ReadStringFromFile(searchTagDir);
if(tagData.isEmpty())
return;
String settingsJson = DataHandler.ReadStringFromFile(settingsDir);

String[] tags = tagData.split(",");
for(String tag : tags){
searchTags.add(tag);
if(settingsJson.isEmpty() || settingsJson.isBlank()){
settings = new Settings();
return;
}

Gson gson = new Gson();
settings = gson.fromJson(settingsJson, Settings.class);
}

public static void saveSettings(){
String tagData = "";
for(String tag : searchTags){
tagData += tag + ",";
}
Gson gson = new Gson();
String settingsJson = gson.toJson(settings);

//Remove hanging ','
StringUtils.chop(tagData);
DataHandler.WriteStringToFile(tagData, searchTagDir);
DataHandler.WriteStringToFile(settingsJson, settingsDir);
}

private void setupEvents(){
Expand Down Expand Up @@ -104,14 +106,12 @@ private void checkSelectedDropItems(MinecraftClient client){
if(itemStack == null || itemStack.isEmpty() || itemStack.getItem() == Items.AIR)
continue;

for(String tag : searchTags){
if(Formatting.strip(itemStack.getName().getString().toLowerCase()).equals(tag)){
client.player.playSound(SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP, .05f, 1);
client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() + .5f, entity.getY() + 1, entity.getZ() + 1, 1, 1, 1);
client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() - .5f, entity.getY() + 1, entity.getZ() + 1, 1, 1, 1);
client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() + .5f, entity.getY() + 1, entity.getZ(), 1, 1, 1);
client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() - .5f, entity.getY() + 1, entity.getZ(), 1, 1, 1);
}
if(settings.groundItemSettings.searchTags.contains(Formatting.strip(itemStack.getName().getString().toLowerCase()))){
client.player.playSound(SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP, settings.groundItemSettings.volume, 1);
client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() + .5f, entity.getY() + 1, entity.getZ() + 1, 1, 1, 1);
client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() - .5f, entity.getY() + 1, entity.getZ() + 1, 1, 1, 1);
client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() + .5f, entity.getY() + 1, entity.getZ(), 1, 1, 1);
client.player.clientWorld.addParticle(ParticleTypes.ANGRY_VILLAGER, entity.getX() - .5f, entity.getY() + 1, entity.getZ(), 1, 1, 1);
}
}
}
Expand Down
28 changes: 22 additions & 6 deletions src/main/java/com/cabbagegod/cabbagescape/commands/Commands.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import com.cabbagegod.cabbagescape.client.CabbageScapeClient;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.FloatArgumentType;
import io.netty.util.internal.StringUtil;
import net.fabricmc.fabric.api.client.command.v1.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v1.FabricClientCommandSource;
import net.minecraft.client.MinecraftClient;
Expand All @@ -10,6 +12,7 @@
import net.minecraft.server.command.ServerCommandSource;
import net.minecraft.text.LiteralText;
import net.minecraft.text.Text;
import org.apache.commons.lang3.StringUtils;

public class Commands {
public static void register(){
Expand All @@ -19,10 +22,10 @@ public static void register(){
.executes(context -> {
Text text = ClientMessageArgumentType.getMessage(context, "item");

if(CabbageScapeClient.searchTags.contains(text.getString().toLowerCase())){
if(CabbageScapeClient.settings.groundItemSettings.searchTags.contains(text.getString().toLowerCase())){
MinecraftClient.getInstance().player.sendMessage(new LiteralText("Item " + text.getString() + " was already in your list."), false);
} else {
CabbageScapeClient.searchTags.add(text.getString().toLowerCase());
CabbageScapeClient.settings.groundItemSettings.searchTags.add(text.getString().toLowerCase());
CabbageScapeClient.saveSettings();
MinecraftClient.getInstance().player.sendMessage(new LiteralText("Item " + text.getString() + " has been added to your list."), false);
}
Expand All @@ -33,21 +36,34 @@ public static void register(){
.executes(context -> {
Text text = ClientMessageArgumentType.getMessage(context, "item");

if(CabbageScapeClient.searchTags.contains(text.getString().toLowerCase())){
CabbageScapeClient.searchTags.remove(text.getString().toLowerCase());
if(CabbageScapeClient.settings.groundItemSettings.searchTags.contains(text.getString().toLowerCase())){
CabbageScapeClient.settings.groundItemSettings.searchTags.remove(text.getString().toLowerCase());
CabbageScapeClient.saveSettings();
MinecraftClient.getInstance().player.sendMessage(new LiteralText("Item " + text.getString() + " has been removed from your list."), false);
} else {
MinecraftClient.getInstance().player.sendMessage(new LiteralText("Item " + text.getString() + " was not in your list."), false);
}
return 1;
})))
.then(ClientCommandManager.literal("volume")
.then(ClientCommandManager.argument("num", FloatArgumentType.floatArg(0,1))
.executes(context -> {
float volume = FloatArgumentType.getFloat(context, "num");

CabbageScapeClient.settings.groundItemSettings.volume = volume;

return 1;
})))
.then(ClientCommandManager.literal("list")
.executes(context -> {
assert MinecraftClient.getInstance().player != null;
for(String tag : CabbageScapeClient.searchTags){
MinecraftClient.getInstance().player.sendMessage(new LiteralText(tag), false);
String tagList = "Ground Item List: ";
for(String tag : CabbageScapeClient.settings.groundItemSettings.searchTags){
tagList += tag + ",";
}
tagList = StringUtils.chop(tagList);

MinecraftClient.getInstance().player.sendMessage(new LiteralText(tagList), false);
return 1;
})));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.cabbagegod.cabbagescape.data;

import java.util.ArrayList;
import java.util.List;

public class GroundItemSettings {
public List<String> searchTags = new ArrayList<String>();
public float volume = .05f;

public GroundItemSettings(){

}
}
13 changes: 13 additions & 0 deletions src/main/java/com/cabbagegod/cabbagescape/data/Settings.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.cabbagegod.cabbagescape.data;

import java.util.ArrayList;
import java.util.List;

public class Settings {
public GroundItemSettings groundItemSettings = new GroundItemSettings();

public Settings(){

}

}

0 comments on commit f620f50

Please sign in to comment.