Skip to content

Commit

Permalink
Implement data removing after island deletion.
Browse files Browse the repository at this point in the history
  • Loading branch information
BONNe committed Dec 31, 2020
1 parent 1b02cb4 commit 183bbf9
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
//
// Created by BONNe
// Copyright - 2020
//


package world.bentobox.visit.listeners;


import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;

import world.bentobox.bentobox.api.events.island.IslandDeleteEvent;
import world.bentobox.visit.VisitAddon;


/**
* This listener deletes island data after it is removed.
*/
public class IslandEventsListener implements Listener
{
/**
* @param addon - addon
*/
public IslandEventsListener(VisitAddon addon)
{
this.addon = addon;
}


/**
* This method handles island deletion. On island deletion it should remove generator data too.
*
* @param event IslandDeletedEvent instance.
*/
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onIslandDelete(IslandDeleteEvent event)
{
this.addon.getAddonManager().removeData(event.getIsland());
}


/**
* stores addon instance
*/
private final VisitAddon addon;
}
29 changes: 14 additions & 15 deletions src/main/java/world/bentobox/visit/managers/VisitAddonManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.eclipse.jdt.annotation.NonNull;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -65,7 +65,7 @@ public void load()
*
* @param islandSettings object that must be loaded in local cache
*/
private void loadSettings(@NonNull IslandVisitSettings islandSettings)
private void loadSettings(@NotNull IslandVisitSettings islandSettings)
{
this.loadSettings(islandSettings, true, null, true);
}
Expand All @@ -81,23 +81,11 @@ private void loadSettings(@NonNull IslandVisitSettings islandSettings)
* @param silent of type boolean that indicate if message to user must be sent.
* @return boolean that indicate about load status.
*/
public boolean loadSettings(@NonNull IslandVisitSettings islandSettings,
public boolean loadSettings(@NotNull IslandVisitSettings islandSettings,
boolean overwrite,
User user,
boolean silent)
{
// This may happen if database somehow failed to load challenge and return
// null as input.
if (islandSettings == null)
{
if (!silent)
{
user.sendMessage("load-error", "[value]", "NULL");
}

return false;
}

if (this.visitSettingsCacheData.containsKey(islandSettings.getUniqueId()))
{
if (!overwrite)
Expand Down Expand Up @@ -176,6 +164,17 @@ public void wipeDatabase()
}


/**
* This method removes data from database for given island.
* @param island Island which data must be removed.
*/
public void removeData(@NotNull Island island)
{
this.visitSettingsCacheData.remove(island.getUniqueId());
this.visitSettingsDatabase.deleteID(island.getUniqueId());
}


/**
* This method returns island visit settings object from cache for given island.
*
Expand Down

0 comments on commit 183bbf9

Please sign in to comment.