Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix towny events #84

Merged
merged 1 commit into from
Aug 17, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import com.palmergames.bukkit.towny.event.DeleteTownEvent;
import com.palmergames.bukkit.towny.event.NewTownEvent;
import com.palmergames.bukkit.towny.event.TownAddResidentEvent;
import com.palmergames.bukkit.towny.event.TownRemoveResidentEvent;
import com.palmergames.bukkit.towny.event.player.PlayerEntersIntoTownBorderEvent;
import com.palmergames.bukkit.towny.event.town.TownKickEvent;
import com.palmergames.bukkit.towny.event.town.TownLeaveEvent;
Expand Down Expand Up @@ -71,45 +73,31 @@ public void transferTown(@NotNull TownMayorChangeEvent e) {
* @param e of event
*/
@EventHandler
public void townJoinEvent(@NotNull PlayerEntersIntoTownBorderEvent e) {
String townID = e.getEnteredTown().getUUID().toString();
public void townResidentAddEvent(@NotNull TownAddResidentEvent e) {
String townID = e.getTown().getUUID().toString();
if (!FarmerManager.getFarmers().containsKey(townID))
return;
UUID member = e.getPlayer().getUniqueId();
UUID member = e.getResident().getPlayer().getUniqueId();
Farmer farmer = FarmerManager.getFarmers().get(townID);
if (farmer.getUsers().stream().noneMatch(user -> user.getUuid().equals(member)))
farmer.addUser(member, Bukkit.getOfflinePlayer(member).getName(), FarmerPerm.COOP);
}

/**
* Removes user from farmer if added when leave
* @param e of event
*/
@EventHandler
public void townLeaveEvent(@NotNull TownLeaveEvent e) {
kickAndLeaveEvent(e.getTown().getUUID().toString(), e.getResident().getUUID());
}

/**
* Removes user from farmer if added when kick
* Removes user from farmer
* @param e of event
*/
@EventHandler
public void townKickEvent(@NotNull TownKickEvent e) {
kickAndLeaveEvent(e.getTown().getUUID().toString(), e.getKickedResident().getUUID());
}

/**
* Remove function of kick and leave event
*
* @param townID id of town
* @param member member of town
*/
private void kickAndLeaveEvent(String townID, UUID member) {
public void townResidentRemoveEvent(@NotNull TownRemoveResidentEvent e) {
String townID = e.getTown().getUUID().toString();
if (!FarmerManager.getFarmers().containsKey(townID))
return;
UUID member = e.getResident().getUUID();
Farmer farmer = FarmerManager.getFarmers().get(townID);
if (farmer.getUsers().stream().anyMatch(user -> user.getUuid().equals(member)))
farmer.removeUser(farmer.getUsers().stream().filter(user -> user.getUuid().equals(member)).findFirst().get());

}

}
Loading