Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
WiIIiam278 committed Oct 27, 2024
2 parents 159120c + 27a4dcc commit 1a49dd3
Show file tree
Hide file tree
Showing 12 changed files with 239 additions and 7 deletions.
2 changes: 1 addition & 1 deletion bukkit/build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
dependencies {
implementation project(':common')

implementation 'org.bstats:bstats-bukkit:3.0.3'
implementation 'org.bstats:bstats-bukkit:3.1.0'
implementation 'io.papermc:paperlib:1.0.8'
implementation 'space.arim.morepaperlib:morepaperlib:0.4.4'
implementation 'net.kyori:adventure-platform-bukkit:4.3.4'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,11 @@ default <T extends Event> boolean fireIsCancelled(@NotNull T event) {
@Override
@NotNull
default ITeleportEvent getTeleportEvent(@NotNull Teleport teleport) {
return teleport.getType() == Teleport.Type.BACK ? new TeleportBackEvent(teleport) : new TeleportEvent(teleport);
return switch (teleport.getType()) {
case BACK -> new TeleportBackEvent(teleport);
case RANDOM_TELEPORT -> new RandomTeleportEvent(teleport);
default -> new TeleportEvent(teleport);
};
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/*
* This file is part of HuskHomes, licensed under the Apache License 2.0.
*
* Copyright (c) William278 <[email protected]>
* Copyright (c) contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package net.william278.huskhomes.event;

import net.william278.huskhomes.position.Position;
import net.william278.huskhomes.teleport.Teleport;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;

public class RandomTeleportEvent extends TeleportEvent implements IRandomTeleportEvent, Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();

public RandomTeleportEvent(@NotNull Teleport teleport) {
super(teleport);
}

@Override
@NotNull
public Position getPosition() {
return (Position) getTeleport().getTarget();
}

@NotNull
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}

@SuppressWarnings("unused")
public static HandlerList getHandlerList() {
return HANDLER_LIST;
}
}
2 changes: 1 addition & 1 deletion common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ dependencies {
api 'net.william278:minedown:1.8.2'
api 'net.william278:paginedown:1.1.2'
api 'net.william278:DesertWell:2.0.4'
api 'commons-io:commons-io:2.16.1'
api 'commons-io:commons-io:2.17.0'
api 'org.apache.commons:commons-text:1.12.0'
api 'com.google.code.gson:gson:2.11.0'
api 'com.github.Exlll.ConfigLib:configlib-yaml:v4.5.0'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ private void performLocalRTP(@NotNull OnlineUser teleporter, @NotNull CommandUse
// Build and execute the teleport
final TeleportBuilder builder = Teleport.builder(plugin)
.teleporter(teleporter)
.type(Teleport.Type.RANDOM_TELEPORT)
.actions(TransactionResolver.Action.RANDOM_TELEPORT)
.target(position.get());
builder.buildAndComplete(executor.equals(teleporter), args);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
* This file is part of HuskHomes, licensed under the Apache License 2.0.
*
* Copyright (c) William278 <[email protected]>
* Copyright (c) contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package net.william278.huskhomes.event;

import net.william278.huskhomes.position.Position;
import org.jetbrains.annotations.NotNull;

public interface IRandomTeleportEvent extends ITeleportEvent {

@NotNull
Position getPosition();

}
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,8 @@ private void performTransactions() {
public enum Type {
TELEPORT(0),
RESPAWN(1),
BACK(2);
BACK(2),
RANDOM_TELEPORT(3);

private final int typeId;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/*
* This file is part of HuskHomes, licensed under the Apache License 2.0.
*
* Copyright (c) William278 <[email protected]>
* Copyright (c) contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package net.william278.huskhomes.event;

import net.fabricmc.fabric.api.event.Event;
import net.fabricmc.fabric.api.event.EventFactory;
import net.minecraft.util.ActionResult;
import net.william278.huskhomes.position.Position;
import net.william278.huskhomes.teleport.Teleport;
import org.jetbrains.annotations.NotNull;

import java.util.function.Function;

public interface RandomTeleportCallback extends FabricEventCallback<IRandomTeleportEvent> {
@NotNull
Event<RandomTeleportCallback> EVENT = EventFactory.createArrayBacked(RandomTeleportCallback.class,
(listeners) -> (event) -> {
for (RandomTeleportCallback listener : listeners) {
final ActionResult result = listener.invoke(event);
if (event.isCancelled()) {
return ActionResult.FAIL;
} else if (result == ActionResult.FAIL) {
event.setCancelled(true);
return result;
}
}

return ActionResult.PASS;
});

@NotNull
Function<Teleport, IRandomTeleportEvent> SUPPLIER = (teleport) ->
new IRandomTeleportEvent() {
private boolean cancelled = false;

@Override
@NotNull
public Position getPosition() {
return (Position) getTeleport().getTarget();
}

@Override
@NotNull
public Teleport getTeleport() {
return teleport;
}

@Override
public void setCancelled(boolean cancelled) {
this.cancelled = cancelled;
}

@Override
public boolean isCancelled() {
return cancelled;
}

public @NotNull Event<RandomTeleportCallback> getEvent() {
return EVENT;
}

};
}
2 changes: 1 addition & 1 deletion paper/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ dependencies {
compileOnly project(':common')

compileOnly 'io.papermc.paper:paper-api:1.19.4-R0.1-SNAPSHOT'
compileOnly 'org.bstats:bstats-bukkit:3.0.3'
compileOnly 'org.bstats:bstats-bukkit:3.1.0'
compileOnly 'org.jetbrains:annotations:24.1.0'
compileOnly 'net.william278:minedown:1.8.2'
compileOnly 'net.william278:DesertWell:2.0.4'
Expand Down
2 changes: 1 addition & 1 deletion sponge/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ plugins {
dependencies {
implementation project(path: ':common')

implementation 'org.bstats:bstats-sponge:3.0.3'
implementation 'org.bstats:bstats-sponge:3.1.0'
implementation "redis.clients:jedis:${jedis_version}"
implementation "com.mysql:mysql-connector-j:${mysql_driver_version}"
implementation "org.mariadb.jdbc:mariadb-java-client:${mariadb_driver_version}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ default <T extends net.william278.huskhomes.event.Event> boolean fireIsCancelled
@Override
@NotNull
default ITeleportEvent getTeleportEvent(@NotNull Teleport teleport) {
return new SpongeTeleportEvent(teleport);
return teleport.getType() == Teleport.Type.RANDOM_TELEPORT ? new SpongeRandomTeleportEvent(teleport) :
new SpongeTeleportEvent(teleport);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
/*
* This file is part of HuskHomes, licensed under the Apache License 2.0.
*
* Copyright (c) William278 <[email protected]>
* Copyright (c) contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package net.william278.huskhomes.event;

import net.william278.huskhomes.position.Position;
import net.william278.huskhomes.teleport.Teleport;
import org.jetbrains.annotations.NotNull;
import org.spongepowered.api.event.Cancellable;
import org.spongepowered.api.event.Cause;
import org.spongepowered.api.event.Event;

public class SpongeRandomTeleportEvent implements IRandomTeleportEvent, Event, Cancellable {

private boolean cancelled = false;
private final Teleport teleport;

public SpongeRandomTeleportEvent(@NotNull Teleport teleport) {
this.teleport = teleport;
}

@Override
public void setCancelled(boolean cancelled) {
this.cancelled = cancelled;
}

@Override
public boolean isCancelled() {
return cancelled;
}

@NotNull
@Override
public Teleport getTeleport() {
return teleport;
}

@Override
public Cause cause() {
return Cause.builder()
.append(teleport.getTeleporter())
.build();
}

@Override
public @NotNull Position getPosition() {
return (Position) teleport.getTarget();
}
}

0 comments on commit 1a49dd3

Please sign in to comment.