Skip to content

Commit

Permalink
Use a second metadata class for clipboard shares
Browse files Browse the repository at this point in the history
  • Loading branch information
me4502 committed May 23, 2021
1 parent 9fde057 commit 22ba8e0
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 7 deletions.
Expand Up @@ -39,6 +39,7 @@
import com.sk89q.worldedit.extent.clipboard.io.ClipboardReader;
import com.sk89q.worldedit.extent.clipboard.io.ClipboardWriter;
import com.sk89q.worldedit.extent.clipboard.io.share.ClipboardShareDestination;
import com.sk89q.worldedit.extent.clipboard.io.share.ClipboardShareMetadata;
import com.sk89q.worldedit.internal.util.LogManagerCompat;
import com.sk89q.worldedit.math.transform.Transform;
import com.sk89q.worldedit.session.ClipboardHolder;
Expand All @@ -55,7 +56,6 @@
import com.sk89q.worldedit.util.io.Closer;
import com.sk89q.worldedit.util.io.file.FilenameException;
import com.sk89q.worldedit.util.io.file.MorePaths;
import com.sk89q.worldedit.util.paste.PasteMetadata;
import org.apache.logging.log4j.Logger;
import org.enginehub.piston.annotation.Command;
import org.enginehub.piston.annotation.CommandContainer;
Expand Down Expand Up @@ -430,7 +430,7 @@ private static class SchematicShareTask implements Callable<URL> {

@Override
public URL call() throws Exception {
PasteMetadata metadata = new PasteMetadata();
ClipboardShareMetadata metadata = new ClipboardShareMetadata();
metadata.author = this.actor.getName();
metadata.name = name == null ? actor.getName() + "-" + System.currentTimeMillis() : name;

Expand Down
Expand Up @@ -53,7 +53,7 @@ public String getName() {
}

@Override
public URL share(ClipboardHolder holder, ClipboardFormat format, PasteMetadata metadata) throws Exception {
public URL share(ClipboardHolder holder, ClipboardFormat format, ClipboardShareMetadata metadata) throws Exception {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
Clipboard clipboard = holder.getClipboard();
Transform transform = holder.getTransform();
Expand All @@ -73,9 +73,12 @@ public URL share(ClipboardHolder holder, ClipboardFormat format, PasteMetadata m
writer.write(target);
}

metadata.extension = "schem";
PasteMetadata pasteMetadata = new PasteMetadata();
pasteMetadata.author = metadata.author;
pasteMetadata.extension = "schem";
pasteMetadata.name = metadata.name;
EngineHubPaste pasteService = new EngineHubPaste();
return pasteService.paste(new String(Base64.getEncoder().encode(outputStream.toByteArray()), StandardCharsets.UTF_8), metadata).call();
return pasteService.paste(new String(Base64.getEncoder().encode(outputStream.toByteArray()), StandardCharsets.UTF_8), pasteMetadata).call();
}

@Override
Expand Down
Expand Up @@ -21,7 +21,6 @@

import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat;
import com.sk89q.worldedit.session.ClipboardHolder;
import com.sk89q.worldedit.util.paste.PasteMetadata;

import java.net.URL;
import java.util.Set;
Expand Down Expand Up @@ -51,7 +50,7 @@ public interface ClipboardShareDestination {
* @return The URL
* @throws Exception if it failed to share
*/
URL share(ClipboardHolder holder, ClipboardFormat format, PasteMetadata metadata) throws Exception;
URL share(ClipboardHolder holder, ClipboardFormat format, ClipboardShareMetadata metadata) throws Exception;

/**
* Gets the default clipboard format for this share destination.
Expand Down
@@ -0,0 +1,28 @@
/*
* WorldEdit, a Minecraft world manipulation toolkit
* Copyright (C) sk89q <http://www.sk89q.com>
* Copyright (C) WorldEdit team and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/

package com.sk89q.worldedit.extent.clipboard.io.share;

/**
* Items of metadata about shared clipboards.
*/
public class ClipboardShareMetadata {
public String name;
public String author;
}

0 comments on commit 22ba8e0

Please sign in to comment.