mirror of
https://github.com/LuckPerms/LuckPerms.git
synced 2024-11-04 01:49:31 +01:00
Add PlayerDataSaveEvent
This commit is contained in:
parent
64838708ab
commit
51f215b8ac
@ -0,0 +1,69 @@
|
||||
/*
|
||||
* This file is part of LuckPerms, licensed under the MIT License.
|
||||
*
|
||||
* Copyright (c) lucko (Luck) <luck@lucko.me>
|
||||
* Copyright (c) contributors
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
package me.lucko.luckperms.api.event.player;
|
||||
|
||||
import me.lucko.luckperms.api.PlayerSaveResult;
|
||||
import me.lucko.luckperms.api.event.LuckPermsEvent;
|
||||
import me.lucko.luckperms.api.manager.UserManager;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
/**
|
||||
* Called when player data is saved to the storage.
|
||||
*
|
||||
* <p>Data can be saved using {@link UserManager#savePlayerData(UUID, String)}.</p>
|
||||
*
|
||||
* @since 4.3
|
||||
*/
|
||||
public interface PlayerDataSaveEvent extends LuckPermsEvent {
|
||||
|
||||
/**
|
||||
* Gets the unique ID that was saved.
|
||||
*
|
||||
* @return the uuid
|
||||
*/
|
||||
@Nonnull
|
||||
UUID getUuid();
|
||||
|
||||
/**
|
||||
* Gets the username that was saved.
|
||||
*
|
||||
* @return the username
|
||||
*/
|
||||
@Nonnull
|
||||
String getUsername();
|
||||
|
||||
/**
|
||||
* Gets the result of the operation.
|
||||
*
|
||||
* @return the result
|
||||
*/
|
||||
@Nonnull
|
||||
PlayerSaveResult getResult();
|
||||
|
||||
}
|
@ -32,7 +32,7 @@ import me.lucko.luckperms.api.event.LuckPermsEvent;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
/**
|
||||
* Called when a users {@link me.lucko.luckperms.api.caching.UserData} is loaded.
|
||||
* Called when a users {@link UserData} is loaded.
|
||||
*/
|
||||
public interface UserCacheLoadEvent extends LuckPermsEvent {
|
||||
|
||||
|
@ -30,6 +30,7 @@ import com.google.common.collect.ImmutableSet;
|
||||
|
||||
import me.lucko.luckperms.api.LogEntry;
|
||||
import me.lucko.luckperms.api.Node;
|
||||
import me.lucko.luckperms.api.PlayerSaveResult;
|
||||
import me.lucko.luckperms.api.caching.GroupData;
|
||||
import me.lucko.luckperms.api.caching.UserData;
|
||||
import me.lucko.luckperms.api.event.LuckPermsEvent;
|
||||
@ -55,6 +56,7 @@ import me.lucko.luckperms.common.event.impl.EventLogReceive;
|
||||
import me.lucko.luckperms.common.event.impl.EventNodeAdd;
|
||||
import me.lucko.luckperms.common.event.impl.EventNodeClear;
|
||||
import me.lucko.luckperms.common.event.impl.EventNodeRemove;
|
||||
import me.lucko.luckperms.common.event.impl.EventPlayerDataSave;
|
||||
import me.lucko.luckperms.common.event.impl.EventPostSync;
|
||||
import me.lucko.luckperms.common.event.impl.EventPreNetworkSync;
|
||||
import me.lucko.luckperms.common.event.impl.EventPreSync;
|
||||
@ -261,6 +263,11 @@ public final class EventFactory {
|
||||
fireEventAsync(event);
|
||||
}
|
||||
|
||||
public void handlePlayerDataSave(UUID uuid, String username, PlayerSaveResult result) {
|
||||
EventPlayerDataSave event = new EventPlayerDataSave(uuid, username, result);
|
||||
fireEventAsync(event);
|
||||
}
|
||||
|
||||
public void handleUserLoad(User user) {
|
||||
EventUserLoad event = new EventUserLoad(new ApiUser(user));
|
||||
fireEventAsync(event);
|
||||
|
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* This file is part of LuckPerms, licensed under the MIT License.
|
||||
*
|
||||
* Copyright (c) lucko (Luck) <luck@lucko.me>
|
||||
* Copyright (c) contributors
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
package me.lucko.luckperms.common.event.impl;
|
||||
|
||||
import me.lucko.luckperms.api.PlayerSaveResult;
|
||||
import me.lucko.luckperms.api.event.player.PlayerDataSaveEvent;
|
||||
import me.lucko.luckperms.common.event.AbstractEvent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public class EventPlayerDataSave extends AbstractEvent implements PlayerDataSaveEvent {
|
||||
private final UUID uuid;
|
||||
private final String username;
|
||||
private final PlayerSaveResult result;
|
||||
|
||||
public EventPlayerDataSave(UUID uuid, String username, PlayerSaveResult result) {
|
||||
this.uuid = uuid;
|
||||
this.username = username;
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public UUID getUuid() {
|
||||
return this.uuid;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getUsername() {
|
||||
return this.username;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public PlayerSaveResult getResult() {
|
||||
return this.result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "PlayerDataSaveEvent(" +
|
||||
"uuid=" + this.uuid + ", " +
|
||||
"username=" + this.username + ", " +
|
||||
"result=" + this.result + ")";
|
||||
}
|
||||
}
|
@ -283,7 +283,13 @@ public class AbstractStorage implements Storage {
|
||||
|
||||
@Override
|
||||
public CompletableFuture<PlayerSaveResult> savePlayerData(UUID uuid, String username) {
|
||||
return makeFuture(() -> this.dao.savePlayerData(uuid, username));
|
||||
return makeFuture(() -> {
|
||||
PlayerSaveResult result = this.dao.savePlayerData(uuid, username);
|
||||
if (result != null) {
|
||||
this.plugin.getEventFactory().handlePlayerDataSave(uuid, username, result);
|
||||
}
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -132,4 +132,9 @@ public final class PlayerSaveResultImpl implements PlayerSaveResult {
|
||||
public int hashCode() {
|
||||
return Objects.hash(this.status, this.oldUsername, this.otherUuids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "PlayerSaveResult(status=" + this.status + ", oldUsername=" + this.oldUsername + ", otherUuids=" + this.otherUuids + ")";
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user