Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
PrinzPizza42 committed Jan 8, 2025
1 parent 8f08b20 commit 3101f11
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,12 @@ public void onAnvilPrepare(PrepareAnvilEvent event) {
}
String renameText = anvilView.getRenameText();
if(MainMenu.getSetHost().compareLocIDTo(loc)) {
finishAnvilInvAfterOpening(event, player);
finishAnvilInvAfterOpening(event, player, hostName);
if(renameText == null) return;
hostName = renameText;
}
else if(MainMenu.getSetServerName().compareLocIDTo(loc)) {
finishAnvilInvAfterOpening(event, player);
finishAnvilInvAfterOpening(event, player, serverName);
if(renameText == null) return;
serverName = renameText;
}
Expand Down Expand Up @@ -102,12 +102,13 @@ else if(MainMenu.getSetServerName().compareLocIDTo(loc)) {
}
}

private void finishAnvilInvAfterOpening(PrepareAnvilEvent event, Player player) {
private void finishAnvilInvAfterOpening(PrepareAnvilEvent event, Player player, String inputSlotTitle) {
ItemStack output = new ItemStack(Material.GREEN_CONCRETE);
ItemMeta outputItemMeta = output.getItemMeta();
outputItemMeta.displayName(Component.text(tf.getTranslation(player, "anvilOutput")));
output.setItemMeta(outputItemMeta);
event.setResult(output);

event.getView().setRepairCost(0);
}
}
55 changes: 36 additions & 19 deletions src/main/java/de/j/deathMinigames/settings/AnvilUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import de.j.deathMinigames.main.Config;
import de.j.stationofdoom.main.Main;
import de.j.stationofdoom.util.Tablist;
import de.j.stationofdoom.util.translations.TranslationFactory;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
Expand All @@ -19,34 +20,21 @@

public class AnvilUI implements InventoryHolder {
private Location loc = null;
private final ItemStack firstSlot = new ItemStack(Material.RED_CONCRETE);
private ItemStack input = new ItemStack(Material.RED_CONCRETE);
Player player = null;
private MainMenu.AnvilUIs title;

public AnvilUI(MainMenu.AnvilUIs title) {
if(title == null) return;
this.title = title;
createUniqueLocation();
ItemMeta paperMeta = firstSlot.getItemMeta();
switch (title) {
case SET_HOST_NAME:
if(Config.getInstance().getHostetBy() != null) paperMeta.displayName(Component.text(Config.getInstance().getHostetBy()));
else paperMeta.displayName(Component.text("kein Name gesetzt / no name set"));
break;
case SET_SERVER_NAME:
if(Config.getInstance().getServerName() != null) paperMeta.displayName(Component.text(Config.getInstance().getServerName()));
else paperMeta.displayName(Component.text("kein Name gesetzt / no name set"));
break;
case DEFAULT:
paperMeta.displayName(Component.text(""));
break;
default:
throw new IllegalArgumentException("Unexpected AnvilUI title: " + title);
}
firstSlot.setItemMeta(paperMeta);
setInputMeta();
}

public void showInventory(Player playerToShowTheInvTo) {
if(playerToShowTheInvTo == null) return;
playerToShowTheInvTo.openAnvil(loc, true);
playerToShowTheInvTo.getOpenInventory().getTopInventory().addItem(firstSlot);
player.getOpenInventory().getTopInventory().setItem(0, input);
}

@Override
Expand All @@ -70,4 +58,33 @@ private void createUniqueLocation() {
public boolean compareLocIDTo(Location loc) {
return loc.getBlockX() == this.loc.getBlockX() && loc.getBlockZ() == this.loc.getBlockZ();
}

public void setPlayerForTranslations(Player player) {
this.player = player;
setInputMeta();
}

private void setInputMeta() {
ItemMeta inputMeta = input.getItemMeta();
String inputItemName = null;
if(player == null) {
inputMeta.displayName(Component.text("default"));
}
else {
switch (title) {
case SET_HOST_NAME -> inputItemName = Tablist.getHostetBy();
case SET_SERVER_NAME -> inputItemName = Tablist.getServerName();
}
if(inputItemName == null) {
inputMeta.displayName(Component.text(new TranslationFactory().getTranslation(player, "noNameSet")));
}
else {
inputMeta.displayName(Component.text(inputItemName));
}
}
input.setItemMeta(inputMeta);
if(player != null) {
showInventory(player);
}
}
}
8 changes: 8 additions & 0 deletions src/main/java/de/j/deathMinigames/settings/MainMenu.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package de.j.deathMinigames.settings;

import de.j.stationofdoom.main.Main;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
Expand Down Expand Up @@ -104,9 +105,16 @@ public synchronized static AnvilUI getSetServerName() {
*/
public void showPlayerSettings(Player player) {
addSubmenus();
tellCurrentPlayerToUIs(player);
showPlayerInv(player);
}

private void tellCurrentPlayerToUIs(Player player) {
setHost.setPlayerForTranslations(player);
setServerName.setPlayerForTranslations(player);
Main.getMainLogger().info("Told UIs current player: " + player.getName());
}

/**
* Adds clickable items to the main menu that link to the sub-menus.
* The items are added in the following order:
Expand Down
6 changes: 4 additions & 2 deletions src/main/resources/translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@
"cmdUsageLength1": "Dein Command hat nicht geklappt, versuche /game <dein Command>",
"somethingWentWrong": "Etwas ist schief gelaufen",
"invalidDifficulty": "Die Schwierigkeit muss zwischen 0 und 10 sein",
"anvilOutput": "klicke hier um zu bestätigen"
"anvilOutput": "klicke hier um zu bestätigen",
"noNameSet": "kein Name gesetzt"
}
],
"en-US": [
Expand Down Expand Up @@ -168,7 +169,8 @@
"cmdUsageLength1": "Your command did not work, try /game <your command>",
"somethingWentWrong": "Something went wrong",
"invalidDifficulty": "The difficulty has to be between 0 and 10",
"anvilOutput": "Click here to accept"
"anvilOutput": "Click here to accept",
"noNameSet": "No name set"
}
]
}

0 comments on commit 3101f11

Please sign in to comment.