-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
allow players to toggle seeing villager death messages
- Loading branch information
1 parent
695c521
commit 72ac8ce
Showing
6 changed files
with
174 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
57 changes: 57 additions & 0 deletions
57
src/main/java/io/github/seriousguy888/billzovillagers/DataManager.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
package io.github.seriousguy888.billzovillagers; | ||
|
||
import org.bukkit.Bukkit; | ||
import org.bukkit.entity.Player; | ||
|
||
import java.io.IOException; | ||
|
||
public class DataManager { | ||
private final BillzoVillagers plugin; | ||
public DataManager() { | ||
plugin = BillzoVillagers.getPlugin(); | ||
} | ||
|
||
/** | ||
* Load in the preferences and data of all currently online players from data.yml. | ||
*/ | ||
public void loadPlayerData() { | ||
Bukkit.getOnlinePlayers().forEach(this::loadPlayerData); | ||
} | ||
|
||
/** | ||
* Load the preferences and data of a player from data.yml. | ||
* @param player The player to load the data for. | ||
*/ | ||
public void loadPlayerData(Player player) { | ||
String uuid = player.getUniqueId().toString(); | ||
boolean deathMessagesEnabled = true; | ||
|
||
if(plugin.dataConfig.contains(uuid + ".death_messages_enabled")) | ||
deathMessagesEnabled = plugin.dataConfig.getBoolean(uuid + ".death_messages_enabled"); | ||
plugin.villagerDeathMessagesEnabled.put(player, deathMessagesEnabled); | ||
} | ||
|
||
|
||
/** | ||
* Save the preferences and data of all currently online players to data.yml. | ||
*/ | ||
public void savePlayerData() { | ||
Bukkit.getOnlinePlayers().forEach(this::savePlayerData); | ||
} | ||
|
||
/** | ||
* Save the preferences and data of a player and write it to data.yml. | ||
* @param player The player to save the data for. | ||
*/ | ||
public void savePlayerData(Player player) { | ||
String uuid = player.getUniqueId().toString(); | ||
Boolean enabled = BillzoVillagers.getPlugin().villagerDeathMessagesEnabled.get(player); | ||
|
||
plugin.dataConfig.set(uuid + ".enabled", enabled); | ||
try { | ||
plugin.dataConfig.save(BillzoVillagers.getPlugin().dataFile); | ||
} catch (IOException e) { | ||
e.printStackTrace(); | ||
} | ||
} | ||
} |
37 changes: 37 additions & 0 deletions
37
.../io/github/seriousguy888/billzovillagers/commands/ToggleVillagerDeathMessagesCommand.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
package io.github.seriousguy888.billzovillagers.commands; | ||
|
||
import io.github.seriousguy888.billzovillagers.BillzoVillagers; | ||
import org.bukkit.ChatColor; | ||
import org.bukkit.command.Command; | ||
import org.bukkit.command.CommandExecutor; | ||
import org.bukkit.command.CommandSender; | ||
import org.bukkit.entity.Player; | ||
import org.jetbrains.annotations.NotNull; | ||
|
||
public class ToggleVillagerDeathMessagesCommand implements CommandExecutor { | ||
BillzoVillagers plugin; | ||
public ToggleVillagerDeathMessagesCommand() { | ||
plugin = BillzoVillagers.getPlugin(); | ||
} | ||
|
||
@Override | ||
public boolean onCommand(@NotNull CommandSender sender, | ||
@NotNull Command command, | ||
@NotNull String commandLabel, | ||
String[] args) { | ||
if(!(sender instanceof Player player)) { | ||
sender.sendMessage("The console cannot use this command!"); | ||
return true; | ||
} | ||
|
||
Boolean enabled = plugin.villagerDeathMessagesEnabled.get(player); | ||
|
||
player.sendMessage(ChatColor.YELLOW | ||
+ "You will " | ||
+ (enabled ? "no longer" : "now") | ||
+ " see villager death messages in chat."); | ||
plugin.villagerDeathMessagesEnabled.put(player, !enabled); | ||
|
||
return true; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
28 changes: 28 additions & 0 deletions
28
src/main/java/io/github/seriousguy888/billzovillagers/listeners/JoinLeaveListener.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
package io.github.seriousguy888.billzovillagers.listeners; | ||
|
||
|
||
import io.github.seriousguy888.billzovillagers.BillzoVillagers; | ||
import org.bukkit.entity.Player; | ||
import org.bukkit.event.EventHandler; | ||
import org.bukkit.event.Listener; | ||
import org.bukkit.event.player.PlayerJoinEvent; | ||
import org.bukkit.event.player.PlayerQuitEvent; | ||
|
||
public class JoinLeaveListener implements Listener { | ||
BillzoVillagers plugin; | ||
public JoinLeaveListener() { | ||
plugin = BillzoVillagers.getPlugin(); | ||
} | ||
|
||
@EventHandler | ||
public void onJoin(PlayerJoinEvent event) { | ||
Player player = event.getPlayer(); | ||
plugin.dataManager.loadPlayerData(player); | ||
} | ||
|
||
@EventHandler | ||
public void onLeave(PlayerQuitEvent event) { | ||
Player player = event.getPlayer(); | ||
plugin.dataManager.savePlayerData(player); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters