Skip to content

Commit

Permalink
Add GameModeTrait
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed Nov 12, 2018
1 parent f47912f commit 3ca12de
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 1 deletion.
Expand Up @@ -75,6 +75,7 @@
import net.citizensnpcs.trait.Controllable;
import net.citizensnpcs.trait.CurrentLocation;
import net.citizensnpcs.trait.FollowTrait;
import net.citizensnpcs.trait.GameModeTrait;
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.trait.HorseModifiers;
import net.citizensnpcs.trait.LookClose;
Expand Down Expand Up @@ -564,7 +565,7 @@ public void gamemode(CommandContext args, CommandSender sender, NPC npc) {
Messaging.sendErrorTr(sender, Messages.GAMEMODE_INVALID, args.getString(1));
return;
}
player.setGameMode(mode);
npc.getTrait(GameModeTrait.class).setGameMode(mode);
Messaging.sendTr(sender, Messages.GAMEMODE_SET, mode.name().toLowerCase());
}

Expand Down
Expand Up @@ -25,6 +25,7 @@
import net.citizensnpcs.trait.Controllable;
import net.citizensnpcs.trait.CurrentLocation;
import net.citizensnpcs.trait.FollowTrait;
import net.citizensnpcs.trait.GameModeTrait;
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.trait.HorseModifiers;
import net.citizensnpcs.trait.LookClose;
Expand Down Expand Up @@ -57,6 +58,7 @@ public CitizensTraitFactory() {
registerTrait(TraitInfo.create(CurrentLocation.class));
registerTrait(TraitInfo.create(Equipment.class));
registerTrait(TraitInfo.create(FollowTrait.class));
registerTrait(TraitInfo.create(GameModeTrait.class));
registerTrait(TraitInfo.create(Gravity.class));
registerTrait(TraitInfo.create(HorseModifiers.class));
registerTrait(TraitInfo.create(Inventory.class));
Expand Down
29 changes: 29 additions & 0 deletions main/src/main/java/net/citizensnpcs/trait/GameModeTrait.java
@@ -0,0 +1,29 @@
package net.citizensnpcs.trait;

import org.bukkit.GameMode;
import org.bukkit.entity.Player;

import net.citizensnpcs.api.persistence.Persist;
import net.citizensnpcs.api.trait.Trait;
import net.citizensnpcs.api.trait.TraitName;

@TraitName("gamemodetrait")
public class GameModeTrait extends Trait {
@Persist
private GameMode mode;

public GameModeTrait() {
super("gamemodetrait");
}

@Override
public void run() {
if (npc.isSpawned() && npc.getEntity() instanceof Player && mode != null) {
((Player) npc.getEntity()).setGameMode(mode);
}
}

public void setGameMode(GameMode mode) {
this.mode = mode;
}
}

0 comments on commit 3ca12de

Please sign in to comment.