Skip to content

Commit

Permalink
Merge player chat simulation implementation. Merges #895.
Browse files Browse the repository at this point in the history
Signed-off-by: Gabriel Harris-Rouquette <gabizou@me.com>
  • Loading branch information
gabizou committed Feb 25, 2017
2 parents 0e7c05a + 83ec70d commit 162ab1f
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
2 changes: 1 addition & 1 deletion SpongeAPI
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
import net.minecraft.util.SoundEvent;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextComponentTranslation;
import net.minecraft.world.GameRules;
import net.minecraft.world.GameType;
import net.minecraft.world.IInteractionObject;
Expand All @@ -95,6 +96,8 @@
import org.spongepowered.api.event.entity.MoveEntityEvent;
import org.spongepowered.api.event.entity.living.humanoid.ChangeGameModeEvent;
import org.spongepowered.api.event.entity.living.humanoid.player.PlayerChangeClientSettingsEvent;
import org.spongepowered.api.event.message.MessageChannelEvent;
import org.spongepowered.api.event.message.MessageEvent;
import org.spongepowered.api.item.inventory.Carrier;
import org.spongepowered.api.item.inventory.Container;
import org.spongepowered.api.item.inventory.Inventory;
Expand Down Expand Up @@ -856,4 +859,24 @@ public Optional<org.spongepowered.api.entity.Entity> getSpectatorTarget() {
public void setSpectatorTarget(@Nullable org.spongepowered.api.entity.Entity entity) {
this.setSpectatingEntity((Entity) entity);
}

@Override
public MessageChannelEvent.Chat simulateChat(Text message, Cause cause) {
checkNotNull(message, "message");

TextComponentTranslation component = new TextComponentTranslation("chat.type.text", SpongeTexts.toComponent(this.getDisplayNameText()),
SpongeTexts.toComponent(message));
final Text[] messages = SpongeTexts.splitChatMessage(component);

final MessageChannel originalChannel = this.getMessageChannel();
final MessageChannelEvent.Chat event = SpongeEventFactory.createMessageChannelEventChat(
cause, originalChannel, Optional.of(originalChannel),
new MessageEvent.MessageFormatter(messages[0], messages[1]), message, false
);
if (!SpongeImpl.postEvent(event) && !event.isMessageCancelled()) {
event.getChannel().ifPresent(channel -> channel.send(this, event.getMessage(), ChatTypes.CHAT));
}
return event;
}

}

0 comments on commit 162ab1f

Please sign in to comment.