Skip to content

Commit

Permalink
Merge pull request #84 from Son-Blok/main
Browse files Browse the repository at this point in the history
fix towny events
  • Loading branch information
poyrazinan committed Aug 17, 2024
2 parents 8f39e62 + 56dd262 commit c16c027
Showing 1 changed file with 11 additions and 23 deletions.
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());

}

}

0 comments on commit c16c027

Please sign in to comment.