use of net.minecraft.server.v1_16_R3.Entity in project osmosis by openstreetmap.
the class ChangeDeriverTest method rightEmpty.
/**
* Deriving change with an empty right input should yield
* a change with creates only.
*
* @throws Exception if something goes wrong.
*/
@Test
public void rightEmpty() throws Exception {
// Cannot be tested with file comparison as the derived
// change contains deletes which have a current timestamp
// that cannot be reliably predicted.
// Therefore, check all relevant attributes manually.
ChangeDeriver deriver = new ChangeDeriver(1);
RunnableSource left = new XmlReader(dataUtils.createDataFile("v0_6/derive_change/simple.osm"), true, CompressionMethod.None);
RunnableSource right = new EmptyReader();
SinkChangeInspector result = RunTaskUtilities.run(deriver, left, right);
List<ChangeContainer> changes = result.getProcessedChanges();
Assert.assertEquals(3, changes.size());
for (ChangeContainer changeContainer : changes) {
Assert.assertEquals(ChangeAction.Delete, changeContainer.getAction());
}
Entity e;
e = changes.get(0).getEntityContainer().getEntity();
Assert.assertEquals(EntityType.Node, e.getType());
Assert.assertEquals(10, e.getId());
Assert.assertEquals(34, e.getVersion());
e = changes.get(1).getEntityContainer().getEntity();
Assert.assertEquals(EntityType.Way, e.getType());
Assert.assertEquals(100, e.getId());
Assert.assertEquals(56, e.getVersion());
e = changes.get(2).getEntityContainer().getEntity();
Assert.assertEquals(EntityType.Relation, e.getType());
Assert.assertEquals(1000, e.getId());
Assert.assertEquals(78, e.getVersion());
}
use of net.minecraft.server.v1_16_R3.Entity in project osmosis by openstreetmap.
the class EntityHistoryListReader method next.
/**
* {@inheritDoc}
*/
@Override
public List<ChangeContainer> next() {
List<ChangeContainer> changeList;
Entity peekEntity;
long currentId;
EntityType currentEntityType;
// Get the next change from the underlying stream.
peekEntity = sourceIterator.peekNext().getEntityContainer().getEntity();
currentId = peekEntity.getId();
currentEntityType = peekEntity.getType();
// Loop until all history values for the current element are exhausted.
changeList = new ArrayList<ChangeContainer>();
while (sourceIterator.hasNext()) {
ChangeContainer tmpChangeContainer = sourceIterator.peekNext();
// Break out of the loop when we reach the next entity in the stream.
if (currentId != tmpChangeContainer.getEntityContainer().getEntity().getId() || !currentEntityType.equals(tmpChangeContainer.getEntityContainer().getEntity().getType())) {
break;
}
// We want the value that we have already peeked from the iterator, so remove it from the iterator.
sourceIterator.next();
// Add the change to the result list.
changeList.add(tmpChangeContainer);
}
return changeList;
}
use of net.minecraft.server.v1_16_R3.Entity in project osmosis by openstreetmap.
the class PostgreSqlChangeWriter method process.
/**
* {@inheritDoc}
*/
public void process(ChangeContainer change) {
ChangeAction action;
initialize();
// Verify that the schema version is supported.
schemaVersionValidator.validateVersion(PostgreSqlVersionConstants.SCHEMA_VERSION);
action = change.getAction();
if (!actionWriterMap.containsKey(action)) {
throw new OsmosisRuntimeException("The action " + action + " is unrecognized.");
}
final Entity entity = change.getEntityContainer().getEntity();
this.appliedChangeSets.add(entity.getChangesetId());
this.earliestTimestamp = Math.min(this.earliestTimestamp, entity.getTimestamp().getTime());
this.latestTimestamp = Math.max(this.latestTimestamp, entity.getTimestamp().getTime());
final String name = entity.getType().name() + "-" + action.name();
final int count = modifications.getOrDefault(name, 0) + 1;
modifications.put(name, count);
// Process the entity using the action writer appropriate for the change
// action.
change.getEntityContainer().process(actionWriterMap.get(action));
}
use of net.minecraft.server.v1_16_R3.Entity in project WLib by WizardlyBump17.
the class EntityAdapter method getConversations.
@SuppressWarnings("unchecked")
@Override
public List<Conversation> getConversations() {
if (!(entity instanceof Player))
return new ArrayList<>();
try {
CraftPlayer player = (CraftPlayer) entity;
Field trackerField = player.getClass().getDeclaredField("conversationTracker");
trackerField.setAccessible(true);
ConversationTracker conversationTracker = (ConversationTracker) trackerField.get(player);
Field queueField = conversationTracker.getClass().getDeclaredField("conversationQueue");
queueField.setAccessible(true);
LinkedList<Conversation> conversationQueue = (LinkedList<Conversation>) queueField.get(conversationTracker);
return new ArrayList<>(conversationQueue);
} catch (IllegalAccessException | NoSuchFieldException e) {
e.printStackTrace();
}
return new ArrayList<>();
}
use of net.minecraft.server.v1_16_R3.Entity in project WLib by WizardlyBump17.
the class EntityAdapter method sendMessage.
@Override
public void sendMessage(MessageType type, String message) {
if (!(entity instanceof Player))
return;
Player player = (Player) this.entity;
switch(type) {
case CHAT:
player.sendMessage(message);
return;
case TITLE:
String[] lines = message.split("\n");
player.sendTitle(lines[0], lines.length == 1 ? null : lines[1], 10, 70, 20);
return;
case ACTION_BAR:
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(message));
}
}
Aggregations